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.
Résoudre les problèmes liés à Amazon Cognito
Ce chapitre propose des solutions aux problèmes courants que vous pouvez rencontrer lors de l'utilisation d'Amazon Cognito. Les implémentations d'Amazon Cognito peuvent être confrontées à divers défis en termes de flux d'authentification, de configuration de groupes d'utilisateurs et de configurations de fédération d'identités. Que vous développiez une nouvelle application ou que vous mainteniez une application existante, ce guide de dépannage vous aide à identifier et à résoudre rapidement les problèmes courants.
Erreurs de configuration de domaine personnalisé
Lorsque vous configurez des noms de domaine personnalisés dans Amazon Cognito, vous pouvez recevoir des messages d'erreur. Les erreurs courantes incluent les problèmes de validation, les problèmes de certificat ou les conflits de domaine.
Custom domain is not a valid
subdomain
Cette erreur indique un problème de résolution DNS pour le domaine parent. Amazon Cognito ne prend pas en charge les domaines de premier niveau et exige que le domaine parent dispose d'un enregistrement DNS A à des fins de validation.
- Problème
-
Cette erreur indique un problème de résolution DNS pour le domaine parent. Amazon Cognito ne prend pas en charge les domaines de premier niveau et exige que le domaine parent dispose d'un enregistrement DNS A à des fins de validation.
- Solution
-
-
Créer un enregistrement A pour le domaine parent : vous devez créer un enregistrement A dans votre configuration DNS pour le domaine parent de votre domaine personnalisé.
-
Exemple : Si votre domaine personnalisé est
auth.xyz.yourdomain.com, le domaine parent l'estxyz.yourdomain.com. Si vous souhaitez le configurerxyz.yourdomain.comen tant que domaine personnalisé, le parent estyourdomain.com. -
Le domaine parent doit être résolu vers une adresse IP valide. S'il ne pointe pas vers une adresse IP réelle, vous pouvez utiliser une adresse IP fictive, telle que
8.8.8.8.
-
-
Vérifier la propagation du DNS (facultatif mais recommandé) : pour vous assurer que votre fournisseur DNS a propagé la modification, vous pouvez exécuter une
digcommande.-
Si vous l'utilisez
auth.xyz.yourdomain.comcomme domaine personnalisé :dig A xyz.yourdomain.com +short -
Si vous l'utilisez
xyz.yourdomain.comcomme domaine personnalisé :dig A yourdomain.com +short -
La commande doit renvoyer l'adresse IP que vous avez configurée. Si ce n'est pas le cas, attendez que la modification soit complètement propagée.
-
-
Supprimer l'enregistrement A du domaine parent : après avoir créé le domaine personnalisé dans Amazon Cognito, vous pouvez supprimer l'enregistrement A que vous avez créé pour le domaine parent s'il s'agit d'un enregistrement fictif.
-
Pour plus d'informations, consultez la section Utilisation de votre propre domaine pour l'interface utilisateur hébergée.
Domain already associated
with another user pool
Les noms de domaine personnalisés doivent être uniques dans toutes Comptes AWS les régions.
- Problème
-
Les noms de domaine personnalisés doivent être uniques dans toutes Comptes AWS les régions.
- Solution
-
-
Pour utiliser le nom de domaine d'un nouveau groupe d'utilisateurs, vous devez supprimer le domaine personnalisé du groupe d'utilisateurs auquel il est actuellement associé.
-
Patientez après la suppression : la suppression complète du domaine personnalisé du premier groupe d'utilisateurs prend du temps. La création d'un nouveau domaine personnalisé portant le même nom immédiatement après sa suppression peut toujours entraîner cette erreur. Patientez quelques minutes avant de réessayer.
-
One or more of the CNAMEs that
you provided are already associated with a different resource
Lorsque vous créez un domaine personnalisé, Amazon Cognito crée une distribution Amazon AWS CloudFront gérée. Un nom de domaine ne peut être utilisé qu'avec une seule CloudFront distribution Amazon. Cette erreur se produit si le nom de domaine est déjà utilisé comme domaine alternatif pour une autre CloudFront distribution Amazon.
- Problème
-
Lorsque vous créez un domaine personnalisé, Amazon Cognito crée une distribution Amazon AWS CloudFront gérée. Un nom de domaine ne peut être utilisé qu'avec une seule CloudFront distribution Amazon. Cette erreur se produit si le nom de domaine est déjà utilisé comme domaine alternatif pour une autre CloudFront distribution Amazon.
- Solution
-
-
Option 1 : utilisez un autre nom de domaine pour votre domaine personnalisé Amazon Cognito.
-
Option 2 : Si vous utilisez le nom de domaine d'Amazon Cognito, ne l'utilisez pas avec une autre distribution Amazon CloudFront .
-
The specified SSL certificate
doesn't exist
Amazon Cognito utilise Amazon CloudFront, qui exige que le certificat AWS Certificate Manager (ACM) se trouve en us-east-1 (Virginie du Nord) Région AWS, quelle que soit la région du groupe d'utilisateurs.
- Problème
-
Amazon Cognito utilise Amazon CloudFront, qui exige que le certificat AWS Certificate Manager (ACM) se trouve en
us-east-1(Virginie du Nord) Région AWS, quelle que soit la région du groupe d'utilisateurs. - Solution
-
-
Vérifier la région du certificat : Vérifiez que le certificat ACM se trouve dans la
us-east-1région. -
Vérifier la validité du certificat : assurez-vous que le certificat sélectionné n'est pas expiré.
-
Certificats importés : Si vous avez importé le certificat dans ACM, assurez-vous que :
-
Il a été délivré par une autorité de certification publique.
-
Elle inclut la chaîne de certificats appropriée.
-
-
AWS KMS Vérification des politiques : une
denydéclaration explicite dans une stratégie AWS Key Management Service (AWS KMS) pour l'utilisateur ou le rôle IAM qui crée le domaine peut provoquer cette erreur. Plus précisément, vérifiez s'il y a des dénégations oukms:DescribeKeydeskms:CreateGrantkms:*actions explicites.
-
Invalid refresh tokenErreur
- Problème
-
Vous recevez un
Invalid refresh tokenmessage d'erreur lorsque vous essayez d'utiliser un jeton d'actualisation pour obtenir de nouveaux jetons d'accès et d'identification auprès de votre groupe d'utilisateurs Amazon Cognito à l'aide de l'opérationInitiateAuthAPIAdminInitiateAuthor. - Solution
-
Mettez en œuvre les étapes de résolution des problèmes suivantes en fonction de la configuration de votre groupe d'utilisateurs et de l'utilisation de l'API :
-
Garantissez la cohérence de l'ID client de l'application : lorsque vous appelez l'
InitiateAuthAPIAdminInitiateAuthor pour actualiser le jeton, vous devez utiliser exactement le même identifiant de client d'application que celui utilisé lors de l'authentification initiale qui a généré le jeton d'actualisation. -
Confirmez l'appareil : si le suivi des appareils est activé sur votre groupe d'utilisateurs, mais que l'appareil de l'utilisateur n'a pas été confirmé, vous devez d'abord appeler l'ConfirmDeviceAPI. Une fois que l'utilisateur a confirmé son appareil, vous pouvez échanger le jeton d'actualisation.
-
Inclure la clé de l'appareil dans la demande d'actualisation : si le suivi des appareils est activé, incluez la clé de l'appareil unique sous forme de et
AuthParameterlorsque vous utilisez leREFRESH_TOKEN_AUTHflux :{ "AuthFlow": "REFRESH_TOKEN_AUTH", "AuthParameters": { "REFRESH_TOKEN": "example_refresh_token", "SECRET_HASH": "example_secret_hash", // Required if your app client uses a client secret "DEVICE_KEY": "example_device_key" } } -
Utilisation
USER_SRP_AUTHpour le suivi des appareils : si vous utilisez le suivi des appareils, le flux d'authentification initial doit êtreUSER_SRP_AUTH.
-
Pour de plus amples informations, veuillez consulter Utilisation d'appareils utilisateur dans votre groupe d'utilisateurs.
Erreurs de réponse SAML non valides dans la fédération
Les utilisateurs reçoivent diverses Invalid SAML response erreurs similaires lorsqu'ils tentent de se fédérer dans Amazon Cognito à l'aide de SAML 2.0. Ces erreurs peuvent survenir en raison de problèmes de mappage d'attributs, de problèmes de certificat ou d'incohérences de configuration.
Invalid user attributes:
Required attribute
- Problème
-
Il manque à un utilisateur une valeur pour un attribut requis dans votre groupe d'utilisateurs, ou l'IdP tente de supprimer ou de mettre à jour un attribut immuable.
- Solution
-
-
Vérifiez les attributs requis définis dans la configuration de votre groupe d'utilisateurs.
-
À l'aide des outils de capture réseau de votre navigateur, récupérez la réponse SAML. Vous devrez peut-être effectuer un décodage d'URL et de base64. Vérifiez que l'attribut est présent dans l'assertion SAML.
-
Connectez-vous à votre fournisseur d'identité et vérifiez les attributs qu'il envoie à Amazon Cognito. Vérifiez que l'IdP est configuré pour envoyer l'attribut requis en utilisant le nom correct.
-
Pour les attributs immuables, exécutez la AWS CLI commande suivante pour les identifier :
aws cognito-idp describe-user-pool --user-pool-id USER-POOL-ID --query 'UserPool.SchemaAttributes[?Mutable==`false`].Name' -
Dans les mappages d'attributs SAML de votre IdP, supprimez tout mappage qui cible un attribut Amazon Cognito immuable. Vous pouvez également mettre à jour l'attribut de destination avec un autre attribut mutable.
-
Invalid SAML response received:
SAML Response signature is invalid
- Problème
-
Votre IdP a mis à jour son certificat de signature SAML, ce qui a entraîné une incompatibilité entre le certificat figurant dans la réponse SAML et le fichier de métadonnées stocké dans Amazon Cognito.
- Solution
-
-
Téléchargez le dernier fichier de métadonnées depuis votre IdP.
-
Dans la console Amazon Cognito, accédez aux fournisseurs sociaux et externes de votre groupe d'utilisateurs, modifiez votre fournisseur SAML et remplacez le fichier de métadonnées existant par le fichier récemment téléchargé.
-
Audience restriction ou Application with identifier not found
- Problème
-
Un ID d'entité incorrect est configuré dans votre IdP, ou l'assertion utilise le nom de ressource uniforme (URN) d'un autre groupe d'utilisateurs.
- Solution
-
-
Obtenez l'identifiant de votre groupe d'utilisateurs Amazon Cognito dans la section Vue d'ensemble de la console.
-
Dans la console de gestion de votre IdP, mettez à jour l'ID d'entité dans l'application SAML pour votre groupe d'utilisateurs. Configurez l'ID d'entité pour qu'il corresponde au format
urn:amazon:cognito:sp:.USER_POOL_IDUSER_POOL_IDRemplacez-le par l'ID du groupe d'utilisateurs de l'étape précédente.
-
An error was encountered with the
requested page
- Problème
-
L'URL d'Assertion Consumer Service (ACS) enregistrée auprès de votre IdP est mal configurée ou l'IdP n'envoie pas la réponse SAML à l'aide de la liaison POST requise.
- Solution
-
-
Dans la console de gestion de votre IdP, mettez à jour l'application avec le format d'URL ACS correct, en vous assurant qu'elle utilise la
HTTP POSTliaison. -
Format de domaine par défaut :
https://cognito-idp.Region.amazonaws.com/your user pool ID/saml2/idpresponse -
Format de domaine personnalisé :
https://auth.example.com/saml2/idpresponse
-
Invalid relayState from identity
provider
- Problème
-
Le
RelayStateparamètre est manquant ou non valide, ou l'URL ne correspond pas entre l'IdP et Amazon Cognito. - Solution
-
-
Pour les flux initiés par le fournisseur de services (initiés par le SP) : lancez toujours l'authentification au point de
/oauth2/authorizeterminaison de votre groupe d'utilisateurs. Les assertions SAML qui ne renvoient pasRelayStateles paramètres de la visite initiale de l'utilisateur sur Amazon Cognito ne sont pas des demandes valides initiées par le SP. -
Pour les flux initiés par le fournisseur d'identité (initiés par l'IdP) : l'IdP doit inclure le
RelayStateparamètre avec l'assertion SAML envoyée au point de/saml2/idpresponseterminaison, en utilisant le format requis :.redirect_uri=REDIRECT_URI&state=STATE
-
Pour de plus amples informations, veuillez consulter Utilisation de fournisseurs d'identité SAML avec un groupe d'utilisateurs.
Les utilisateurs de connexion gérés ne peuvent pas sélectionner un facteur MFA
- Problème
-
Les utilisateurs ne peuvent pas choisir leur méthode MFA préférée lorsqu'ils se connectent via une connexion gérée, ou ils ne sont pas invités à choisir la méthode MFA que vous attendez.
- Solution
-
Amazon Cognito suit une logique spécifique pour déterminer les facteurs MFA disponibles pour les utilisateurs en fonction des paramètres du groupe d'utilisateurs, des attributs utilisateur et de la configuration de restauration du compte. Par exemple, les utilisateurs ne peuvent pas utiliser le MFA par e-mail si le courrier électronique est configuré comme principale méthode de récupération de compte.
Pour annuler la sélection du facteur MFA par défaut, vous pouvez implémenter l'une des approches suivantes :
-
Pour les applications publiques : à utiliser SetUserMFAPreferenceavec un jeton d'accès valide pour permettre aux utilisateurs de définir leurs propres préférences MFA
-
Pour les applications gérées par l'administrateur : à utiliser AdminSetUserMFAPreferenceavec les informations d' AWS identification pour configurer les préférences MFA de l'utilisateur
Les deux opérations vous permettent d'activer ou de désactiver les méthodes SMS, e-mail et MFA TOTP pour des utilisateurs individuels, et de définir une méthode comme méthode préférée.
-
Pour de plus amples informations, veuillez consulter Ajout de l’authentification MFA à un groupe d’utilisateurs.
Les utilisateurs sans mot de passe et avec clé d'accès ne peuvent pas utiliser le MFA
- Problème
-
Les utilisateurs qui se connectent à l'aide de méthodes d'authentification sans mot de passe ou de clés d'accès ne peuvent pas ajouter ou utiliser l'authentification multifactorielle.
- Solution
-
Il s'agit d'une limitation intentionnelle. Vous pouvez configurer votre groupe d'utilisateurs de manière à ce que les utilisateurs disposent de l'authentification MFA ou qu'ils se connectent sans mot de passe, mais pas les deux. La MFA n'est disponible que pour les flux d'authentification par mot de passe.
Pour plus d'informations, consultez Authentification avec des groupes d'utilisateurs.
Impossible de recevoir le code de réinitialisation du mot de passe par e-mail/SMS
- Problème
-
Les utilisateurs ne peuvent pas recevoir de codes de vérification par e-mail ou SMS pendant le processus d'oubli du mot de passe.
- Solution
-
Les codes de vérification peuvent ne pas être reçus pour diverses raisons. Suivez cette liste de contrôle pour résoudre le problème :
-
Vérifiez les dossiers de spam et de courrier indésirable de l'utilisateur.
-
Vérifiez que l'utilisateur existe dans le groupe d'utilisateurs.
-
Vérifiez que le statut de l'utilisateur ne l'est pas
FORCE_CHANGE_PASSWORD. Dans ce cas, l'utilisateur a été créé par un administrateur et Amazon Cognito l'invitera à définir un mot de passe lorsqu'il se connectera avec son mot de passe temporaire. -
Vérifiez que l'attribut e-mail ou numéro de téléphone de l'utilisateur a été vérifié.
-
Vérifiez la limite de dépenses de votre compte pour les SMS
-
Vérifiez votre quota d'envoi de messages Amazon Simple Email Service (Amazon SES).
-
Vérifiez si SMS et Amazon SES (si votre groupe d'utilisateurs est configuré pour envoyer des e-mails avec Amazon SES) ont été retirés du sandbox. S'ils n'ont pas été déplacés hors du bac à sable, les adresses e-mail ou les numéros de téléphone qui n'ont pas été vérifiés par Amazon SES ou ne AWS End User Messaging SMS pourront pas recevoir de codes de réinitialisation de mot de passe.
-
Si l'utilisateur possède un facteur MFA actif, vérifiez qu'il n'essaie pas de générer un message avec le même facteur. Par exemple, les utilisateurs dont l'authentification MFA par e-mail est active ne peuvent pas envoyer de codes de réinitialisation de mot de passe par e-mail.
-
Pour plus d’informations, consultez Paramètres d'e-mail pour les groupes d'utilisateurs Amazon Cognito et Paramètres des SMS pour les groupes d'utilisateurs Amazon Cognito.
Erreurs SECRET_HASH
- Problème
-
Les demandes d'API d'authentification adressées aux clients de l'application avec des secrets clients renvoient des erreurs telles que
An error occurred (NotAuthorizedException) when calling the ForgotPassword operation: Client 1example23456789 is configured with secret but SECRET_HASH was not received. - Solution
-
Votre application doit calculer le secret
SECRET_HASHde l'utilisateur, du client de l'application et du client actuels. La méthode de calcul est la suivante :Base64 ( HMAC_SHA256 ( "client secret", "Username" + "Client Id" ) )Pour obtenir le secret du client, vous pouvez :
-
Ouvrez la console Amazon Cognito et accédez à votre client d'application depuis le menu Clients de l'application. Dans la section Informations sur le client de l'application, recherchez le secret du client. Sélectionnez Afficher le secret du client pour faire apparaître le secret du client de votre application.
-
Générez une DescribeUserPoolClientdemande. Le secret du client est inclus dans la réponse.
-
Pour de plus amples informations, veuillez consulter Calcul des valeurs de hachage secret.
La console Amazon Cognito choisit une configuration par défaut pour un nouveau groupe d'utilisateurs
- Problème
-
Lorsque vous configurez un nouveau groupe d'utilisateurs dans la console, Amazon Cognito choisit plusieurs paramètres par défaut pour vous. Certains paramètres ne peuvent pas être modifiés une fois le groupe d'utilisateurs créé. Comment pouvez-vous faire des choix éclairés et comprendre ce qu'Amazon Cognito a sélectionné automatiquement ?
- Solution
-
La nouvelle configuration du groupe d'utilisateurs dans la console Amazon Cognito est conçue pour les tests et le prototypage rapides. La console ne vous présente que les choix de configuration les plus critiques, à savoir ceux qui ne peuvent pas être modifiés après la création du groupe d'utilisateurs. Tous les autres paramètres configurés automatiquement par Amazon Cognito peuvent être modifiés ultérieurement.
Nous vous recommandons l'approche suivante :
-
Utilisez la console pour créer des groupes d'utilisateurs de test pendant que vous affinez votre implémentation.
-
Après avoir déterminé votre configuration de production, appliquez ces paramètres à vos groupes d'utilisateurs de test.
-
Utilisez DescribeUserPooldes opérations DescribeUserPoolClientd'API pour générer des modèles JSON de votre configuration testée.
-
Utilisez ces modèles avec des outils de déploiement tels que le AWS SDKs CDK ou l'API REST, ou CloudFormation pour créer vos ressources de production.
-
Pour de plus amples informations, veuillez consulter Démarrage avec les groupes d'utilisateurs.
Ressources supplémentaires pour la résolution des problèmes
Pour obtenir des conseils de dépannage supplémentaires et des solutions proposées par la communauté, vous pouvez également consulter les ressources externes suivantes :
-
AWS Communauté Re:post Amazon Cognito
- Parcourez les questions et solutions de la communauté -
AWS Articles du centre de connaissances Amazon Cognito - Articles
de dépannage sélectionnés