Techso EN

AWS, aller plus loin avec Cognito

DEV

Les services AWS sont très nombreux, cependant beaucoup d’utilisateurs s’arrêtent à l’utilisation de S3 (stockage de fichiers), EC2 (machine virtuelle) ou RDS (base de données). Dans cet article nous découvrirons Cognito, le service d’authentification offert par AWS.

Cognito est le système d’authentification d’AWS vous permettant d’authentifier vos utilisateurs via les réseaux sociaux, Google, Apple, Github, LDAP ou plus traditionnellement identifiant et mot de passe. Cognito s’occupe de toute la mécanique d’authentification pour vous.

Le principal avantage d’utiliser AWS Cognito reste que vous n’avez pas à gérer la sécurité concernant la connexion et la vie privée de vos utilisateurs: Amazon le fait pour vous! De plus, il vous offre également la possibilité de laisser vos utilisateurs utiliser un SSO (Single Sign On) venant d’un fournisseur X comme par exemple: Twitter, Facebook, Google, etc.

Le service peut être divisé en deux parties: les UserPool et IdentityPool. Le premier est un regroupement d’utilisateurs, d’où seront listés l’ensemble des utilisateurs de vos applications; le second permet de gérer les utilisateurs invités (Guest) mais aussi de leur donner certains droits sur les services AWS en leur attribuant des identifiants temporaires reliés à un rôle IAM.

Cognito est également très configurable. Quand on dit « configurable », c’est au point que si vous n’avez pas de serveur pour stocker les données de vos utilisateurs, Cognito peut s’en occuper pour vous. Par défaut, vous pouvez entrer l’adresse courriel, adresse physique, numéro de téléphone, nom, etc. Au besoin vous pouvez même définir vos propres champs afin de stocker des données propres à votre système. Tout pour faire du serverless!

Comme dit plus haut, Cognito offre plusieurs méthodes de connexion: quand vous optez pour une authentification traditionnelle (identifiant/mot de passe) ou bien pour identifiant avec mot de passe temporaire (mot de passe envoyé sur l’adresse courriel ou par SMS), vos utilisateurs recevront des messages provenant de Cognito. Par défaut, les messages transmis par Cognito sont en anglais et le plus neutre possible. Encore une fois, cela est configurable avec l’utilisation du service Lambda. Chaque action sur Cognito émet un événement qui peut être reçu par une fonction hébergée dans AWS Lambda afin de déclencher du traitement supplémentaire ou, dans le cas d’un message, personnaliser le message!

Finalement, il reste un point important à préciser sur le service d’authentification offert par AWS. À ce jour, la sécurité est extrêmement importante pour les utilisateurs et ce n’est pas parce que l’utilisateur connait le bon mot de passe que c’est bien lui. C’est pour ça que le Multiple Facteurs d’Authentification (MFA, mais aussi 2FA) existe! Cognito vous offre justement la possibilité d’activer un double facteur d’authentification par SMS ou TOTP (Time-Based One Time Password).

Donc, si vous êtes une société de développement, pourquoi utiliser Cognito d’AWS?

– il est plus rapide à mettre en place qu’une solution maison

– il offre différentes options de connexion comme, par exemple, via votre compte Google, Apple, via SMS ou simplement le classique courriel/mot de passe

– il permet de personnaliser les messages envoyés aux utilisateurs via une AWS Lambda – il offre la possibilité d’activer un multiple facteur d’authentification

Les points ci-dessus ne sont qu’une partie de ce qu’offre Cognito. En espérant vous avoir donné envie de découvrir AWS Cognito pour vos projets.