Passer au contenu

Comment puis-je résoudre les messages d’erreur d'authentification multifactorielle dans mon groupe d'utilisateurs Amazon Cognito ?

Lecture de 7 minute(s)
0

Je reçois des messages d'erreur lorsque je configure l'authentification multifactorielle (MFA) dans mon groupe d'utilisateurs Amazon Cognito.

Résolution

Résoudre les erreurs liées à la MFA SMS

Erreur « InvalidSmsRoleAccessPolicyException »

Cette erreur se produit lorsque le rôle Gestion des identités et des accès AWS (AWS IAM) n'est pas autorisé à utiliser Amazon SNS pour publier des SMS.

Pour résoudre ce problème, procédez comme suit pour ajouter l'autorisation sns:Publish au rôle IAM :

  1. Ouvrez la console Amazon Cognito.
  2. Dans le volet de navigation, choisissez Groupes d'utilisateurs.
  3. Sélectionnez votre groupe d’utilisateurs.
  4. Dans le volet de navigation, sous Authentification, choisissez Méthodes d'authentification.
  5. Dans la section SMS, notez le nom de l'ARN du rôle IAM.
  6. Ouvrez la console IAM.
  7. Dans le volet de navigation, sélectionnez Rôles.
  8. Dans la barre de recherche, saisissez le nom de votre rôle IAM, puis sélectionnez votre rôle IAM.
  9. Dans la section Politiques d'autorisations, sélectionnez la politique associée au rôle IAM.
  10. Sur la page Détails de la politique, choisissez Modifier pour ajouter l'autorisation sns:publish.
  11. Sélectionnez Suivant.
  12. Sélectionnez Enregistrer les modifications.
  13. Vérifiez qu'aucune politique de contrôle des services (SCP) ne bloque l'action sns:Publish.

Erreur « InvalidSmsRoleTrustRelationshipException »

Cette erreur se produit lorsque le rôle IAM n’utilise pas de relation d’approbation valide permettant à Amazon Cognito d'assumer le rôle. Cela se produit lorsque cognito-idp.amazonaws.com n'est pas approuvé ou que l'ID externe indiqué dans la politique d’approbation du rôle ne correspond pas à la configuration SMS du groupe d'utilisateurs.

Pour résoudre ce problème, configurez correctement la politique d’approbation pour le rôle IAM. Pour obtenir des instructions, consultez la section Préparer un rôle IAM qu'Amazon Cognito peut utiliser pour envoyer des SMS avec la messagerie SMS pour utilisateurs finaux AWS.

Erreur « InvalidParameterException »

Cette erreur se produit lorsque la demande d'API envoie un paramètre non valide à Amazon Cognito. Pour résoudre ce problème, spécifiez toutes les valeurs requises dans le paramètre SmsMfaConfiguration de l’API SetUserPoolMfaConfig.

Résoudre les erreurs liées à la MFA TOTP

Exigences :

Remarque : Les fournisseurs d'identité (IdP) externes gèrent l'authentification multifactorielle pour les utilisateurs fédérés. Amazon Cognito ne demande pas l'authentification multifactorielle lors de la fédération d'utilisateurs.

Erreur « NotAuthorizedException: Access token does not have required scopes »

Cette erreur se produit lorsque le jeton d'accès n'inclut pas la portée aws.cognito.signin.user.admin requise pour appeler l'API AssociateSoftwareToken. Lorsqu'un utilisateur utilise l'API InitiateAuth pour se connecter, l'API InitiateAuth inclut automatiquement cette portée dans le jeton d'accès.

Toutefois, lorsqu'un utilisateur utilise la page de connexion gérée pour se connecter, vérifiez que le jeton d'accès inclut la portée aws.cognito.signin.user.admin. Pour vérifier si le jeton inclut la portée aws.cognito.signin.user.admin, décodez les données utiles du jeton d'accès avec Base64. Pour plus d'informations, consultez la section Confirmer la structure du JWT.

Si le jeton n'inclut pas la portée aws.cognito.signin.user.admin, procédez comme suit pour l'ajouter :

  1. Ouvrez la console Amazon Cognito.
  2. Dans le volet de navigation, choisissez Groupes d'utilisateurs.
  3. Sélectionnez le groupe d'utilisateurs que vous souhaitez modifier.
  4. Dans le volet de navigation, sous Applications, sélectionnez Clients d’application.
  5. Sélectionnez le client d'application que vous souhaitez modifier.
  6. Cliquez sur l'onglet Pages de connexion, puis sur Modifier.
  7. Dans la liste déroulante Portées de connexion OpenID, choisissez aws.cognito.signin.user.admin.
  8. Sélectionnez Enregistrer les modifications.

Erreur « NotAuthorizedException: Invalid session for the user, session can only be used once »

Cette erreur se produit lorsqu'un utilisateur essaie de réutiliser une session. Si les utilisateurs reçoivent cette erreur au milieu d'un flux d'authentification avec la MFA TOTP, ils doivent recommencer le processus d'authentification depuis le début. Pour redémarrer l'authentification, utilisez l'API InitiateAuth ou l’API AdminInitiateAuth.

Erreur « NotAuthorizedException: Invalid session for the user, session is expired »

Cette erreur se produit à l'expiration de la session. Par défaut, les sessions expirent au bout de 3 minutes.

