Inscription et confirmation des comptes d’utilisateur - Amazon Cognito

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Inscription et confirmation des comptes d’utilisateur

Des comptes d’utilisateur sont ajoutés à votre groupe d’utilisateurs suite aux opérations suivantes :

Les utilisateurs qui s’inscrivent eux-mêmes doivent être confirmés afin de pouvoir se connecter. Les utilisateurs importés et créés sont déjà confirmés, mais ils doivent créer leur mot de passe la première fois qu’ils se connectent. Les sections suivantes expliquent la procédure de confirmation, ainsi que le mode de vérification par téléphone et par e-mail.

Présentation de la procédure de confirmation d’un compte d’utilisateur

Le schéma suivant illustre la procédure de confirmation :


        Lorsque les utilisateurs entrent le code de confirmation, ils vérifient automatiquement leur e-mail ou numéro de téléphone.

Voici les différents états possibles pour un compte d’utilisateur :

Inscrit (non confirmé)

L’utilisateur a réussi à s’inscrire, mais il ne peut pas se connecter tant que son compte n’a pas été confirmé. L’utilisateur est activé, mais il n’est pas confirmé dans cet état.

Au départ, les nouveaux utilisateurs qui s’inscrivent eux-mêmes se voient attribuer cet état.

Confirmé

Le compte d’utilisateur est confirmé et l’utilisateur peut se connecter. Lorsqu’un utilisateur saisit un code ou suit un lien de messagerie pour confirmer son compte d’utilisateur, l’adresse e-mail ou le numéro de téléphone sont automatiquement vérifiés. Le code ou lien est valide pendant 24 heures.

Si le compte d’utilisateur a été confirmé par l’administrateur ou un déclencheur Lambda avant l’inscription, il se peut qu’aucune adresse e-mail ni aucun numéro de téléphone vérifiés ne soient associés au compte.

Réinitialisation du mot de passe requise

Le compte d’utilisateur est confirmé, mais l’utilisateur doit demander un code et réinitialiser son mot de passe afin de pouvoir se connecter.

Au départ, les comptes d’utilisateur qui sont importés par un administrateur ou un développeur affichent cet état.

Modification forcée du mot de passe

Le compte d’utilisateur est confirmé et l’utilisateur peut se connecter à l’aide d’un mot de passe temporaire. Toutefois, à la première connexion et avant toute autre opération, l’utilisateur doit changer son mot de passe en indiquant une nouvelle valeur.

Au départ, les comptes d’utilisateur créés par un administrateur ou un développeur affichent cet état.

Désactivées

Avant de pouvoir supprimer un compte d’utilisateur, vous devez désactiver l’accès à la connexion pour cet utilisateur.

Vérification des coordonnées à l’inscription

Lorsque de nouveaux utilisateurs s’inscrivent à votre application, il est probable que vous voudrez qu’ils fournissent au moins une méthode de contact. Par exemple, avec les coordonnées de vos utilisateurs, vous pouvez :

  • Envoyer un mot de passe temporaire lorsqu’un utilisateur choisit de réinitialiser son mot de passe.

  • Informer les utilisateurs lorsque leurs informations personnelles ou financières sont mises à jour.

  • Envoyer des messages promotionnels, tels que des offres spéciales ou des remises.

  • Envoyer des récapitulatifs de compte ou de rappels de facturation.

Pour de tels cas d’utilisation, il est important que vous adressiez vos messages à une destination vérifiée. Sinon, vous risquez d’envoyer vos messages à une adresse e-mail ou un numéro de téléphone non valide qui a été saisi de façon incorrecte. Ou pire, vous risquez d’envoyer des informations sensibles à des personnes malveillantes qui se font passer pour vos utilisateurs.

Pour vous assurer d’envoyer les messages uniquement aux bonnes personnes, configurez votre groupe d’utilisateurs Amazon Cognito afin que les utilisateurs fournissent les informations suivantes lors de l’inscription :

  1. Adresse e-mail ou numéro de téléphone.

  2. Code de vérification envoyé par Amazon Cognito à l’adresse e-mail ou au numéro de téléphone. Si 24 heures se sont écoulées et que le code ou le lien de votre utilisateur n’est plus valide, appelez l’Opération d’API ResendConfirmationCode pour générer et envoyer un nouveau code ou un nouveau lien.

