TOTP-Software-Token-MFA - Amazon Cognito

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.

TOTP-Software-Token-MFA

Wenn Sie das TOTP-Software-Token-MFA in Ihrem Benutzerpool einrichten, meldet sich Ihr Benutzer mit einem Benutzernamen und einem Kennwort an und schließt die Authentifizierung dann mit einem TOTP ab. Nachdem Ihr Benutzer einen Benutzernamen und ein Passwort festgelegt und verifiziert hat, kann er ein TOTP-Software-Token für MFA aktivieren. Wenn Ihre App die von Amazon Cognito gehostete Benutzeroberfläche zur Anmeldung von Benutzern verwendet, gibt Ihr Benutzer seinen Benutzernamen und sein Passwort ein und sendet dann das TOTP-Passwort auf einer zusätzlichen Anmeldeseite.

Sie können TOTP-MFA für Ihren Benutzerpool in der Amazon-Cognito-Konsole aktivieren oder die Amazon-Cognito-API-Operationen verwenden. Auf Benutzerpoolebene können Sie aufrufen, SetUserPoolMfaConfig um MFA zu konfigurieren und TOTP MFA zu aktivieren.

Anmerkung

Wenn Sie die TOTP-Software-Token-MFA für den Benutzerpool nicht aktiviert haben, kann Amazon Cognito das Token nicht verwenden, um Benutzer zuzuordnen und zu verifizieren. In diesem Fall erhalten Benutzer eine SoftwareTokenMFANotFoundException Ausnahme mit der Beschreibung Software Token MFA has not been enabled by the userPool. Wenn Sie das Software-Token-MFA später für den Benutzerpool deaktivieren, können Benutzer, die zuvor ein TOTP-Token zugeordnet und verifiziert haben, es weiterhin für MFA verwenden.

TOTP wird für Benutzer in mehreren Schritten konfiguriert. Der Benutzer erhält dabei einen geheimen Code, den er durch Eingabe eines einmaligen Passworts bestätigt. Danach können Sie TOTP-MFA für den Benutzer aktivieren oder TOTP als bevorzugte MFA-Methode für den Benutzer festlegen.

Wenn Sie Ihren Benutzerpool so konfigurieren, dass TOTP-MFA erforderlich ist und sich Ihre Benutzer auf der gehosteten Benutzeroberfläche bei Ihrer App anmelden, automatisiert Amazon Cognito den Benutzerprozess. Amazon Cognito fordert Ihre Benutzer auf, eine MFA-Methode auszuwählen, zeigt einen QR-Code an, um ihre Authentifizierungs-App einzurichten, und überprüft ihre MFA-Registrierung. In Benutzerpools, in denen Sie Benutzern erlaubt haben, zwischen SMS- und TOTP-MFA zu wählen, bietet Amazon Cognito Ihren Benutzern verschiedene Methoden zur Auswahl an. Weitere Informationen zur Anmeldungsumgebung der gehosteten Benutzeroberfläche finden Sie unter So registrieren Sie sich für ein neues Konto bei der von Amazon Cognito gehosteten Benutzeroberfläche.

Wichtig

Wenn Sie einem Benutzerpool eine AWS WAF-Web-ACL zugeordnet haben und eine Regel in Ihrer Web-ACL ein CAPTCHA präsentiert, kann dies zu einem nicht behebbaren Fehler bei der TOTP-Registrierung über die gehostete Benutzeroberfläche führen. Informationen zum Erstellen einer Regel mit einer CAPTCHA-Aktion, die sich nicht auf TOTP der gehosteten Benutzeroberfläche auswirkt, finden Sie unter Konfigurieren Ihrer AWS WAF-Web-ACL für die TOTP-MFA auf der gehosteten Benutzeroberfläche. Weitere Informationen zu AWS WAF-Web-ACLs und Amazon Cognito finden Sie unter Zuordnen einer AWS WAF-Web-ACL zu einem Benutzerpool.