Pour résoudre ce problème, augmentez la durée du flux de session d'authentification dans votre client d’application. Vous pouvez augmenter la durée jusqu'à 15 minutes.

Erreur « CodeMismatchException: Invalid code or auth state for the user »

Cette erreur se produit lorsque le code TOTP de l'utilisateur n'est pas valide, que l'état de l'utilisateur ne prend pas en charge l'appel d'API ou que le code TOTP a expiré. Par exemple, un utilisateur appelle l'API RespondToAuthChallenge avec un défi MFA_SETUP et n'a pas configuré la MFA TOTP.

Pour résoudre ce problème, procédez comme suit :

  1. Configurez la MFA TOTP pour l'utilisateur.
  2. Appelez l'API RespondToAuthChallenge avec le défi MFA_SETUP.
  3. Vérifiez que les paramètres d’heure de votre appareil utilisateur correspondent à l'heure actuelle pour générer des codes TOTP valides.

Erreur « InvalidParameterException: User does not have delivery config set to turn on SOFTWARE_TOKEN_MFA »

Cette erreur se produit lorsque vous n'avez pas configuré la MFA TOTP pour vos utilisateurs. Pour résoudre le problème, configurez la MFA TOTP avant d'appeler l'API SetUserMFAPreference ou l’API AdminSetUserMFAPreference.

Erreur « SoftwareTokenMFANotFoundException : Software Token MFA has not been enabled by the userPool »

Cette erreur se produit car vous n'avez pas configuré la MFA TOTP dans votre groupe d'utilisateurs. Pour résoudre l'erreur, configurez MFA TOTP.

Erreur « NotAuthorizedException: Invalid session for the use »

Cette erreur se produit pour les raisons suivantes :

  • Un appel d'API inclut une chaîne de session incorrecte.
  • Les appels d'API ne se produisent pas dans l’ordre approprié.

Pour résoudre ce problème, configurez les appels d'API dans l’ordre approprié. Par exemple, pour recevoir la chaîne de session dans la réponse, appelez l'API InitiateAuth. Pour éviter tout problème, vérifiez que l’appel d'API suivant utilise la chaîne de session renvoyée dans son paramètre de demande.

Erreur « EnableSoftwareTokenMFAException : Code mismatch »

Cette erreur se produit lorsque le code TOTP soumis par l'utilisateur ne correspond pas à ce qu'Amazon Cognito attend lors de la configuration MFA TOTP.

Pour résoudre ce problème, procédez comme suit :

  • Récupérez le code secret à partir de l'API AssociateSoftwareToken.
  • Enregistrez le code secret dans l'application d'authentification.
  • Soumettez un code TOTP à jour.
  • Utilisez le code secret que vous avez récupéré depuis l'API AssociateSoftwareToken pour générer un code QR. Puis, utilisez l'exemple de code suivant pour configurer votre application d'authentification.

Exemple de code Python pour générer un code QR à partir du code secret :

import pyotp
from qrcode.main import QRCode

secret_key = "secret-key-retrieved-from-associate-software-token-api"

totp = pyotp.TOTP(secret_key)
provisioning_uri = totp.provisioning_uri()

qr = QRCode()
qr.add_data(provisioning_uri)
qr.make()
qr.print_ascii()

Résoudre les erreurs d'authentification multifactorielle par e-mail

Avant de configurer l’e-mai en tant que facteur MFA, vous devez configurer Amazon Simple Email Service (Amazon SES) dans votre groupe d'utilisateurs pour envoyer des e-mails à vos utilisateurs.

Lorsque vous activez l'authentification multifactorielle et que vous choisissez l'e-mail comme deuxième facteur, Amazon Cognito envoie des e-mails à une adresse e-mail non vérifiée. Une fois que les utilisateurs ont terminé la vérification MFA par SMS, Amazon Cognito définit l'attribut email_verified sur vrai.

Erreur « InvalidParameterException: Cannot set EmailMfaConfiguration when user pool EmailConfiguration contains an EmailSendingAccount of COGNITO_DEFAULT »

Cette erreur se produit lorsque vous utilisez la configuration d’e-mail par défaut. Pour résoudre ce problème, configurez les paramètres d’e-mail Amazon SES pour votre groupe d'utilisateurs.

Erreur « InvalidParameterException: Cannot set EmailMfaConfiguration when user pool AccountRecoverySetting is not set or contains only verified_email in RecoveryMechanisms »

Cette erreur se produit lorsque vous utilisez uniquement l’e-mail pour la méthode de récupération du compte de l'utilisateur. Vous ne pouvez pas utiliser le même facteur à la fois pour la MFA et la récupération de compte. Pour résoudre ce problème, choisissez une autre méthode de récupération de compte au lieu de l'e-mail. Pour obtenir des instructions, consultez la section Configurer la réinitialisation et la récupération du mot de passe.

Erreur « FeatureUnavailableInTierException »

Cette erreur se produit lorsque votre groupe d'utilisateurs utilise le forfait de fonctionnalités Lite. Seul le forfait Essentials et Plus inclut l'authentification multifactorielle par e-mail. Pour résoudre ce problème, passez du forfait de votre groupe d'utilisateurs à Essentials ou Plus.

Informations connexes

Ajout de la MFA à un groupe d'utilisateurs

MFA par SMS et e-mail

AWS OFFICIELA mis à jour il y a 7 mois