En fournissant le code de vérification, un utilisateur prouve qu’il a accès à la boîte aux lettres ou au téléphone qui a reçu le code. Une fois que l’utilisateur a fourni le code, Amazon Cognito met à jour les informations relatives à l’utilisateur dans votre groupe d’utilisateurs en :

  • Définissant le statut de l’utilisateur sur CONFIRMED.

  • Mettant à jour les attributs de l’utilisateur pour indiquer que l’adresse e-mail ou le numéro de téléphone est vérifié(e).

Pour afficher ces informations, vous pouvez utiliser la console Amazon Cognito. Vous pouvez également utiliser l’opération d’API AdminGetUser, la commande admin-get-user avec le AWS CLI, ou l’une des actions correspondantes de l’un des kits SDK AWS.

Si un utilisateur dispose d’une méthode de contact vérifiée, Amazon Cognito envoie automatiquement un message à l’utilisateur lorsque l’utilisateur demande la réinitialisation du mot de passe.

Pour configurer votre groupe d’utilisateurs pour exiger une vérification par téléphone ou par e-mail

Pensez à vérifier les adresses e-mail et les numéros de téléphone de vos utilisateurs afin de pouvoir les contacter. Effectuez la procédure suivante dans la AWS Management Console pour configurer votre groupe d’utilisateurs afin d’exiger que vos utilisateurs confirment leurs adresses e-mail ou leurs numéros de téléphone.

Note

Si vous n’avez pas encore de groupe d’utilisateurs dans votre compte, consultez Démarrage avec les groupes d'utilisateurs.

