TOTPSoftware-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.

TOTPSoftware-Token MFA

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

Sie können TOTP MFA die Aktivierung für Ihren Benutzerpool in der Amazon Cognito Cognito-Konsole vornehmen oder Amazon Cognito Cognito-Operationen API verwenden. Auf Benutzerpool-Ebene können Sie anrufen, SetUserPoolMfaConfigum zu konfigurieren MFA und zu aktivieren. TOTP MFA

Anmerkung

Wenn Sie kein TOTP Software-Token MFA für den Benutzerpool aktiviert haben, kann Amazon Cognito das Token nicht verwenden, um Benutzer zuzuordnen oder 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 für den Benutzerpool später deaktivieren, können Benutzer, die ein TOTP Token zuvor verknüpft und verifiziert haben, es weiterhin verwenden. MFA

Die Konfiguration TOTP für Ihren Benutzer ist ein mehrstufiger Prozess, bei dem Ihr Benutzer einen Geheimcode erhält, den er durch Eingabe eines Einmalkennworts validiert. Als Nächstes können Sie TOTP MFA die Option für Ihren Benutzer aktivieren oder TOTP als bevorzugte MFA Methode für Ihren Benutzer festlegen.

Wenn Sie Ihren Benutzerpool so konfigurieren, dass er erforderlich ist, TOTP MFA und Ihre Benutzer sich in der gehosteten Benutzeroberfläche für Ihre App registrieren, automatisiert Amazon Cognito den Benutzerprozess. Amazon Cognito fordert Ihren Benutzer auf, eine MFA Methode auszuwählen, zeigt einen QR-Code zur Einrichtung seiner Authenticator-App an und verifiziert seine Registrierung. MFA In Benutzerpools, in denen Sie Benutzern erlaubt haben, zwischen SMS und zu wählen TOTPMFA, bietet Amazon Cognito Ihrem Benutzer auch eine Auswahl an Methoden. 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 eine AWS WAF Website mit einem Benutzerpool ACL verknüpft haben und eine Regel in Ihrer Website eine ACL anzeigt, kann dies zu einem CAPTCHA nicht behebbaren Fehler bei der Registrierung der gehosteten Benutzeroberfläche führen. TOTP Informationen zum Erstellen einer Regel mit einer CAPTCHA Aktion, die sich nicht auf die gehostete Benutzeroberfläche TOTP auswirkt, finden Sie unter. Konfiguration Ihres AWS WAF Webs ACL für eine gehostete Benutzeroberfläche TOTP MFA Weitere Informationen zu AWS WAF Web ACLs und Amazon Cognito finden Sie unterEine AWS WAF Website ACL einem Benutzerpool zuordnen.

Informationen zur Implementierung TOTP MFA in einer benutzerdefinierten Benutzeroberfläche, in der Sie Amazon Cognito verwendenAPI, finden Sie unterKonfiguration MFA für einen Benutzer in den Amazon Cognito Cognito-Benutzerpools API.

Informationen zum Hinzufügen MFA zu Ihrem Benutzerpool finden Sie unterMFAZu einem Benutzerpool hinzufügen.

TOTPMFAÜberlegungen und Einschränkungen

  1. Amazon Cognito unterstützt Software-Token MFA über eine Authenticator-App, die Codes generiertTOTP. Amazon Cognito unterstützt keine MFA hardwarebasierten Geräte.

  2. Wenn Ihr Benutzerpool TOTP für einen Benutzer erforderlich ist, der ihn nicht konfiguriert hat, erhält Ihr Benutzer ein einmaliges Zugriffstoken, das Ihre App zur Aktivierung TOTP MFA für den Benutzer verwenden kann. Nachfolgende Anmeldeversuche schlagen fehl, bis Ihr Benutzer einen zusätzlichen TOTP Anmeldefaktor registriert hat.

    • Ein Benutzer, der sich mit dem SignUp API Vorgang oder über die gehostete Benutzeroberfläche in Ihrem Benutzerpool anmeldet, erhält einmalige Token, wenn der Benutzer die Registrierung abgeschlossen hat.

    • 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 den Operationen oder anmeldet. InitiateAuthAdminInitiateAuthAPI Nachdem Ihr Benutzer die Aufforderung zur Einrichtung seines Anfangspassworts erfolgreich bestanden hat oder wenn Sie ein permanentes Passwort für den Benutzer eingerichtet haben, fordert Amazon Cognito den Benutzer sofort zur Einrichtung auf. MFA

  3. Wenn ein Benutzer in einem Benutzerpool, der dies erfordertMFA, bereits ein einmaliges Zugriffstoken erhalten hat, es aber noch nicht eingerichtet hat TOTPMFA, kann sich der Benutzer erst dann mit der gehosteten Benutzeroberfläche anmelden, wenn er es eingerichtet hat. MFA Anstelle des Zugriffstokens können Sie den session Antwortwert einer MFA_SETUP Anfrage InitiateAuthoder AdminInitiateAuthin einer AssociateSoftwareTokenAnfrage verwenden.

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

  5. Amazon Cognito akzeptiert nur TOTPs Authenticator-Apps, die Codes mit der SHA1 Hash-Funktion HMAC generieren. Mit SHA -256-Hashing generierte Codes geben einen Fehler zurück. Code mismatch

Konfiguration MFA für einen Benutzer in den Amazon Cognito Cognito-Benutzerpools API