Informationen zum Implementieren der TOTP-MFA in einer benutzerdefinierten Benutzeroberfläche, in der Sie die Amazon-Cognito-API verwenden, finden Sie unter Konfigurieren der MFA für einen Benutzer in der Amazon-Cognito-Benutzerpool-API.

Informationen darüber, wie Sie Ihrem Benutzerpool eine MFA hinzufügen, finden Sie unter Hinzufügen der MFA zu einem Benutzerpool.

TOTP MFA Überlegungen und Einschränkungen

  1. Amazon Cognito unterstützt Softwaretoken-MFA über eine Authentifizierungs-App, die TOTP-Codes generiert. Amazon Cognito unterstützt kein hardwarebasiertes MFA.

  2. Wenn Ihr Benutzerpool TOTP für einen Benutzer benötigt, der ihn nicht konfiguriert hat, erhält Ihr Benutzer ein einmaliges Zugriffstoken, mit dem Ihre App TOTP MFA für den Benutzer aktivieren kann. Nachfolgende Anmeldeversuche schlagen fehl, bis Ihr Benutzer einen zusätzlichen TOTP-Anmeldefaktor registriert hat.

    • Ein Benutzer, der sich in Ihrem Benutzerpool mit der SignUp API-Operation oder über die gehostete Benutzeroberfläche anmeldet, erhält nach Abschluss der Anmeldung einmalige Token.

    • Nachdem Sie einen Benutzer erstellt und der Benutzer sein ursprüngliches Passwort festgelegt hat, gibt Amazon Cognito einmalige Token von der gehosteten Benutzeroberfläche an den Benutzer aus. Wenn Sie ein dauerhaftes Passwort für den Benutzer festlegen, gibt Amazon Cognito bei der erstmaligen Anmeldung des Benutzers einmalige Token aus.

    • Amazon Cognito gibt keine einmaligen Token an einen vom Administrator erstellten Benutzer aus, der sich mit der - InitiateAuth oder -AdminInitiateAuthAPI-Operation anmeldet. Nachdem es Ihrem Benutzer in der Aufforderung gelungen ist, ein Anfangspasswort festzulegen, oder wenn Sie ein dauerhaftes Passwort für den Benutzer festlegen, fordert Amazon Cognito den Benutzer sofort auf, MFA einzurichten.

  3. Wenn ein Benutzer in einem Benutzerpool, der MFA benötigt, bereits ein einmaliges Zugriffstoken erhalten, jedoch noch nicht TOTP MFA eingerichtet hat, kann sich der Benutzer erst mit der gehosteten Benutzeroberfläche anmelden, nachdem er MFA eingerichtet hat. Anstelle des Zugriffstokens können Sie den session Antwortwert aus einer -MFA_SETUPHerausforderung zu InitiateAuth oder AdminInitiateAuth in einer -AssociateSoftwareTokenAnforderung verwenden.

  4. Wenn Ihre Benutzer TOTP eingerichtet haben, können sie es auch dann für MFA verwenden, wenn Sie TOTP für den Benutzerpool später deaktivieren.

  5. Amazon Cognito akzeptiert ausschließlich TOTPs von Authenticator-Apps, die Codes mit der SHA-1-Hash-Funktion generieren. Mit SHA-256-Hashing generierte Codes geben einen Code mismatch-Fehler zurück.

Konfigurieren der MFA für einen Benutzer in der Amazon-Cognito-Benutzerpool-API

Wenn sich ein Benutzer zum ersten Mal anmeldet, verwendet Ihre App das einmalige Zugriffstoken zur Generierung des privaten TOTP-Schlüssels und präsentiert ihn Ihrem Benutzer in Text- oder QR-Codeformat. Ihr Benutzer konfiguriert seine Authentifizierungs-App und stellt ein TOTP für nachfolgende Anmeldeversuche bereit. Ihre App oder die gehostete Benutzeroberfläche präsentiert Amazon Cognito in Antworten auf MFA-Aufforderungen.