Pour configurer votre groupe d’utilisateurs
  1. Allez dans la console Amazon Cognito. Si vous y êtes invité, saisissez vos informations d’identification AWS.

  2. Dans le volet de navigation, choisissez Groupes d’utilisateurs. Choisissez un groupe d’utilisateurs existant dans la liste ou créez-en un.

  3. Choisissez l’onglet Sign-up experience (Expérience d’inscription) et localisez Attribute verification and user account confirmation (Vérification des attributs et confirmation du compte d’utilisateur). Choisissez Modifier.

  4. Sous Vérification et confirmation assistées par Cognito, indiquez si vous allez Autoriser Cognito à envoyer automatiquement des messages pour vérifier et confirmer. Lorsque ce paramètre est activé, Amazon Cognito envoie des messages aux attributs de contact utilisateur que vous choisissez lorsqu’un utilisateur s’inscrit ou que vous créez un profil utilisateur. Pour vérifier les attributs et confirmer les profils utilisateur pour la connexion, Amazon Cognito envoie un code ou un lien dans des messages aux utilisateurs. Les utilisateurs doivent ensuite saisir le code dans votre interface utilisateur afin que votre application puisse le confirmer dans une demande d’API ConfirmSignUp ou AdminConfirmSignUp.

    Note

    Vous pouvez aussi désactiver Vérification et confirmation assistées par Cognito et utilisez des actions API authentifiées ou des déclencheurs Lambda pour vérifier les attributs et confirmer les utilisateurs.

    Si vous choisissez cette option, Amazon Cognito n’envoie pas de code de vérification quand l’utilisateur s’inscrit. Choisissez cette option si vous utilisez un flux d’authentification personnalisé qui vérifie au moins une méthode de contact sans utiliser les codes de vérification en provenance d’Amazon Cognito. Par exemple, vous pouvez utiliser un déclencheur Lambda avant inscription qui vérifie automatiquement les adresses électroniques qui appartiennent à un domaine spécifique.

    Si vous ne vérifiez pas les coordonnées de vos utilisateurs, ils risquent de ne pas pouvoir utiliser votre application. N’oubliez pas que les utilisateurs nécessitent des informations de contact vérifiées pour :

    • Réinitialiser leurs mots de passe – Lorsqu’un utilisateur choisit une option dans votre application qui appelle l’action API ForgotPassword, Amazon Cognito envoie un mot de passe temporaire à l’adresse e-mail ou au numéro de téléphone de l’utilisateur. Amazon Cognito envoie ce mot de passe uniquement si l’utilisateur a vérifié au moins une méthode de contact.

    • Se connecter en utilisant une adresse e-mail ou un numéro de téléphone comme alias – Si vous configurez votre groupe d’utilisateurs pour autoriser ces alias, un utilisateur peut se connecter avec un alias uniquement si celui-ci est vérifié. Pour de plus amples informations, veuillez consulter Personnalisation des attributs de connexion.

  5. Choisissez votre Attributs à vérifier :

    Envoyer un message SMS, vérifier le numéro de téléphone

    Amazon Cognito envoie par SMS un code de vérification lorsque l’utilisateur se connecte. Choisissez cette option si vous communiquez généralement avec vos utilisateurs par SMS. Par exemple, vous voudrez utiliser des numéros de téléphone vérifiés si vous envoyez des notifications de livraison, des confirmations de rendez-vous ou des alertes. Les numéros de téléphone des utilisateurs seront l’attribut vérifié lorsque les comptes sont confirmés. Vous devez prendre des mesures supplémentaires pour vérifier et communiquer avec les adresses e-mail des utilisateurs.

    Envoyer un message électronique, vérifier l’adresse e-mail

    Amazon Cognito envoie par e-mail un code de vérification lorsque l’utilisateur se connecte. Choisissez cette option si vous communiquez généralement avec vos utilisateurs par e-mail. Par exemple, vous souhaitez utiliser des adresses e-mail vérifiées si vous envoyez des relevés de facturation, des récapitulatifs de commande ou des offres spéciales. Les adresses e-mail des utilisateurs seront l’attribut vérifié lorsque les comptes sont confirmés. Vous devez prendre des mesures supplémentaires pour vérifier et communiquer avec les numéros de téléphone des utilisateurs.

    Envoyer un message SMS si le numéro de téléphone est disponible, sinon envoyer un message électronique

    Choisissez cette option si vous n’exigez pas que tous les utilisateurs aient la même méthode de contact vérifié. Dans ce cas, la page d’inscription de votre application peut demander aux utilisateurs de vérifier seulement leur mode de contact préféré. Quand Amazon Cognito envoie un code de vérification, il envoie le code à la méthode de contact fournie dans la demande SignUp de votre application. Si un utilisateur fournit une adresse e-mail et un numéro de téléphone, et que votre application fournit les deux méthodes de contact dans la demande SignUp, Amazon Cognito envoie un code de vérification uniquement au numéro de téléphone.

    Si vous exigez que les utilisateurs soient vérifiés tant à l’aide de leur adresse e-mail qu’à l’aide de leur numéro de téléphone, choisissez cette option. Amazon Cognito vérifie une méthode de contact lorsque l’utilisateur s’inscrit, et votre application doit vérifier l’autre méthode de contact une fois l’utilisateur connecté. Pour de plus amples informations, veuillez consulter Si vous exigez que les utilisateurs confirment leurs adresses e-mail et numéros de téléphone.

  6. Choisissez Enregistrer les modifications.

Flux d’authentification avec vérification par e-mail ou par téléphone

Si votre groupe d’utilisateurs requiert que les utilisateurs vérifient leurs informations de contact, votre application doit faciliter le flux suivant quand un utilisateur se connecte :

  1. Un utilisateur s’inscrit dans votre application en entrant un nom d’utilisateur, un numéro de téléphone et/ou une adresse e-mail, et éventuellement d’autres attributs.

  2. Le service Amazon Cognito reçoit la demande d’inscription de l’application. Après avoir vérifié que la demande contient tous les attributs nécessaires pour l’inscription, le service termine le processus d’inscription et envoie un code de confirmation à l’utilisateur par téléphone (via SMS) ou par e-mail. Le code est valide pendant 24 heures.

  3. Le service indique à l’application que l’inscription est terminée et que le compte d’utilisateur est en attente de confirmation. La réponse précise où le code de confirmation a été envoyé. A ce stade, le compte d’utilisateur a l’état Non confirmé, et l’adresse e-mail de l’utilisateur ainsi que son numéro de téléphone affichent l’état Non vérifié.

  4. L’application peut maintenant inviter l’utilisateur à entrer le code de confirmation. Il n’est pas nécessaire que l’utilisateur entre ce code immédiatement. Toutefois, il ne pourra pas se connecter tant qu’il n’aura pas saisi le code de confirmation.

  5. L’utilisateur entre le code de confirmation dans l’application.

  6. L’application appelle l’API ConfirmSignUp pour envoyer le code au service Amazon Cognito qui le vérifie et, si le code est correct, affecte au compte d’utilisateur l’état Confirmed (Confirmé). Une fois le compte d’utilisateur effectivement confirmé, le service Amazon Cognito marque automatiquement l’attribut utilisé pour la confirmation (adresse e-mail ou numéro de téléphone) comme vérifié. Sauf modification de la valeur de cet attribut, l’utilisateur n’aura pas à le vérifier à nouveau.

  7. A ce stade, le compte d’utilisateur a l’état Confirmé et l’utilisateur peut se connecter.

