View a markdown version of this page

Authentification MFA par jeton logiciel TOTP - 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.

Authentification MFA par jeton logiciel TOTP

Lorsque vous configurez la MFA par jeton logiciel TOTP dans votre groupe d’utilisateurs, votre utilisateur se connecte avec un nom d’utilisateur et un mot de passe, puis utilise un mot de passe TOTP pour terminer l’authentification. Une fois que votre utilisateur a défini et vérifié un nom d’utilisateur et un mot de passe, il peut activer un jeton logiciel TOTP pour la MFA. Si votre application utilise la connexion gérée par Amazon Cognito pour connecter les utilisateurs, votre utilisateur soumet son nom d'utilisateur et son mot de passe, puis soumet le mot de passe TOTP sur une page de connexion supplémentaire.

Vous pouvez activer l’authentification MFA par TOTP pour votre groupe d’utilisateurs dans la console Amazon Cognito. Vous pouvez également utiliser les opérations d’API Amazon Cognito. Au niveau du groupe d'utilisateurs, vous pouvez appeler SetUserPoolMfaConfig pour configurer MFA et activer TOTP MFA.

Note

Si vous n’avez pas activé l’authentification MFA par jeton logiciel TOTP pour le groupe d’utilisateurs, Amazon Cognito ne peut pas utiliser le jeton pour associer ou vérifier les utilisateurs. Dans ce cas, les utilisateurs reçoivent une exception SoftwareTokenMFANotFoundException avec la description Software Token MFA has not been enabled by the userPool. Si vous désactivez ultérieurement l’authentification MFA par jeton logiciel pour le groupe d’utilisateurs, les utilisateurs qui ont précédemment associé et vérifié un jeton TOTP peuvent continuer à l’utiliser pour l’authentification MFA.

La configuration du mot de passe TOTP pour votre utilisateur est un processus en plusieurs étapes au cours duquel l’utilisateur reçoit un code secret qu’il valide en entrant un mot de passe à usage unique. Ensuite, vous pouvez activer l’authentification MFA par TOTP pour l’utilisateur ou définir TOTP comme méthode MFA préférée pour l’utilisateur.

Lorsque vous configurez votre groupe d'utilisateurs pour qu'il nécessite le protocole TOTP MFA et que vos utilisateurs s'inscrivent à votre application via une connexion gérée, Amazon Cognito automatise le processus utilisateur. Amazon Cognito invite votre utilisateur à choisir une méthode MFA, affiche un code QR pour configurer son application d’authentification et vérifie son enregistrement MFA. Dans les groupes d’utilisateurs auxquels vous avez permis de choisir entre une authentification par SMS et une authentification MFA par TOTP, Amazon Cognito propose également à vos utilisateurs de choisir une méthode.

Important

Lorsqu'une ACL AWS WAF Web est associée à un groupe d'utilisateurs et qu'une règle de votre ACL Web présente un CAPTCHA, cela peut provoquer une erreur irrécupérable lors de l'enregistrement TOTP de connexion gérée. Pour créer une règle qui comporte une action CAPTCHA et n'affecte pas le TOTP de connexion géré, consultez. Configuration de votre AWS WAF ACL Web pour connexion gérée TOTP MFA Pour en savoir plus sur les ACL Web AWS WAF et Amazon Cognito, veuillez consulter Associez un AWS WAF ACL Web avec un groupe d'utilisateurs.

Pour implémenter TOTP MFA dans une interface utilisateur personnalisée avec un AWS SDK et l'API des groupes d'utilisateurs Amazon Cognito, consultez. Configuration de TOTP MFA pour un utilisateur

Pour ajouter l’authentification MFA à votre groupe d’utilisateurs, consultez Ajout de l’authentification MFA à un groupe d’utilisateurs.