Zuordnen des TOTP-Software-Tokens

Um das TOTP-Token zu verknüpfen, senden Sie dem Benutzer einen geheimen Code, den er mit einem einmaligen Passwort validieren muss. Token werden in drei Schritten verknüpft.

  1. Wenn Ihr Benutzer TOTP-Software-Token-MFA auswählt, rufen Sie auf, AssociateSoftwareToken um einen eindeutigen gemeinsamen geheimen Schlüsselcode für das Benutzerkonto zurückzugeben. Sie können entweder AssociateSoftwareToken mit einem Zugriffstoken oder einer Sitzungszeichenfolge autorisieren.

  2. Ihre App präsentiert dem Benutzer den privaten Schlüssel oder einen QR-Code, den Sie anhand des privaten Schlüssels generieren. Ihr Benutzer muss den Schlüssel in eine TOTP-Generierungsanwendung wie Google Authenticator eingeben. Sie können Folgendes libqrencode verwenden, um einen QR-Code zu generieren.

  3. Ihr Benutzer gibt den Schlüssel ein oder scannt den QR-Code in eine Authentifizierungs-App wie Google Authenticator. Daraufhin beginnt die App mit der Generierung von Codes.

Bestätigen des TOTP-Token

Als Nächstes bestätigen Sie das TOTP-Token. Fordern Sie Beispielcodes von Ihrem Benutzer an und stellen Sie sie dem Amazon Cognito-Service zur Verfügung, um zu bestätigen, dass der Benutzer wie folgt erfolgreich TOTP-Codes generiert.

  1. Ihre App fordert Ihren Benutzer zur Eingabe eines Codes auf, um zu zeigen, dass er seine Authentifizierungs-App ordnungsgemäß eingerichtet hat.

  2. Die Authentifizierungs-App des Benutzers zeigt ein temporäres Passwort an. Die Authentifizierungs-App erstellt das Passwort auf Basis des geheimen Schlüssels, den Sie dem Benutzer zur Verfügung gestellt haben.

  3. Ihr Benutzer gibt sein temporäres Passwort ein. Ihre App übergibt das temporäre Passwort an Amazon Cognito in einer VerifySoftwareToken-API-Anforderung.

  4. Amazon Cognito hat den mit dem Benutzer verknüpften geheimen Schlüssel beibehalten, und generiert ein TOTP und vergleicht ihn mit dem von Ihrem Benutzer bereitgestellten TOTP. Wenn sie übereinstimmen, gibt VerifySoftwareToken eine SUCCESS-Antwort zurück.

  5. Amazon Cognito verknüpft den TOTP-Faktor mit dem Benutzer.

  6. Wenn die VerifySoftwareToken-Vorgang eine ERROR Antwort ausgibt, stellen Sie sicher, dass die Uhr des Benutzers richtig eingestellt ist und dass er die maximale Zahl erneuter Versuche nicht überschritten hat. Amazon Cognito akzeptiert TOTP-Token innerhalb von 30 Sekunden vor oder nach dem Versuch, um kleinere Taktversätze zu berücksichtigen. Wenn Sie das Problem behoben haben, versuchen Sie es VerifySoftwareToken erneut.

Melden Sie sich mit TOTP-MFA an

Zu diesem Zeitpunkt meldet sich Ihr Benutzer mit dem zeitbasierten Einmalpasswort an. Der Prozess läuft folgendermaßen ab:

  1. Benutzer geben ihren Benutzernamen und ihr Passwort ein, um sich bei Ihrer Client-App anzumelden.

  2. Die TOTP-MFA-Eingabe wird angezeigt und der Benutzer wird von der Anwendung aufgefordert, ein temporäres Passwort einzugeben.

  3. Der Benutzer erhält ein temporäres Passwort von einer zugeordneten TOTP-Generierung-App.

  4. Der Benutzer gibt den TOTP-Code in der Client-App ein. Die Anwendung sendet eine Bestätigungsanforderung an den Amazon-Cognito-Service. Bei jeder Anmeldung RespondToAuthChallenge sollte aufgerufen werden, um eine Antwort auf die neue TOTP-Authentifizierungsaufforderung zu erhalten.

  5. Wenn das Token von Amazon Cognito bestätigt wird, ist die Anmeldung erfolgreich abgeschlossen und der Benutzer fährt mit dem Authentifizierungsablauf fort.