Si vous exigez que les utilisateurs confirment leurs adresses e-mail et numéros de téléphone

Amazon Cognito ne vérifie qu’une seule méthode de contact lorsqu’un utilisateur se connecte. Dans les cas où Amazon Cognito doit choisir entre une vérification par adresse e-mail et par numéro de téléphone, le service choisit de vérifier le numéro de téléphone en envoyant un code de vérification par SMS. Par exemple, si vous configurez votre groupe d’utilisateurs pour permettre aux utilisateurs de vérifier l’adresse e-mail ou le numéro de téléphone, et si votre application fournit ces deux attributs au moment de la connexion, Amazon Cognito vérifie uniquement le numéro de téléphone. Une fois qu’un utilisateur a vérifié son numéro de téléphone, Amazon Cognito définit le statut de l’utilisateur sur CONFIRMED et l’utilisateur est autorisé à se connecter à votre application.

Une fois que l’utilisateur s’est connecté, votre application peut fournir la possibilité de vérifier la méthode de contact qui n’a pas été vérifiée au cours de la connexion. Pour vérifier cette deuxième méthode, votre application appelle l’action d’API VerifyUserAttribute. Notez que cette action requiert un paramètre AccessToken et qu’Amazon Cognito fournit uniquement les jetons d’accès pour les utilisateurs authentifiés. Par conséquent, vous pouvez vérifier la deuxième méthode de contact uniquement une fois que l’utilisateur s’est connecté.

Si vous avez besoin que vos utilisateurs vérifient leur adresse électronique et leur numéro de téléphone, procédez comme suit :

  1. Configurez votre groupe d’utilisateurs afin d’autoriser les utilisateurs à vérifier l’adresse e-mail ou le numéro de téléphone.

  2. Dans le flux de connexion de l’application, exigez que les utilisateurs fournissent à la fois une adresse e-mail et un numéro de téléphone. Appelez l’action d’API SignUp et fournissez l’adresse e-mail et le numéro de téléphone pour le paramètre UserAttributes. À ce stade, Amazon Cognito envoie un code de vérification au téléphone de l’utilisateur.

  3. Dans l’interface de votre application, présentez une page de confirmation sur laquelle l’utilisateur entre le code de vérification. Confirmez l’utilisateur en appelant l’action d’API ConfirmSignUp. À ce stade, le statut de l’utilisateur est CONFIRMED et le numéro de téléphone de l’utilisateur est vérifié, mais l’adresse e-mail, elle, ne l’est pas.

  4. Affichez la page de connexion et authentifiez l’utilisateur en appelant l’action d’API InitiateAuth. Une fois l’utilisateur authentifié, Amazon Cognito renvoie un jeton d’accès à votre application.

  5. Appelez l’action d’API GetUserAttributeVerificationCode. Spécifiez les paramètres suivants dans la demande :

    • AccessToken – Jeton d’accès renvoyé par Amazon Cognito lorsque l’utilisateur s’est connecté.

    • AttributeName – Spécifiez "email" comme valeur d’attribut.

    Amazon Cognito envoie un code de vérification à l’adresse e-mail de l’utilisateur.

  6. Affichez une page de confirmation sur laquelle l’utilisateur entre le code de vérification. Lorsque l’utilisateur envoie le code, appelez l’action d’API VerifyUserAttribute. Spécifiez les paramètres suivants dans la demande :

    • AccessToken – Jeton d’accès renvoyé par Amazon Cognito lorsque l’utilisateur s’est connecté.

    • AttributeName – Spécifiez "email" comme valeur d’attribut.

    • Code – Code de vérification que l’utilisateur a fourni.

    À ce stade, l’adresse e-mail est vérifiée.

