Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Problembehandlung bei Amazon Cognito
Dieses Kapitel bietet Lösungen für häufig auftretende Probleme, auf die Sie bei der Arbeit mit Amazon Cognito stoßen können. Amazon Cognito Cognito-Implementierungen können in Bezug auf Authentifizierungsabläufe, Benutzerpoolkonfigurationen und Identitätsverbundeinrichtungen mit verschiedenen Herausforderungen konfrontiert sein. Ganz gleich, ob Sie eine neue Anwendung entwickeln oder eine bestehende verwalten, dieser Leitfaden zur Fehlerbehebung hilft Ihnen dabei, häufig auftretende Probleme schnell zu identifizieren und zu lösen.
Fehler bei der Konfiguration benutzerdefinierter Domänen
Bei der Konfiguration benutzerdefinierter Domainnamen in Amazon Cognito erhalten Sie möglicherweise Fehlermeldungen. Zu den häufigsten Fehlern gehören Validierungsprobleme, Zertifikatsprobleme oder Domainkonflikte.
Custom domain is not a valid
subdomain
Dieser Fehler weist auf ein Problem mit der DNS-Auflösung für die übergeordnete Domain hin. Amazon Cognito unterstützt keine Top-Level-Domains und verlangt, dass die übergeordnete Domain zur Validierung über einen DNS-A-Eintrag verfügt.
- Problem
-
Dieser Fehler weist auf ein Problem mit der DNS-Auflösung für die übergeordnete Domain hin. Amazon Cognito unterstützt keine Top-Level-Domains und verlangt, dass die übergeordnete Domain zur Validierung über einen DNS-A-Eintrag verfügt.
- Lösung
-
-
Erstellen Sie einen A-Eintrag für die übergeordnete Domain: Sie müssen in Ihrer DNS-Konfiguration einen A-Eintrag für die übergeordnete Domain Ihrer benutzerdefinierten Domain erstellen.
-
Beispiel: Wenn Ihre benutzerdefinierte Domain ist
auth.xyz.yourdomain.com, ist es die übergeordnete Domainxyz.yourdomain.com. Wenn Sie die Domainxyz.yourdomain.comals benutzerdefinierte Domain konfigurieren möchten, ist dies die übergeordnete Domainyourdomain.com. -
Die übergeordnete Domäne muss zu einer gültigen IP-Adresse aufgelöst werden. Wenn sie nicht auf eine echte IP-Adresse verweist, können Sie eine Schein-IP-Adresse verwenden, z. B.
8.8.8.8
-
-
Überprüfen Sie die DNS-Weitergabe (optional, aber empfohlen): Um sicherzustellen, dass Ihr DNS-Anbieter die Änderung weitergegeben hat, können Sie einen
digBefehl ausführen.-
Bei Verwendung
auth.xyz.yourdomain.comals benutzerdefinierte Domain:dig A xyz.yourdomain.com +short -
Bei Verwendung
xyz.yourdomain.comals benutzerdefinierte Domain:dig A yourdomain.com +short -
Der Befehl sollte die von Ihnen konfigurierte IP-Adresse zurückgeben. Ist dies nicht der Fall, warten Sie, bis sich die Änderung vollständig verbreitet hat.
-
-
A-Eintrag der übergeordneten Domain entfernen: Nachdem Sie die benutzerdefinierte Domain erfolgreich in Amazon Cognito erstellt haben, können Sie den A-Eintrag entfernen, den Sie für die übergeordnete Domain erstellt haben, falls es sich um einen Dummy-Eintrag handelt.
-
Weitere Informationen finden Sie unter Verwenden Ihrer eigenen Domain für die gehostete Benutzeroberfläche.
Domain already associated
with another user pool
Benutzerdefinierte Domainnamen müssen in allen AWS-Konten Regionen eindeutig sein.
- Problem
-
Benutzerdefinierte Domainnamen müssen in allen AWS-Konten Regionen einzigartig sein.
- Lösung
-
-
Um den Domainnamen für einen neuen Benutzerpool zu verwenden, müssen Sie die benutzerdefinierte Domäne aus dem Benutzerpool löschen, dem sie derzeit zugeordnet ist.
-
Warten Sie nach dem Löschen: Es dauert einige Zeit, bis die benutzerdefinierte Domäne vollständig aus dem ersten Benutzerpool gelöscht ist. Das Erstellen einer neuen benutzerdefinierten Domain mit demselben Namen unmittelbar nach dem Löschen kann immer noch zu diesem Fehler führen. Warten Sie ein paar Minuten, bevor Sie es erneut versuchen.
-
One or more of the CNAMEs that
you provided are already associated with a different resource
Wenn Sie eine benutzerdefinierte Domain erstellen, erstellt Amazon Cognito eine AWS-verwaltete CloudFront Amazon-Distribution. Ein Domainname kann nur mit einer CloudFront Amazon-Distribution verwendet werden. Dieser Fehler tritt auf, wenn der Domainname bereits als alternative Domain für eine andere CloudFront Amazon-Distribution verwendet wird.
- Problem
-
Wenn Sie eine benutzerdefinierte Domain erstellen, erstellt Amazon Cognito eine AWS-verwaltete CloudFront Amazon-Distribution. Ein Domainname kann nur mit einer CloudFront Amazon-Distribution verwendet werden. Dieser Fehler tritt auf, wenn der Domainname bereits als alternative Domain für eine andere CloudFront Amazon-Distribution verwendet wird.
- Lösung
-
-
Option 1: Verwenden Sie einen anderen Domainnamen für Ihre benutzerdefinierte Amazon Cognito Cognito-Domain.
-
Option 2: Wenn Sie den Domainnamen für Amazon Cognito verwenden, verwenden Sie ihn nicht mit einer anderen CloudFront Amazon-Distribution.
-
The specified SSL certificate
doesn't exist
Amazon Cognito verwendet Amazon CloudFront, was erfordert, dass sich das AWS Certificate Manager (ACM) -Zertifikat in us-east-1 (Nord-Virginia) befindet AWS-Region, unabhängig von der Region des Benutzerpools.
- Problem
-
Amazon Cognito verwendet Amazon CloudFront, was erfordert, dass sich das AWS Certificate Manager (ACM) -Zertifikat in
us-east-1(Nord-Virginia) befindet AWS-Region, unabhängig von der Region des Benutzerpools. - Lösung
-
-
Stellen Sie sicher, dass sich das Zertifikat in der Region befindet: Stellen Sie sicher, dass sich das ACM-Zertifikat in der Region befindet.
us-east-1 -
Überprüfen Sie die Gültigkeit des Zertifikats: Stellen Sie sicher, dass das ausgewählte Zertifikat nicht abgelaufen ist.
-
Importierte Zertifikate: Wenn Sie das Zertifikat in ACM importiert haben, stellen Sie Folgendes sicher:
-
Es wurde von einer öffentlichen Zertifizierungsstelle ausgestellt.
-
Es enthält die richtige Zertifikatskette.
-
-
AWS KMS Richtlinienüberprüfung: Eine ausdrückliche
denyAussage in einer AWS Key Management Service (AWS KMS) -Richtlinie für den IAM-Benutzer oder die IAM-Rolle, die die Domäne erstellt, kann diesen Fehler verursachen. Suchen Sie insbesondere nach expliziten Ablehnungen vonkms:DescribeKeykms:CreateGrant, oder Aktionen.kms:*
-
Invalid refresh token-Fehler
- Problem
-
Sie erhalten eine
Invalid refresh tokenFehlermeldung, wenn Sie versuchen, ein Aktualisierungstoken zu verwenden, um mithilfe derInitiateAuthAPI-OperationAdminInitiateAuthoder neue Zugriffs- und ID-Token aus Ihrem Amazon Cognito Cognito-Benutzerpool abzurufen. - Lösung
-
Implementieren Sie die folgenden Schritte zur Fehlerbehebung auf der Grundlage Ihrer Benutzerpool-Konfiguration und API-Nutzung:
-
Stellen Sie sicher, dass die App-Client-ID einheitlich ist: Wenn Sie die
InitiateAuthAPIAdminInitiateAuthoder für die Token-Aktualisierung aufrufen, müssen Sie genau dieselbe App-Client-ID verwenden, die bei der ersten Authentifizierung verwendet wurde, die das Aktualisierungstoken generiert hat. -
Bestätigen Sie das Gerät: Wenn Sie die Geräteverfolgung in Ihrem Benutzerpool aktiviert haben, das Gerät des Benutzers jedoch nicht bestätigt wurde, müssen Sie zuerst die ConfirmDeviceAPI aufrufen. Nachdem der Benutzer sein Gerät bestätigt hat, können Sie das Aktualisierungstoken austauschen.
-
Geräteschlüssel in Aktualisierungsanfrage einbeziehen: Wenn die Geräteverfolgung aktiviert ist, geben Sie den eindeutigen Geräteschlüssel an
AuthParameter, wenn Sie denREFRESH_TOKEN_AUTHFlow verwenden:{ "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" } } -
USER_SRP_AUTHFür Geräte-Tracking verwenden: Wenn Sie Geräte-Tracking verwenden, muss der anfängliche Authentifizierungsablauf aktiviert seinUSER_SRP_AUTH.
-
Weitere Informationen finden Sie unter Verwendung von Benutzergeräten in Ihrem Benutzerpool.
Ungültige SAML-Antwortfehler im Verbund
Benutzern werden verschiedene Invalid SAML response und ähnliche Fehler angezeigt, wenn sie versuchen, mithilfe von SAML 2.0 eine Verbindung zu Amazon Cognito herzustellen. Diese Fehler können aufgrund von Problemen mit der Attributzuweisung, Zertifikatsproblemen oder nicht übereinstimmenden Konfigurationen auftreten.
Invalid user attributes:
Required attribute
- Problem
-
Einem Benutzer fehlt ein Wert für ein Attribut, das in Ihrem Benutzerpool erforderlich ist, oder der IdP versucht, ein unveränderliches Attribut zu entfernen oder zu aktualisieren.
- Lösung
-
-
Überprüfen Sie die erforderlichen Attribute, die in Ihrer Benutzerpool-Konfiguration definiert sind.
-
Rufen Sie die SAML-Antwort mithilfe der Netzwerkerfassungstools in Ihrem Browser ab. Möglicherweise müssen Sie eine URL- und Base64-Dekodierung durchführen. Stellen Sie sicher, dass das Attribut in der SAML-Assertion vorhanden ist.
-
Melden Sie sich bei Ihrem Identitätsanbieter an und überprüfen Sie die Attribute, die er an Amazon Cognito sendet. Stellen Sie sicher, dass der IdP so konfiguriert ist, dass er das erforderliche Attribut mit dem richtigen Namen sendet.
-
Führen Sie für unveränderliche Attribute den folgenden AWS CLI Befehl aus, um sie zu identifizieren:.
aws cognito-idp describe-user-pool --user-pool-id USER-POOL-ID --query 'UserPool.SchemaAttributes[?Mutable==`false`].Name' -
Löschen Sie in den SAML-Attributzuordnungen Ihres IdP alle Zuordnungen, die auf ein unveränderliches Amazon Cognito-Attribut abzielen. Alternativ können Sie das Zielattribut auf ein anderes, veränderbares Attribut aktualisieren.
-
Invalid SAML response received:
SAML Response signature is invalid
- Problem
-
Ihr IdP hat sein SAML-Signaturzertifikat aktualisiert, was zu einer Nichtübereinstimmung zwischen dem Zertifikat in der SAML-Antwort und der in Amazon Cognito gespeicherten Metadatendatei geführt hat.
- Lösung
-
-
Laden Sie die neueste Metadatendatei von Ihrem IdP herunter.
-
Navigieren Sie in der Amazon Cognito Cognito-Konsole zu Social und externen Anbietern für Ihren Benutzerpool, bearbeiten Sie Ihren SAML-Anbieter und ersetzen Sie die vorhandene Metadatendatei durch die neu heruntergeladene Datei.
-
Audience restriction oder Application with identifier not found
- Problem
-
In Ihrem IdP ist eine falsche Entitäts-ID konfiguriert, oder die Assertion verwendet den Uniform Resource Name (URN) eines anderen Benutzerpools.
- Lösung
-
-
Rufen Sie Ihre Amazon Cognito Cognito-Benutzerpool-ID im Abschnitt Übersicht in der Konsole ab.
-
Aktualisieren Sie in der Managementkonsole für Ihren IdP die Entitäts-ID in der SAML-Anwendung für Ihren Benutzerpool. Konfigurieren Sie die Entitäts-ID so, dass sie dem Format entspricht.
urn:amazon:cognito:sp:USER_POOL_IDUSER_POOL_IDErsetzen Sie durch die Benutzerpool-ID aus dem vorherigen Schritt.
-
An error was encountered with the
requested page
- Problem
-
Die bei Ihrem IdP registrierte URL des Assertion Consumer Service (ACS) ist falsch konfiguriert, oder der IdP sendet die SAML-Antwort nicht mit der erforderlichen POST-Bindung.
- Lösung
-
-
Aktualisieren Sie die Anwendung in der Verwaltungskonsole für Ihren IdP mit dem richtigen ACS-URL-Format und stellen Sie sicher, dass sie die
HTTP POSTBindung verwendet. -
Standard-Domänenformat:
https://cognito-idp.Region.amazonaws.com/your user pool ID/saml2/idpresponse -
Benutzerdefiniertes Domain-Format:
https://auth.example.com/saml2/idpresponse
-
Invalid relayState from identity
provider
- Problem
-
Der
RelayStateParameter fehlt oder ist ungültig, oder die URL stimmt nicht zwischen dem IdP und Amazon Cognito überein. - Lösung
-
-
Für vom Service Provider initiierte (SP-initiierte) Flows: Starten Sie die Authentifizierung immer an Ihrem Benutzerpool-Endpunkt.
/oauth2/authorizeSAML-Assertionen, die keineRelayStateParameter vom ersten Besuch des Benutzers bei Amazon Cognito zurückgeben, sind keine gültigen SP-initiierten Anfragen. -
Für vom Identitätsanbieter initiierte (vom IdP initiierte) Datenflüsse: Der IdP muss den
RelayStateParameter mit der SAML-Assertion an den/saml2/idpresponseEndpunkt hinzufügen und dabei das erforderliche Format verwenden:.redirect_uri=REDIRECT_URI&state=STATE
-
Weitere Informationen finden Sie unter Verwendung von SAML-Identitätsanbietern mit einem Benutzerpool.
Benutzer mit verwalteter Anmeldung können keinen MFA-Faktor auswählen
- Problem
-
Benutzer können ihre bevorzugte MFA-Methode nicht wählen, wenn sie sich über die verwaltete Anmeldung anmelden, oder sie werden nicht zur Eingabe der erwarteten MFA-Methode aufgefordert.
- Lösung
-
Amazon Cognito folgt einer bestimmten Logik, um anhand von Benutzerpooleinstellungen, Benutzerattributen und der Konfiguration der Kontowiederherstellung zu bestimmen, welche MFA-Faktoren Benutzern zur Verfügung stehen. Beispielsweise können Benutzer E-Mail-MFA nicht verwenden, wenn E-Mail als primäre Methode zur Kontowiederherstellung konfiguriert ist.
Um die standardmäßige MFA-Faktorauswahl zu überschreiben, können Sie einen der folgenden Ansätze implementieren:
-
Für öffentliche Anwendungen: SetUserMFAPreferenceMit einem gültigen Zugriffstoken verwenden, damit Benutzer ihre eigenen MFA-Einstellungen festlegen können
-
Für vom Administrator verwaltete Anwendungen: AdminSetUserMFAPreferenceMit AWS Anmeldeinformationen verwenden, um Benutzer-MFA-Einstellungen zu konfigurieren
Mit beiden Vorgängen können Sie SMS-, E-Mail- und TOTP-MFA-Methoden für einzelne Benutzer aktivieren oder deaktivieren und eine Methode als bevorzugt festlegen.
-
Weitere Informationen finden Sie unter Hinzufügen der MFA zu einem Benutzerpool.
Benutzer ohne Passwort und Passkey können MFA nicht verwenden
- Problem
-
Benutzer, die sich mit kennwortlosen Authentifizierungsmethoden oder Hauptschlüsseln anmelden, können keine Multi-Faktor-Authentifizierung hinzufügen oder verwenden.
- Lösung
-
Dies ist eine beabsichtigte Einschränkung. Sie können Ihren Benutzerpool so konfigurieren, dass Benutzer über MFA verfügen oder sich mit kennwortlosen Faktoren anmelden, aber nicht beides. MFA ist nur für kennwortbasierte Authentifizierungsabläufe verfügbar.
Weitere Informationen finden Sie unter Authentifizierung mit Benutzerpools.
Der Code zum Zurücksetzen des Kennworts konnte nicht per E-Mail/SMS empfangen werden
- Problem
-
Benutzer können während des Workflows „Passwort vergessen“ keine Bestätigungscodes per E-Mail oder SMS erhalten.
- Lösung
-
Es gibt verschiedene Gründe, warum Bestätigungscodes möglicherweise nicht empfangen werden. Folgen Sie dieser Checkliste, um das Problem zu beheben:
-
Überprüfen Sie die Spam- und Junk-E-Mail-Ordner des Benutzers.
-
Vergewissern Sie sich, dass der Benutzer im Benutzerpool vorhanden ist.
-
Stellen Sie sicher, dass der Status des Benutzers nicht lautet
FORCE_CHANGE_PASSWORD. In diesem Fall wurde der Benutzer von einem Administrator erstellt und Amazon Cognito fordert ihn auf, ein Passwort festzulegen, wenn er sich mit seinem temporären Passwort anmeldet. -
Vergewissern Sie sich, dass der Benutzer über ein verifiziertes E-Mail- oder Telefonnummernattribut verfügt.
-
Überprüfe das Ausgabenlimit deines Kontos für SMS-Nachrichten
-
Überprüfen Sie Ihr Kontingent für den Versand von Nachrichten mit Amazon Simple Email Service (Amazon SES).
-
Prüfen Sie, ob sowohl SMS als auch Amazon SES (wenn Ihr Benutzerpool für das Senden von E-Mails mit Amazon SES konfiguriert ist) aus der Sandbox verschoben wurden. Wenn sie nicht aus der Sandbox entfernt wurden, E-Mail-Adressen oder Telefonnummern, die nicht von Amazon SES verifiziert wurden oder AWS Endbenutzer-Messaging SMS keine Codes zum Zurücksetzen von Passwörtern erhalten können.
-
Wenn der Benutzer einen aktiven MFA-Faktor hat, vergewissern Sie sich, dass er nicht versucht, eine Nachricht für denselben Faktor zu generieren. Beispielsweise können Benutzer mit aktiviertem E-Mail-MFA keine Codes zum Zurücksetzen des Passworts per E-Mail senden.
-
Weitere Informationen erhalten Sie unter E-Mail-Einstellungen für Amazon-Cognito-Benutzerpools und Einstellungen für SMS-Nachrichten für Amazon-Cognito-Benutzerpools.
SECRET_HASH-Fehler
- Problem
-
Authentifizierungs-API-Anfragen an App-Clients mit Client-Geheimnissen geben Fehler zurück wie
An error occurred (NotAuthorizedException) when calling the ForgotPassword operation: Client 1example23456789 is configured with secret but SECRET_HASH was not received. - Lösung
-
Ihre Anwendung muss das Geheimnis
SECRET_HASHfür den aktuellen Benutzer, den App-Client und den aktuellen Client berechnen. Die Berechnungsmethode ist:Base64 ( HMAC_SHA256 ( "client secret", "Username" + "Client Id" ) )Um das Client-Geheimnis zu erhalten, können Sie:
-
Öffnen Sie die Amazon Cognito Cognito-Konsole und navigieren Sie über das App-Client-Menü zu Ihrem App-Client. Suchen Sie im Abschnitt App-Client-Informationen nach Client Secret. Wählen Sie Geheimen Client anzeigen aus und Ihr App-Client-Geheimnis wird angezeigt.
-
Generieren Sie eine DescribeUserPoolClientAnfrage. Das geheime Client-Geheimnis ist in der Antwort enthalten.
-
Weitere Informationen finden Sie unter Berechnen von Werten für geheime Hashes.
Die Amazon Cognito Cognito-Konsole wählt eine Standardkonfiguration für einen neuen Benutzerpool
- Problem
-
Wenn Sie einen neuen Benutzerpool in der Konsole einrichten, wählt Amazon Cognito mehrere Standardeinstellungen für Sie aus. Einige Einstellungen können nach der Erstellung des Benutzerpools nicht geändert werden. Wie können Sie fundierte Entscheidungen treffen und verstehen, was Amazon Cognito automatisch ausgewählt hat?
- Lösung
-
Das neue Benutzerpool-Setup in der Amazon Cognito Cognito-Konsole ist für schnelles Testen und Prototyping konzipiert. Die Konsole bietet Ihnen nur die wichtigsten Konfigurationsoptionen — diejenigen, die nach der Erstellung des Benutzerpools nicht geändert werden können. Alle anderen Einstellungen, die Amazon Cognito automatisch konfiguriert, können später geändert werden.
Wir empfehlen folgende Vorgehensweise:
-
Verwenden Sie die Konsole, um Testbenutzerpools zu erstellen, während Sie Ihre Implementierung verfeinern.
-
Nachdem Sie Ihre Produktionskonfiguration festgelegt haben, wenden Sie diese Einstellungen auf Ihre Testbenutzerpools an.
-
Verwenden Sie DescribeUserPoolund DescribeUserPoolClientAPI-Operationen, um JSON-Vorlagen Ihrer getesteten Konfiguration zu generieren.
-
Verwenden Sie diese Vorlagen mit Bereitstellungstools wie CDK, REST-API oder AWS CloudFormation zur Erstellung Ihrer Produktionsressourcen. AWS SDKs
-
Weitere Informationen finden Sie unter Erste Schritte mit Benutzerpools.
Weitere Ressourcen zur Fehlerbehebung
Weitere Anleitungen zur Fehlerbehebung und von der Community bereitgestellte Lösungen finden Sie auch in den folgenden externen Ressourcen:
-
AWS re:post Amazon Cognito Community
— Fragen und Lösungen aus der Community durchsuchen -
AWS Knowledge Center-Artikel zu Amazon Cognito — Ausgewählte Artikel
zur Fehlerbehebung