Considérations et restrictions liées à l’authentification MFA par TOTP

  1. Amazon Cognito prend en charge l’authentification MFA par jeton logiciel via une application d’authentification qui génère des codes TOTP. Amazon Cognito ne prend pas en charge l’authentification MFA matérielle.

  2. Lorsque votre groupe d’utilisateurs nécessite un mot de passe TOTP pour un utilisateur qui ne l’a pas configuré, l’utilisateur reçoit un jeton d’accès unique que votre application peut utiliser pour activer l’authentification MFA par TOTP pour l’utilisateur. Les tentatives de connexion suivantes échouent tant que l’utilisateur n’a pas enregistré un facteur de connexion TOTP supplémentaire.

    • Un utilisateur qui s'inscrit dans votre groupe d'utilisateurs à l'aide de l'SignUpAPI ou via une connexion gérée reçoit des jetons à usage unique lorsqu'il termine son inscription.

    • Une fois que vous avez créé un utilisateur et que celui-ci a défini son mot de passe initial, Amazon Cognito émet des jetons à usage unique à partir de la connexion gérée à l'utilisateur. Si vous définissez un mot de passe permanent pour l’utilisateur, Amazon Cognito émet des jetons uniques lorsque l’utilisateur se connecte pour la première fois.

    • Amazon Cognito n'émet pas de jetons à usage unique à un utilisateur créé par un administrateur qui se connecte à l'aide des opérations ou de l'InitiateAuthAPI. AdminInitiateAuth Une fois que votre utilisateur a réussi à définir son mot de passe initial ou si vous avez défini un mot de passe permanent pour l’utilisateur, Amazon Cognito met immédiatement l’utilisateur au défi de configurer l’authentification MFA.

  3. Si un utilisateur d'un groupe d'utilisateurs nécessitant le MFA a déjà reçu un jeton d'accès à usage unique mais n'a pas configuré TOTP MFA, il ne peut pas se connecter avec une connexion gérée tant qu'il n'a pas configuré l'AMF. Au lieu du jeton d'accès, vous pouvez utiliser la valeur de session réponse d'un MFA_SETUP défi lancé à InitiateAuth ou AdminInitiateAuth figurant dans une AssociateSoftwareToken demande.

  4. Si vos utilisateurs ont configuré un mot de passe TOTP, ils peuvent l’utiliser pour l’authentification MFA même si vous désactivez le mot de passe TOTP pour le groupe d’utilisateurs par la suite.

  5. Amazon Cognito accepte uniquement les TOTP provenant d'applications d'authentification qui génèrent des codes à l'aide de la fonction de hachage. HMAC-SHA1 Les codes générés par SHA-256 hachage renvoient une Code mismatch erreur.

Configuration de TOTP MFA pour un utilisateur

Lorsqu’un utilisateur se connecte pour la première fois, votre application utilise son jeton d’accès unique pour générer la clé privée TOTP et la présenter à l’utilisateur au format texte ou sous la forme d’un code QR. L’utilisateur configure son application d’authentification et fournit un mot de passe TOTP pour les tentatives de connexion suivantes. Votre application ou votre identifiant géré présente le TOTP à Amazon Cognito dans les réponses aux défis MFA.

Dans certains cas, la connexion gérée invite les nouveaux utilisateurs à configurer un authentificateur TOTP. Pour plus d'informations, consultez. Détails de la logique MFA lors de l'exécution par l'utilisateur

Associer le jeton logiciel TOTP

Pour associer le jeton TOTP, envoyez à l’utilisateur un code secret qu’il doit valider avec un mot de passe à usage unique. L’association du jeton nécessite trois étapes.

  1. Lorsque votre utilisateur choisit le jeton logiciel TOTP MFA, appelez AssociateSoftwareToken pour renvoyer un code de clé secrète partagée généré unique pour le compte utilisateur. Vous pouvez autoriser à l' AssociateSoftwareToken aide d'un jeton d'accès ou d'une chaîne de session.

  2. Votre application présente à l’utilisateur la clé privée ou un code QR généré à partir de la clé privée. Votre utilisateur doit saisir la clé dans une TOTP-generating application telle que Google Authenticator, soit en scannant le code QR généré par votre application à partir de la clé privée, soit en saisissant manuellement la clé.

  3. Votre utilisateur saisit la clé ou scanne le code QR dans une application d’authentification telle que Google Authenticator, et l’application commence à générer des codes.

Vérifier le jeton TOTP

Ensuite, vérifiez le jeton TOTP. Demandez des exemples de codes à votre utilisateur et fournissez-les au service Amazon Cognito pour confirmer que l’utilisateur parvient à générer des codes TOTP, comme suit.

  1. Votre application demande à votre utilisateur de fournir un code pour démontrer qu’il a correctement configuré son application d’authentification.

  2. L’application d’authentification de l’utilisateur affiche un mot de passe temporaire. L’application d’authentification base le mot de passe sur la clé secrète que vous avez donnée à l’utilisateur.

  3. Votre utilisateur saisit son mot de passe temporaire. Votre application transmet le mot de passe temporaire à Amazon Cognito dans une demande d’API VerifySoftwareToken.

  4. Amazon Cognito a conservé la clé secrète associée à l’utilisateur, génère un mot de passe TOTP et le compare à celui fourni par votre utilisateur. S’ils correspondent, VerifySoftwareToken renvoie une réponse SUCCESS.

  5. Amazon Cognito associe le facteur TOTP à l’utilisateur.

  6. Si l’opération VerifySoftwareToken renvoie une réponse ERROR, assurez-vous que l’horloge de l’utilisateur est correcte et que ce dernier n’a pas dépassé le nombre maximal de nouvelles tentatives. Amazon Cognito accepte les jetons TOTP qui se trouvent dans les 30 secondes précédant ou suivant la tentative, pour tenir compte d’un décalage mineur d’horloge. Une fois le problème résolu, recommencez l' VerifySoftwareToken opération.