Autorisation des utilisateurs à s’inscrire dans votre application, mais en les confirmant en tant qu’administrateur du groupe d’utilisateurs

Vous ne voulez peut-être pas que votre groupe d’utilisateurs envoie automatiquement des messages de vérification dans votre groupe d’utilisateurs, mais vous souhaitez tout de même autoriser tout le monde à s’inscrire à un compte. Ce modèle permet, par exemple, une vérification humaine des nouvelles demandes d’inscription, ainsi que la validation et le traitement par lots des inscriptions. Vous pouvez confirmer les nouveaux comptes d’utilisateur dans la console Amazon Cognito ou avec l’opération d’API authentifiée par IAM AdminConfirmSignUp. Vous pouvez confirmer les comptes d’utilisateur en tant qu’administrateur, que votre groupe d’utilisateurs envoie ou non des messages de vérification.

Vous ne pouvez confirmer l’inscription en libre-service d’un utilisateur qu’à l’aide de cette technique. Pour confirmer un utilisateur que vous avez créé en tant qu’administrateur, créez une demande d’API AdminSetUserPassword avec Permanent défini sur True.

  1. Un utilisateur s’inscrit dans votre application en entrant un nom d’utilisateur, un numéro de téléphone et/ou une adresse e-mail, et éventuellement d’autres attributs.

  2. Le service Amazon Cognito reçoit la demande d’inscription de l’application. Après avoir vérifié que la demande contient tous les attributs nécessaires pour l’inscription, le service termine la procédure d’inscription et indique à l’application que l’inscription est faite, en attente de confirmation. A ce stade, le compte d’utilisateur affiche l’état Non confirmé. L’utilisateur ne peut pas se connecter tant que son compte n’a pas été confirmé.

  3. Confirmez le compte de l’utilisateur. Vous devez vous connecter à la AWS Management Console ou signer votre demande d’API avec des informations d’identification AWS pour confirmer le compte.

    1. Pour confirmer un utilisateur dans la console Amazon Cognito, accédez à l’onglet Utilisateurs, choisissez l’utilisateur que vous souhaitez confirmer, puis, dans le menu Actions, sélectionnez Confirmer.

    2. Pour confirmer un utilisateur dans l’API AWS ou l’interface de ligne de commande, créez une demande d’API AdminConfirmSignUp ou admin-confirm-sign-up dans l’AWS CLI.

  4. A ce stade, le compte d’utilisateur a l’état Confirmé et l’utilisateur peut se connecter.

Calcul des valeurs de hachage secret

Attribuez un secret client à votre client d’application confidentiel en guise de bonne pratique. Lorsque vous attribuez un secret client à votre client d’application, vos demandes d’API de groupes d’utilisateurs Amazon Cognito doivent comporter un hachage qui inclut le secret client dans le corps de la demande. Pour valider votre connaissance du secret client pour les opérations d’API figurant dans les listes suivantes, concaténez le secret client avec l’ID de votre client d’application et le nom d’utilisateur de votre utilisateur, puis codez cette chaîne en base64.

Lorsque votre application connecte des utilisateurs à un client doté d’un hachage secret, vous pouvez utiliser la valeur de n’importe quel attribut de connexion au groupe d’utilisateurs comme élément de nom d’utilisateur du hachage secret. Lorsque votre application demande de nouveaux jetons lors d’une opération d’authentification avec REFRESH_TOKEN_AUTH, la valeur de l’élément username dépend de vos attributs de connexion. Lorsque votre groupe d’utilisateurs n’a pas d’attribut de connexion username, définissez la valeur du nom d’utilisateur de hachage secret de la demande sub de l’utilisateur à partir de son jeton d’accès ou d’identification. Lorsque username est un attribut de connexion, définissez la valeur du nom d’utilisateur de hachage secret indiquée dans la demande username.

