Wie behebe ich MFA-Fehler in meinem Amazon Cognito-Benutzerpool?
Ich habe Fehler bei der Multi-Faktor-Authentifizierung (MFA), die ich in meinem Amazon Cognito-Benutzerpool beheben muss.
Kurzbeschreibung
Bei der Konfiguration von MFA für Ihren Amazon Cognito-Benutzerpool können mehrere Arten von Fehlern auftreten. Wenn Sie SMS-Nachrichten (Short Message Service) für MFA einrichten, lesen Sie die folgenden Abschnitte: Vor dem Einrichten von SMS für MFA und SMS-MFA-Fehler. Wenn Sie zeitgesteuerte Einmalpassworte (TOTP) für MFA einrichten, lesen Sie die folgenden Abschnitte: Vor der Einrichtung von TOTP für MFA und TOTP-MFA-Fehler.
Lösung
Vor dem Einrichten von SMS für MFA
Bevor Sie SMS als MFA-Faktor einrichten, müssen Sie zusätzliche Schritte unternehmen, um SMS-Nachrichten zum ersten Mal zu senden. Weitere Informationen finden Sie unter Erstmaliges Einrichten von SMS-Nachrichten in Amazon Cognito-Benutzerpools.
Wenn Sie MFA aktivieren und SMS als zweiten Faktor wählen, kann Amazon Cognito SMS-Nachrichten an nicht verifizierte Telefonnummern senden. Nachdem Benutzer die MFA-Verifizierung für SMS-Nachrichten abgeschlossen haben, setzt Amazon Cognito das Attribut phone_number_verified auf true (wahr).
SMS MFA-Fehler
InvalidSmsRoleAccessPolicyException
Die AWS Identity and Access Management (IAM)-Rolle für die SMS-Konfiguration ist nicht berechtigt, Amazon Simple Notification Service (Amazon SNS) für die Veröffentlichung zu verwenden.
Um diesen Fehler zu beheben, stellen Sie sicher, dass Sie der IAM-Rolle die Berechtigung sns:Publish anhängen. Stellen Sie außerdem sicher, dass die Service Control Policies (SCPs) die Aktion sns:Publish nicht blockieren.
InvalidSmsRoleTrustRelationshipException
Dieser Fehler tritt auf, wenn die IAM-Rolle keine gültige Vertrauensbeziehung hat, die es Amazon Cognito ermöglicht, die Rolle zu übernehmen. Dies passiert, wenn cognito-idp.amazonaws.com nicht vertrauenswürdig ist oder die externe ID in der Rollenrichtlinie nicht mit der SMS-Konfiguration des Benutzerpools übereinstimmt.
Um diesen Fehler zu beheben, stellen Sie sicher, dass Sie die Vertrauensrichtlinie für die IAM-Rolle korrekt konfiguriert haben. Weitere Informationen finden Sie unter Erstmaliges Einrichten von SMS-Nachrichten in Amazon Cognito-Benutzerpools.
InvalidParameterException
Dieser Fehler tritt auf, wenn Amazon Cognito auf einen Parameter stößt, der nicht gültig ist.
Um diesen Fehler zu beheben, stellen Sie sicher, dass alle erforderlichen Werte an den Parameter SetUserPoolMfaConfig der SmsMfaConfiguration-API übergeben werden, wenn Sie SMS für MFA einrichten.
Vor der Einrichtung von TOTP für MFA
Wenn Sie das TOTP-Softwaretoken-MFA in Ihrem Amazon Cognito-Benutzerpool einrichten, fügen Sie MFA zu Ihrem Benutzerpool hinzu, bevor Sie das TOTP-Token konfigurieren.
Sofern ein Benutzer nicht bereits authentifiziert ist, können Sie TOTP-Token einem Benutzer erst zuordnen, wenn der Benutzer versucht, sich bei Ihrer Anwendung anzumelden.
MFA unterstützt keine Verbundbenutzer in einem Benutzerpool.
TOTP MFA-Fehler
NotAuthorizedException: Access token does not have required scopes (Das Zugriffstoken hat keine erforderlichen Bereiche)
Dieser Fehler tritt auf, wenn das Zugriffstoken den erforderlichen Bereich aws.cognito.signin.user.admin nicht enthält. Der Bereich aws.cognito.signin.user.admin ist erforderlich, wenn die AssociateSoftwareToken-API aufgerufen wird. Wenn sich ein Benutzer mit derInitiateAuth-API anmeldet, ist der Gültigkeitsbereich automatisch im Zugriffstoken enthalten. Wenn ein Benutzer jedoch eine hosted UI (gehostete Benutzeroberfläche) verwendet, um sich anzumelden, stellen Sie sicher, dass der Bereich aws.cognito.signin.user.admin im Zugriffstoken vorhanden ist.
NotAuthorizedException: Invalid session for the user, session can only be used once (Ungültige Sitzung für den Benutzer, Sitzung kann nur einmal verwendet werden)
Dieser Fehler tritt auf, wenn ein Benutzer dieselbe Sitzung mehr als einmal verwendet. Wenn ein Benutzer diesen Fehler mitten in einem Vorgang erhält, muss die Anwendung den Vorgang von vorne beginnen. Wenn der Benutzer beim Aufrufen einer API eine Sitzungszeichenfolge verwendet, kann der Benutzer die Sitzung nicht erneut verwenden.
NotAuthorizedException: Invalid session for the user, session is expired (Ungültige Sitzung für den Benutzer, Sitzung ist abgelaufen)
Dieser Fehler tritt auf, wenn die Gültigkeitsdauer der Sitzung abläuft. Die Gültigkeitsdauer der Sitzung beträgt standardmäßig 3 Minuten. Um diesen Fehler zu beheben, ändern Sie die Einstellung für die Sitzungsdauer des Authentifizierungsablaufs des App-Clients, um die Gültigkeitsdauer der Sitzung auf 15 Minuten zu erhöhen.
CodeMismatchException: Invalid code or auth state for the user (Ungültiger Code oder Authentifizierungsstatus für den Benutzer)
Dieser Fehler tritt auf, wenn der TOTP-Code des Benutzers nicht gültig ist oder der Status eines Benutzers nicht mit dem Aufruf der API kompatibel ist. Wenn beispielsweise ein Benutzer die RespondToAuthChallenge-API mit einer Challenge namens MFA_SETUP aufruft, Sie aber TOTP MFA nicht konfiguriert haben, tritt der Fehler CodeMismatchException auf. Um diesen Fehler zu beheben, stellen Sie sicher, dass API-Aufrufe in der richtigen Reihenfolge erfolgen, wenn Sie MFA einrichten.
Dieser Fehler tritt auch auf, wenn der TOTP-Code des Benutzers zu alt ist, um von Amazon Cognito akzeptiert zu werden. Um diesen Fehler zu beheben, stellen Sie sicher, dass die Benutzergeräte mit der aktuellen Uhrzeit synchronisiert sind.
InvalidParameterException: User does not have delivery config set to turn on SOFTWARE_TOKEN_MFA (Der Benutzer hat keine Versandkonfiguration zum Einschalten von SOFTWARE_TOKEN_MFA eingestellt)
Dieser Fehler tritt auf, wenn Sie TOTP MFA nicht konfiguriert haben und APIs aufrufen, um zu versuchen, TOTP MFA zu erzwingen. Um diesen Fehler zu beheben, müssen Sie TOTP MFA für die Benutzer konfigurieren, bevor Sie TOTP für Benutzer erzwingen, die die SetUserMFAPreference-API oder die AdminSetUserMFAPreference-API verwenden.
NotAuthorizedException: Invalid session for the user (Ungültige Sitzung für den Benutzer)
Dieser Fehler tritt auf, wenn ein Benutzer eine API aufruft und eine Sitzungszeichenfolge bereitstellt, die nicht der erwarteten Sitzungszeichenfolge entspricht. Dieser Fehler tritt auch auf, wenn Benutzer API-Aufrufe nicht in der richtigen Reihenfolge tätigen. Um diesen Fehler zu beheben, konfigurieren Sie die API-Aufrufe in der entsprechenden Reihenfolge. Um beispielsweise die Sitzungszeichenfolge in der Antwort zu erhalten, ruft der Benutzer zuerst die InitiateAuth-API auf. Um einen Fehler zu vermeiden, stellen Sie sicher, dass der nächste API-Aufruf die zurückgegebene Sitzungszeichenfolge in seinem Anforderungsparameter verwendet.
EnableSoftwareTokenMFAException: Code mismatch (Code-Inkongruenz)
Dieser Fehler tritt auf, wenn ein Benutzer den TOTP-Code, den Amazon Cognito während der TOTP MFA-Konfiguration erwartet, nicht bereitstellt. Um diesen Fehler zu beheben, suchen Sie den Geheimcode, den Amazon Cognito in der AssociateSoftwareToken-API bereitstellt, und speichern Sie ihn in der Authenticator-Anwendung. Der Benutzer muss außerdem einen aktuellen TOTP-Code aus der Authenticator-Anwendung angeben.
SoftwareTokenMFANotFoundException: Software Token MFA has not been enabled by the userPool (Das Software-Token MFA wurde vom UserPool nicht aktiviert)
Dieser Fehler tritt auf, wenn Sie TOTP MFA für Ihren Benutzerpool nicht aktiviert haben. Um diesen Fehler zu beheben, konfigurieren Sie TOTP MFA, bevor Sie versuchen, es in Amazon Cognito zu erzwingen.
Ähnliche Informationen
Hinzufügen von MFA zu einem Benutzerpool
Konfiguration von MFA für einen Benutzer in der nativen Amazon Cognito-API
Relevanter Inhalt
- AWS OFFICIALAktualisiert vor 3 Jahren
- AWS OFFICIALAktualisiert vor 3 Jahren
- AWS OFFICIALAktualisiert vor 2 Jahren