Wenn sich ein Benutzer zum ersten Mal anmeldet, verwendet Ihre App sein einmaliges Zugriffstoken, um den TOTP privaten Schlüssel zu generieren und ihn Ihrem Benutzer im Text- oder QR-Code-Format zu präsentieren. Ihr Benutzer konfiguriert seine Authenticator-App und stellt eine TOTP für nachfolgende Anmeldeversuche bereit. Ihre App oder die gehostete Benutzeroberfläche präsentiert TOTP sie Amazon Cognito in MFA Challenge-Antworten.

Ordnen Sie das TOTP Software-Token zu

Um das TOTP Token zuzuordnen, senden Sie Ihrem Benutzer einen Geheimcode, den er mit einem Einmalpasswort bestätigen muss. Token werden in drei Schritten verknüpft.

  1. Wenn Ihr Benutzer ein TOTP Software-Token auswähltMFA, rufen Sie an, AssociateSoftwareTokenum einen eindeutigen generierten gemeinsamen geheimen Schlüsselcode für das Benutzerkonto zurückzugeben. Sie können die Autorisierung entweder AssociateSoftwareToken mit einem Zugriffstoken oder einer Sitzungszeichenfolge durchführen.

  2. Ihre App präsentiert dem Benutzer den privaten Schlüssel oder einen QR-Code, den Sie anhand des privaten Schlüssels generieren. Ihr Nutzer muss den Schlüssel in eine App wie Google TOTP Authenticator eingeben, die Daten generiert. 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.

Überprüfen Sie das Token TOTP

Überprüfen Sie als Nächstes 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 erfolgreich TOTP Codes generiert. Gehen Sie dazu wie folgt vor.

  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 leitet das temporäre Passwort in einer VerifySoftwareToken API Anfrage an Amazon Cognito weiter.

  4. Amazon Cognito hat den mit dem Benutzer verknüpften geheimen Schlüssel aufbewahrt und generiert einen TOTP und vergleicht ihn mit dem, den Ihr Benutzer angegeben hat. 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, die innerhalb von 30 Sekunden vor oder nach dem Versuch liegen, um geringfügige Zeitabweichungen zu berücksichtigen. Wenn Sie das Problem behoben haben, versuchen Sie den VerifySoftwareToken Vorgang erneut.

Melden Sie sich an mit TOTP MFA

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 Herausforderung wird aufgerufen und Ihr Benutzer wird von Ihrer App aufgefordert, ein temporäres Passwort einzugeben.

  3. Ihr Benutzer erhält das temporäre Passwort von einer zugehörigen App, die das TOTP System generiert.

  4. Ihr Benutzer gibt den TOTP Code in Ihre Client-App ein. Die Anwendung sendet eine Bestätigungsanforderung an den Amazon-Cognito-Service. RespondToAuthChallengeSollte bei jeder Anmeldung aufgerufen werden, um eine Antwort auf die neue TOTP Authentifizierungsherausforderung 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 Sie das Token TOTP

Schließlich sollte Ihre App es Ihrem Benutzer ermöglichen, seine TOTP Konfiguration zu deaktivieren. Derzeit können Sie das TOTP Software-Token eines Benutzers nicht löschen. Wenn Sie das Softwaretoken Ihres Benutzers ersetzen möchten, verknüpfen und verifizieren Sie ein neues Softwaretoken. Um es TOTP MFA für einen Benutzer zu deaktivieren, rufen Sie an, SetUserMFAPreferenceum Ihren Benutzer so zu ändernMFA, dass er „Nein“ oder „Nur“ verwendet SMSMFA.

  1. Erstellen Sie in Ihrer App eine Oberfläche für Benutzer, die das Gerät zurücksetzen möchtenMFA. Fordern Sie einen Benutzer in dieser Schnittstelle zur Eingabe des Passworts auf.

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

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

Konfiguration Ihres AWS WAF Webs ACL für eine gehostete Benutzeroberfläche TOTP MFA

Wenn Sie eine AWS WAF Website mit einem Benutzerpool ACL verknüpft haben und eine Regel in Ihrer Website eine ACL anzeigtCAPTCHA, kann dies zu einem nicht behebbaren Fehler bei der Registrierung der gehosteten Benutzeroberfläche führen. TOTP AWS WAF CAPTCHARegeln wirken sich auf diese TOTP MFA Weise nur auf die gehostete Benutzeroberfläche aus. SMSMFAist 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 von WAF Captcha nicht zulässig.

Dieser Fehler tritt auf, wenn AWS WAF Sie zur Eingabe einer CAPTCHA Antwort aufgefordert werden AssociateSoftwareTokenund VerifySoftwareTokenAPIAnfragen, die Ihr Benutzerpool im Hintergrund stellt. Um eine Regel zu erstellen, die eine CAPTCHA Aktion hat und sich nicht auf die gehostete Benutzeroberfläche auswirktTOTP, schließen Sie die x-amzn-cognito-operation-name Header-Werte von 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, die keinen x-amzn-cognito-operation-name Header-Wert von AssociateSoftwareToken oder habenVerifySoftwareToken.

Ein Screenshot einer AWS WAF Regel, die eine CAPTCHA Aktion auf alle Anfragen anwendet, die keinen x-amzn-cognito-operation-name Header-Wert von AssociateSoftwareToken oder habenVerifySoftwareToken.

Weitere Informationen zu AWS WAF Web ACLs und Amazon Cognito finden Sie unterEine AWS WAF Website ACL einem Benutzerpool zuordnen.