Les API de groupes d’utilisateurs Amazon Cognito suivantes acceptent une valeur de hachage de secret client dans un paramètre SecretHash.

De plus, les API suivantes acceptent une valeur de hachage de secret client dans un paramètre SECRET_HASH, que ce soit dans les paramètres d’authentification ou dans la réponse à une question de sécurité.

Opération API Paramètre parent pour SECRET_HASH
InitiateAuth AuthParameters
AdminInitiateAuth AuthParameters
RespondToAuthChallenge ChallengeResponses
AdminRespondToAuthChallenge ChallengeResponses

La valeur de hachage secret est un code d’authentification de message de hachage (HMAC) à clé codé en Base 64 qui est calculé à partir de la clé secrète du client et du nom d’utilisateur d’un groupe d’utilisateurs et de l’ID client contenu dans le message. L’exemple de pseudo-code suivant montre comment cette valeur est calculée. Dans ce pseudo-code, + indique une concaténation, HMAC_SHA256 représente une fonction qui génère une valeur HMAC avec HmacSHA256, et Base64 représente une fonction qui génère une version codée en Base 64 de la sortie de hachage.

Base64 ( HMAC_SHA256 ( "Client Secret Key", "Username" + "Client Id" ) )

Pour bénéficier d’une présentation détaillée de la façon de calculer et d’utiliser le paramètre SecretHash, consultez Comment résoudre les erreurs « Impossible de vérifier le hachage secret pour le client <client-id> » de mon API de groupes d’utilisateurs Amazon Cognito ? dans le Centre de connaissances AWS.

Vous pouvez utiliser les exemples de code suivants dans votre code d’application côté serveur.

Shell
echo -n "[username][app client ID]" | openssl dgst -sha256 -hmac [app client secret] -binary | openssl enc -base64
Java
import javax.crypto.Mac; import javax.crypto.spec.SecretKeySpec; public static String calculateSecretHash(String userPoolClientId, String userPoolClientSecret, String userName) { final String HMAC_SHA256_ALGORITHM = "HmacSHA256"; SecretKeySpec signingKey = new SecretKeySpec( userPoolClientSecret.getBytes(StandardCharsets.UTF_8), HMAC_SHA256_ALGORITHM); try { Mac mac = Mac.getInstance(HMAC_SHA256_ALGORITHM); mac.init(signingKey); mac.update(userName.getBytes(StandardCharsets.UTF_8)); byte[] rawHmac = mac.doFinal(userPoolClientId.getBytes(StandardCharsets.UTF_8)); return Base64.getEncoder().encodeToString(rawHmac); } catch (Exception e) { throw new RuntimeException("Error while calculating "); } }
Python
import sys import hmac, hashlib, base64 username = sys.argv[1] app_client_id = sys.argv[2] key = sys.argv[3] message = bytes(sys.argv[1]+sys.argv[2],'utf-8') key = bytes(sys.argv[3],'utf-8') secret_hash = base64.b64encode(hmac.new(key, message, digestmod=hashlib.sha256).digest()).decode() print("SECRET HASH:",secret_hash)

Confirmation des comptes d’utilisateur sans vérification de l’e-mail ou du numéro de téléphone

Le déclencheur Lambda avant l’inscription peut servir à valider automatiquement les comptes d’utilisateur au moment de l’inscription, sans exiger de code de confirmation ni vérifier l’adresse e-mail ou le numéro de téléphone. Les utilisateurs qui sont confirmés de cette façon peuvent immédiatement se connecter, sans avoir besoin d’un code.

Vous pouvez également marquer un e-mail ou le numéro de téléphone de l’utilisateur comme étant vérifié grâce à ce déclencheur.

Note

Bien que cette méthode soit pratique pour les utilisateurs qui débutent, nous recommandons de vérifier au moins l’e-mail ou le numéro de téléphone. Dans le cas contraire, l’utilisateur peut se trouver dans l’incapacité de récupérer son mot de passe en cas d’oubli.