Entfernen des TOTP-Tokens

Schließlich sollte Ihre App dem Benutzer erlauben, die TOTP-Konfiguration zu deaktivieren. Derzeit können Sie das TOTP-Softwaretoken eines Benutzers nicht löschen. Wenn Sie das Softwaretoken Ihres Benutzers ersetzen möchten, verknüpfen und verifizieren Sie ein neues Softwaretoken. Um TOTP MFA für einen Benutzer zu deaktivieren, rufen Sie SetUserMFAPreference auf, um Ihren Benutzer so zu ändern, dass er keine MFA oder nur SMS-MFA verwendet.

  1. Erstellen Sie in Ihrer App eine Schnittstelle für Benutzer, die die MFA zurücksetzen möchten. Fordern Sie einen Benutzer in dieser Schnittstelle zur Eingabe des Passworts auf.

  2. Wenn Amazon Cognito eine TOTP-MFA-Herausforderung zurückgibt, aktualisieren Sie die MFA-Präferenz Ihres Benutzers mit SetUserMFAPreference .

  3. Teilen Sie dem Benutzer in Ihrer App mit, dass MFA deaktiviert wurde, und fordern Sie ihn auf, sich erneut anzumelden.

Konfigurieren Ihrer AWS WAF-Web-ACL für die TOTP-MFA auf der gehosteten Benutzeroberfläche

Wenn Sie eine AWS WAF-Web-ACL einem Benutzerpool zugeordnet haben und eine Regel in Ihrer Web-ACL ein CAPTCHA präsentiert, kann dies zu einem nicht behebbaren Fehler bei der TOTP-Registrierung über die gehostete Benutzeroberfläche führen. AWS WAF CAPTCHA-Regeln wirken sich so nur auf die TOTP-MFA auf der gehosteten Benutzeroberfläche aus. Die SMS-MFA ist nicht betroffen.

Amazon Cognito zeigt den folgenden Fehler an, wenn Ihre CAPTCHA-Regel es einem Benutzer nicht erlaubt, die TOTP-MFA-Einrichtung abzuschließen.

Anfrage aufgrund des WAF-Captchas nicht zulässig.

Dieser Fehler tritt auf, wenn zur Eingabe eines CAPTCHA als Reaktion auf - AssociateSoftwareToken und VerifySoftwareToken-API-Anforderungen AWS WAF auffordert, die Ihr Benutzerpool im Hintergrund stellt. Zum Erstellen einer Regel, die eine CAPTCHA-Aktion hat und sich nicht auf den TOTP-Algorithmus der gehosteten Benutzeroberfläche auswirkt, schließen Sie die x-amzn-cognito-operation-name-Header-Werte AssociateSoftwareToken und VerifySoftwareToken aus der CAPTCHA-Aktion in Ihrer Regel aus.

Der folgende Screenshot zeigt eine AWS WAF-Beispielregel, die eine CAPTCHA-Aktion auf alle Anfragen anwendet, deren x-amzn-cognito-operation-name-Header-Wert nicht AssociateSoftwareToken oder VerifySoftwareToken lautet.


            Ein Screenshot einer AWS WAF-Regel, die eine CAPTCHA-Aktion auf alle Anfragen anwendet, deren x-amzn-cognito-operation-name-Header-Wert nicht AssociateSoftwareToken oder VerifySoftwareToken lautet.

Weitere Informationen zu AWS WAF-Web-ACLs und Amazon Cognito finden Sie unter Zuordnen einer AWS WAF-Web-ACL zu einem Benutzerpool.