Connexion avec l’authentification MFA par TOTP

À ce stade, l’utilisateur se connecte à l’aide du mot de passe à usage unique à durée limitée. Le processus est le suivant.

  1. L’utilisateur saisit son nom d’utilisateur et son mot de passe pour se connecter à votre application cliente.

  2. La stimulation de la MFA par TOTP est appelée, et l’utilisateur est invité par votre appli à saisir un mot de passe temporaire.

  3. Votre utilisateur obtient le mot de passe temporaire à partir d'une TOTP-generating application associée.

  4. L’utilisateur entre le code TOTP dans votre application cliente. L’appli demande au service Amazon Cognito de le vérifier. Pour chaque connexion, RespondToAuthChallenge doit être appelé pour obtenir une réponse au nouveau défi d'authentification TOTP.

  5. Si le jeton est vérifié par Amazon Cognito, la connexion est réussie et l’utilisateur poursuit le flux d’authentification.

Supprimer le jeton TOTP

Enfin, votre application doit permettre à votre utilisateur de désactiver sa configuration TOTP. Pour supprimer le jeton logiciel TOTP de votre utilisateur, utilisez AdminDeleteSoftwareToken. Une fois que vous avez supprimé le jeton logiciel de votre utilisateur, celui-ci ne peut plus se connecter avec TOTP MFA et peut enregistrer un nouveau jeton logiciel. Utilisez cette opération lorsque votre utilisateur perd l'accès à son TOTP-generating appareil, par exemple un téléphone perdu ou réinitialisé. Lorsque votre groupe d'utilisateurs nécessite l'authentification multifacteur et qu'aucun autre facteur n'est disponible, Amazon Cognito renvoie un MFA_SETUP défi lors de la prochaine connexion de votre utilisateur. Lorsqu'un autre facteur est disponible pour votre utilisateur, tel que l'authentification multifacteur par SMS, la connexion revient à ce facteur.

Si votre utilisateur a toujours accès à son TOTP-generating appareil, vous n'avez pas besoin de supprimer son jeton logiciel. Amazon Cognito dissocie le jeton logiciel existant lorsque votre utilisateur en vérifie un nouveau. Pour désactiver le MFA TOTP pour votre utilisateur, appelez pour modifier votre utilisateur SetUserMFAPreference afin qu'il n'utilise aucun MFA ou uniquement l'authentification multifacteur par SMS.

  1. Créez une interface dans votre application pour les utilisateurs qui souhaitent réinitialiser la MFA. Dans cette interface, invitez un utilisateur à saisir son mot de passe.

  2. Si Amazon Cognito renvoie un défi TOTP MFA, mettez à jour les préférences MFA de votre utilisateur avec. SetUserMFAPreference

  3. Dans votre application, indiquez à votre utilisateur qu’il a désactivé la MFA et demandez-lui de se reconnecter.

Configuration de votre AWS WAF ACL Web pour connexion gérée TOTP MFA

Lorsqu'une ACL AWS WAF Web est associée à un groupe d'utilisateurs et qu'une règle de votre ACL Web présente un CAPTCHA, cela peut provoquer une erreur irrécupérable lors de l'enregistrement TOTP de connexion gérée. AWS WAF Les règles CAPTCHA n'ont cet effet que sur TOTP MFA dans la connexion gérée et dans l'interface utilisateur hébergée classique. L’authentification MAF par SMS n’est pas affectée.

Amazon Cognito affiche l’erreur suivante lorsque votre règle CAPTCHA ne permet pas à un utilisateur de terminer la configuration MFA par TOTP.

La demande n’est pas autorisée en raison du captcha WAF.

Cette erreur se produit lorsque vous AWS WAF êtes invité à saisir un CAPTCHA en réponse à AssociateSoftwareToken des demandes d'VerifySoftwareTokenAPI effectuées par votre groupe d'utilisateurs en arrière-plan. Pour créer une règle qui comporte une action CAPTCHA et n'affecte pas TOTP dans les pages de connexion gérées, excluez les valeurs d'x-amzn-cognito-operation-nameen-tête de AssociateSoftwareToken et de l'action CAPTCHA VerifySoftwareToken de votre règle.

La capture d'écran suivante montre un exemple de AWS WAF règle qui applique une action CAPTCHA à toutes les requêtes dont la valeur d'x-amzn-cognito-operation-nameen-tête n'est pas égale à ou. AssociateSoftwareToken VerifySoftwareToken

Capture d'écran d'une AWS WAF règle qui applique une action CAPTCHA à toutes les requêtes dont la valeur d'x-amzn-cognito-operation-nameen-tête n'est pas égale à ou. AssociateSoftwareToken VerifySoftwareToken

Pour plus d'informations sur les ACL AWS WAF Web et Amazon Cognito, consultez. Associez un AWS WAF ACL Web avec un groupe d'utilisateurs