Si vous n’exigez pas que l’utilisateur reçoive et saisisse un code de confirmation au moment de l’inscription et que vous ne vérifiez pas automatiquement l’adresse e-mail ni le numéro de téléphone dans le déclencheur Lambda avant l’inscription, vous risquez de ne pas avoir de numéro de téléphone ni d’adresse e-mail vérifiés pour ce compte d’utilisateur. L’utilisateur peut vérifier son numéro de téléphone ou son adresse e-mail ultérieurement. Toutefois, si l’utilisateur oublie son mot de passe et n’a pas de numéro de téléphone ni d’adresse e-mail vérifiés, il n’a plus aucun moyen d’accéder à son compte, puisque le flux d’oubli du mot de passe exige une adresse e-mail ou un numéro de téléphone vérifié pour envoyer un code de vérification à l’utilisateur.

Vérification en cas de modification de l’adresse e-mail ou du numéro de téléphone par l’utilisateur

Lorsqu’un utilisateur met à jour son adresse e-mail ou son numéro de téléphone dans votre application, Amazon Cognito envoie immédiatement un message contenant un code de vérification à un utilisateur si vous avez configuré votre groupe d’utilisateurs pour vérifier automatiquement cet attribut. L’utilisateur doit ensuite fournir le code du message de vérification à votre application. Votre application soumet ensuite le code dans une demande d’API VerifyUserAttribute pour terminer la vérification de la nouvelle valeur d’attribut.

Si votre groupe d’utilisateurs n’exige pas que les utilisateurs vérifient une adresse e-mail ou un numéro de téléphone mis à jour, Amazon Cognito modifie immédiatement la valeur d’un attribut email ou phone_number mis à jour, et marque l’attribut comme non vérifié. Votre utilisateur ne peut pas se connecter avec une adresse e-mail ou un numéro de téléphone non vérifiés. Il doit terminer la vérification de la valeur mise à jour avant de pouvoir utiliser cet attribut comme alias de connexion.

Si votre groupe d’utilisateurs exige que les utilisateurs vérifient une adresse e-mail ou un numéro de téléphone mis à jour, Amazon Cognito laisse l’attribut vérifié et défini sur sa valeur d’origine jusqu’à ce que votre utilisateur vérifie la nouvelle valeur d’attribut. Si l’attribut est un alias de connexion, votre utilisateur peut se connecter avec la valeur d’attribut d’origine jusqu’à ce que la vérification modifie l’attribut avec la nouvelle valeur. Pour plus d’informations sur la façon de configurer votre groupe d’utilisateurs pour demander aux utilisateurs de vérifier les attributs mis à jour, consultez Configuration de la vérification par e-mail ou par téléphone.

Pour personnaliser ce message, vous pouvez utiliser un déclencheur Lambda de message personnalisé. Pour de plus amples informations, veuillez consulter Déclencheur Lambda message personnalisé. Quand l’adresse e-mail et le numéro de téléphone d’un utilisateur ne sont pas vérifiés, votre application doit informer l’utilisateur qu’il doit vérifier l’attribut et elle doit fournir un bouton ou un lien permettant à l’utilisateur de vérifier sa nouvelle adresse e-mail ou son nouveau numéro de téléphone.

Procédures de confirmation et de vérification pour les comptes d’utilisateur créés par des administrateurs ou des développeurs

Les comptes d’utilisateur créés par un administrateur ou un développeur affichent déjà l’état Confirmé, et les utilisateurs n’ont pas à saisir de code de confirmation. Le message d’invitation que le service Amazon Cognito envoie à ces utilisateurs inclut leur nom d’utilisateur et un mot de passe temporaire. L’utilisateur doit modifier le mot de passe avant de se connecter. Pour plus d’informations, consultez la section Personnalisation des e-mails et SMS dans Création de comptes d’utilisateur en tant qu’administrateur et celle relative au déclencheur de message personnalisé dans Personnalisation des flux de travail de groupe d'utilisateurs avec des déclencheurs Lambda.

Procédures de vérification et de confirmation pour les comptes d’utilisateur importés

