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.
Authentifizierung mit Amazon Cognito Cognito-Benutzerpools
Amazon Cognito umfasst mehrere Methoden zur Authentifizierung Ihrer Benutzer. Benutzer können sich mit WebAuthn Passwörtern und Hauptschlüsseln anmelden. Amazon Cognito kann ihnen ein Einmalpasswort in einer E-Mail- oder SMS-Nachricht senden. Sie können Lambda-Funktionen implementieren, die Ihre eigene Abfolge von Herausforderungen und Antworten orchestrieren. Dies sind Authentifizierungsabläufe. Bei Authentifizierungsabläufen geben Benutzer ein Geheimnis an und Amazon Cognito verifiziert das Geheimnis und gibt dann JSON-Webtoken (JWTs) für Anwendungen zur Verarbeitung mit OIDC-Bibliotheken aus. In diesem Kapitel wird beschrieben, wie Sie Ihre Benutzerpools und App-Clients für verschiedene Authentifizierungsabläufe in verschiedenen Anwendungsumgebungen konfigurieren. Es behandelt Optionen für die Verwendung der gehosteten Anmeldeseiten von Managed Login und für die Erstellung Ihrer eigenen Logik und Ihres eigenen Frontends in einem AWS SDK.
Alle Benutzerpools, unabhängig davon, ob Sie eine Domain haben oder nicht, können Benutzer in der Benutzerpool-API authentifizieren. Wenn Sie Ihrem Benutzerpool eine Domain hinzufügen, können Sie die Benutzerpool-Endpunkte verwenden. Die Benutzerpool-API unterstützt eine Vielzahl von Autorisierungsmodellen und Anforderungsabläufen für API-Anforderungen.
Um die Identität von Benutzern zu überprüfen, unterstützt Amazon Cognito Authentifizierungsabläufe, die zusätzlich zu Kennwörtern wie Einmalpasswörtern und Hauptschlüsseln für E-Mail- und SMS-Nachrichten auch Challenge-Typen beinhalten.
Bevor Sie die Details konfigurieren, wählen Sie den Authentifizierungsansatz, der zu Ihrer Anwendung passt. In der folgenden Entscheidungshilfe werden die beiden Einstiegspunkte und, innerhalb einer maßgeschneiderten Anwendung, die beiden anfänglichen Anmeldeabläufe zusammengefasst. Jede Option enthält einen Link zu ihrem ausführlichen Abschnitt.
- Möchten Sie, dass Amazon Cognito die Anmeldeseiten hostet oder Ihr eigenes Frontend erstellt?
-
Wenn Sie den Pfad mit dem geringsten Aufwand verwenden möchten, verwenden Sie die verwaltete Anmeldung. Amazon Cognito hostet die Seiten zum Anmelden, Abmelden und Zurücksetzen des Passworts, und Ihre Anwendung verarbeitet das Ergebnis mit einer OpenID Connect (OIDC) Rely-Party-Bibliothek. Bei der verwalteten Anmeldung werden automatisch die Authentifizierungsmethoden angezeigt, die Ihr Benutzerpool und Ihre App-Client-Konfiguration zulassen.
Wenn Sie Ihre eigene Benutzeroberfläche erstellen und die Anmeldelogik steuern möchten, verwenden Sie ein AWS SDK. Ihre Anwendung ruft die Benutzerpools-API direkt auf und Sie implementieren die Challenge-Response-Logik.
- Erfassen Sie in einer maßgeschneiderten Anwendung die Anmeldemethode vom Benutzer oder deklarieren Sie sie im Voraus?
-
Wählen Sie die wahlbasierte Authentifizierung (
USER_AUTHFlow), wenn Sie Benutzern eine Liste verfügbarer Anmeldemethoden anbieten und sie eine auswählen lassen möchten. Dieser Ablauf ist die einzige Möglichkeit, eine passwortlose Anmeldung mit Passkey anzubieten.Wählen Sie die clientbasierte Authentifizierung, wenn Ihre Anwendung bereits weiß, wie sich der Benutzer anmelden wird, und den Flow beispielsweise im Voraus deklariert.
USER_SRP_AUTHClient-basedAuthentifizierung ist die einzige Möglichkeit, die benutzerdefinierten Authentifizierungs - und Aktualisierungstoken-Flows zu verwenden. - Voraussetzungen für die wahlbasierte Authentifizierung
-
Choice-based Die Authentifizierung gilt sowohl für die verwaltete Anmeldung als auch für die SDKs AWS . Um es zu verwenden, fügen Sie es
ALLOW_USER_AUTHzu den zulässigen Authentifizierungsabläufen Ihres App-Clients hinzu. Die Methoden passwortlos und Passkey erfordern zusätzlich eine verwaltete Anmeldedomäne und einen Funktionsplan, der über dem Lite-Tarif (Essentials oder Plus) liegt.
Themen
Ein Beispiel für eine Authentifizierungssitzung
Das folgende Diagramm und die schrittweise Anleitung veranschaulichen ein typisches Szenario, in dem sich ein Benutzer bei einer Anwendung anmeldet. In der Beispielanwendung stehen einem Benutzer mehrere Anmeldeoptionen zur Verfügung. Sie wählen eine aus, indem sie ihre Anmeldeinformationen eingeben, einen zusätzlichen Authentifizierungsfaktor angeben und sich anmelden.
Stellen Sie sich eine Anwendung mit einer Anmeldeseite vor, auf der sich Benutzer mit einem Benutzernamen und einem Passwort anmelden, in einer E-Mail-Nachricht einen Einmalcode anfordern oder eine Fingerabdruckoption wählen können.
-
Sign-in Aufforderung: Ihre Anwendung zeigt einen Startbildschirm mit einer Anmeldeschaltfläche.
-
Anmeldung anfordern: Der Benutzer wählt Anmelden aus. Aus einem Cookie oder einem Cache ruft Ihre Anwendung ihren Benutzernamen ab oder fordert sie auf, ihn einzugeben.
-
Anforderungsoptionen: Ihre Anwendung fordert die Anmeldeoptionen des Benutzers mit einer
InitiateAuthAPI-Anfrage imUSER_AUTHFlow an, in der die verfügbaren Anmeldemethoden für den Benutzer angefordert werden. -
Anmeldeoptionen senden: Amazon Cognito antwortet mit
PASSWORDEMAIL_OTP, und.WEB_AUTHNDie Antwort enthält eine Sitzungs-ID, die Sie in der nächsten Antwort erneut abspielen können. -
Anzeigeoptionen: Ihre Anwendung zeigt Benutzeroberflächenelemente an, mit denen der Benutzer seinen Benutzernamen und sein Passwort eingeben, einen Einmalcode abrufen oder seinen Fingerabdruck scannen kann.
-
Wählen Sie option/Enter Anmeldeinformationen: Der Benutzer gibt seinen Benutzernamen und sein Passwort ein.
-
Authentifizierung einleiten: Ihre Anwendung stellt die Anmeldeinformationen des Benutzers mit einer
RespondToAuthChallengeAPI-Anfrage zur Verfügung, die die Anmeldung mit Benutzername/Passwort bestätigt und den Benutzernamen und das Passwort bereitstellt. -
Anmeldeinformationen validieren: Amazon Cognito bestätigt die Anmeldeinformationen des Benutzers.
-
Zusätzliche Herausforderung: Der Benutzer verfügt über eine Multi-Faktor-Authentifizierung, die mit einer Authenticator-App konfiguriert ist. Amazon Cognito gibt eine
SOFTWARE_TOKEN_MFAHerausforderung zurück. -
Aufforderung zur Aufforderung: In Ihrer Anwendung wird ein Formular angezeigt, in dem ein zeitbasiertes Einmalkennwort (TOTP) von der Authenticator-App des Benutzers angefordert wird.
-
Herausforderung beantworten: Der Benutzer reicht das TOTP ein.
-
Auf die Herausforderung antworten: In einer anderen
RespondToAuthChallengeAnfrage stellt Ihre Anwendung das TOTP des Benutzers bereit. -
Challenge-Antwort validieren: Amazon Cognito bestätigt den Code des Benutzers und stellt fest, dass Ihr Benutzerpool so konfiguriert ist, dass er keine zusätzlichen Herausforderungen an den aktuellen Benutzer ausgibt.
-
Token ausgeben: Amazon Cognito gibt ID-, Zugriffs- und Aktualisierungs-JSON-Web-Tokens (JWTs) zurück. Die Erstauthentifizierung des Benutzers ist abgeschlossen.
-
Token speichern: Ihre Anwendung speichert die Token des Benutzers im Cache, sodass sie auf Benutzerdaten verweisen, den Zugriff auf Ressourcen autorisieren und Token aktualisieren kann, wenn sie ablaufen.
-
Autorisierte Inhalte rendern: Ihre Anwendung bestimmt anhand ihrer Identität und Rollen den Zugriff des Benutzers auf Ressourcen und stellt Anwendungsinhalte bereit.
-
Zugriff auf Inhalte: Der Benutzer ist angemeldet und beginnt, die Anwendung zu verwenden.
-
Inhalt mit abgelaufenem Token anfordern: Später fordert der Benutzer eine Ressource an, für die eine Autorisierung erforderlich ist. Das zwischengespeicherte Token des Benutzers ist abgelaufen.
-
Aktualisierungstoken: Ihre Anwendung stellt eine
InitiateAuthAnfrage mit dem gespeicherten Aktualisierungstoken des Benutzers. -
Token ausgeben: Amazon Cognito gibt eine neue ID zurück und greift auf JWTs zu. Die Sitzung des Benutzers wird ohne zusätzliche Aufforderung zur Eingabe von Anmeldeinformationen sicher aktualisiert.
Sie können AWS Lambda Trigger verwenden, um die Art und Weise, wie sich Benutzer authentifizieren, anzupassen. Diese Auslöser geben ihre eigenen Eingabeaufforderungen im Rahmen des Authentifizierungsablaufs aus und überprüfen sie.
Sie können den Admin-Authentifizierungsablauf auch für sichere Backend-Server verwenden. Sie können den Authentifizierungsablauf für die Benutzermigration verwenden, um die Benutzermigration zu ermöglichen, ohne dass Ihre Benutzer ihre Passwörter zurücksetzen müssen.