Les comptes d’utilisateur créés avec la fonctionnalité d’importation d’utilisateurs dans AWS Management Console, via la CLI ou l’API (voir Importation d'utilisateurs dans des groupes d'utilisateurs depuis un fichier CSV) présentent déjà l’état Confirmé, et les utilisateurs n’ont pas à saisir de code de confirmation. Aucun message d’invitation n’est envoyé. Cependant, les comptes d’utilisateur importés nécessitent que les utilisateurs demandent d’abord un code en appelant l’API ForgotPassword, puis en créant un mot de passe avec le code reçu après l’appel de l’API ConfirmForgotPassword avant de se connecter. Pour de plus amples informations, veuillez consulter Obligation pour les utilisateurs importés de réinitialiser leur mot de passe.

L’e-mail de l’utilisateur ou son numéro de téléphone est marqué comme vérifié lorsque le compte d’utilisateur est importé ; aucune vérification n’est donc requise lorsque l’utilisateur se connecte.

Envoi d’e-mails pendant le test de votre application

Amazon Cognito envoie un e-mail à vos utilisateurs lorsqu’ils créent et gèrent leurs comptes dans l’application cliente de votre groupe d’utilisateurs. Si vous configurez votre groupe d’utilisateurs afin d’exiger la vérification des e-mails, Amazon Cognito envoie un e-mail dans les cas suivants :

  • Un utilisateur se connecte.

  • Un utilisateur met à jour son adresse e-mail.

  • Un utilisateur exécute une action qui appelle l’action d’API ForgotPassword.

  • Vous créez un compte d’utilisateur en tant qu’administrateur.

En fonction de l’action qui déclenche l’e-mail, celui-ci contient un code de vérification ou un mot de passe temporaire. Vos utilisateurs doivent recevoir ces e-mails et comprendre le message. Sinon, ils peuvent ne pas être en mesure de se connecter et d’utiliser votre application.

Pour garantir que les e-mails sont envoyés avec succès et que le message paraît correct, testez les actions de votre application qui initient les remises d’e-mail à partir d’Amazon Cognito. Par exemple, en utilisant la page de connexion de votre application, ou en utilisant l’action d’API SignUp, vous pouvez lancer un e-mail en vous connectant avec une adresse e-mail de test. Lorsque vous testez ainsi, n’oubliez pas les points suivants :

Important

Lorsque vous utilisez une adresse e-mail pour tester les actions qui initient des e-mails à partir d’Amazon Cognito, n’utilisez pas d’adresse e-mail fictive (une adresse sans boîte aux lettres). Utilisez une adresse e-mail réelle qui recevra l’e-mail à partir d’Amazon Cognito sans déclencher de retour à l’expéditeur.

Un message d’erreur définitif se produit quand Amazon Cognito ne parvient pas à remettre l’e-mail à la boîte aux lettres du destinataire, ce qui se produit toujours si la boîte aux lettres n’existe pas.

Amazon Cognito limite le nombre d’e-mails qui peuvent être envoyés par les comptes AWS qui risquent de manière permanente un message d’erreur définitif.

Lorsque vous testez des actions qui initient des e-mails, utilisez l’une des adresses suivantes pour empêcher les retours à l’expéditeur définitifs :

  • Une adresse pour un compte de messagerie que vous possédez et utilisez à des fins de test. Lorsque vous utilisez votre propre adresse e-mail, vous recevez l’e-mail envoyé par Amazon Cognito. Avec cet e-mail, vous pouvez utiliser le code de vérification pour tester la connexion de votre application. Si vous avez personnalisé le message électronique pour votre groupe d’utilisateurs, vous pouvez vérifier que vos personnalisation est correcte.

  • Adresse du simulateur de boîte aux lettres, success@simulator.amazonses.com. Si vous utilisez l’adresse du simulateur, Amazon Cognito envoie l’e-mail avec succès, mais vous n’êtes pas en mesure de l’afficher. Cette option est utile lorsque vous n’avez pas besoin d’utiliser le code de vérification ni de vérifier le message électronique.

  • Adresse du simulateur de boîte aux lettres avec ajout d’une étiquette arbitraire, comme success+user1@simulator.amazonses.com ou success+user2@simulator.amazonses.com. Amazon Cognito envoie des e-mails à ces adresses avec succès, mais vous n’êtes pas en mesure de les afficher. Cette option est utile lorsque vous souhaitez tester la procédure de connexion en ajoutant plusieurs utilisateurs de test à votre groupe d’utilisateurs et que chaque utilisateur de test possède une adresse e-mail unique.