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-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 Reaktionen orchestrieren. Dies sind Authentifizierungsabläufe. In Authentifizierungsabläufen geben Benutzer ein Geheimnis an, und Amazon Cognito überprüft das Geheimnis und gibt dann JSON-Web-Tokens (JWTs) aus, damit Anwendungen sie mit OIDC-Bibliotheken verarbeiten können. In diesem Kapitel werden wir darüber sprechen, wie Sie Ihre Benutzerpools und App-Clients für verschiedene Authentifizierungsabläufe in verschiedenen Anwendungsumgebungen konfigurieren. Sie erfahren mehr über die Optionen für die Verwendung der gehosteten Anmeldeseiten der verwalteten Anmeldung und für den Aufbau 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.
Zur Überprüfung der Identität von Benutzern unterstützt Amazon Cognito Authentifizierungsabläufe, die neben Passwörtern wie Einmalpasswörtern für E-Mail- und SMS-Nachrichten und Hauptschlüsseln auch Fragetypen beinhalten.
Themen
Implementieren Sie Authentifizierungsabläufe
Unabhängig davon, ob Sie eine verwaltete Anmeldung oder ein benutzerdefiniertes Anwendungs-Frontend mit einem AWS SDK für die Authentifizierung implementieren, müssen Sie Ihren App-Client für die Authentifizierungstypen konfigurieren, die Sie implementieren möchten. Die folgenden Informationen beschreiben die Einrichtung von Authentifizierungsabläufen in Ihren App-Clients und Ihrer Anwendung.
Wissenswertes zur Authentifizierung mit Benutzerpools
Beachten Sie beim Entwurf Ihres Authentifizierungsmodells mit Amazon Cognito-Benutzerpools die folgenden Informationen.
- Die Authentifizierung erfolgt in der verwalteten Anmeldung und in der gehosteten Benutzeroberfläche
-
Die verwaltete Anmeldung bietet mehr Authentifizierungsoptionen als die klassische gehostete Benutzeroberfläche. Beispielsweise können Benutzer die kennwortlose Authentifizierung und die Hauptschlüsselauthentifizierung nur bei verwalteter Anmeldung durchführen.
- Benutzerdefinierte Authentifizierungsabläufe sind nur in der SDK-Authentifizierung verfügbar AWS
-
Mit verwalteter Anmeldung oder der klassischen gehosteten Benutzeroberfläche können Sie keine benutzerdefinierten Authentifizierungsabläufe oder benutzerdefinierte Authentifizierung mit Lambda-Triggern durchführen. Benutzerdefinierte Authentifizierung ist in der Authentifizierung mit AWS SDKs verfügbar.
- Verwaltete Anmeldung für die Anmeldung durch einen externen Identitätsanbieter (IdP)
-
Bei der Authentifizierung mit AWS SDKs können Sie Benutzer nicht über Drittanbieter IdPs anmelden. Sie müssen die verwaltete Anmeldung oder die klassische gehostete Benutzeroberfläche implementieren IdPs, zu Ihrer Anwendung umleiten und das resultierende Authentifizierungsobjekt dann mit den OIDC-Bibliotheken verarbeiten. Weitere Informationen zur verwalteten Anmeldung finden Sie unter. Vom Benutzerpool verwaltete Anmeldung
- Auswirkung der kennwortlosen Authentifizierung auf andere Benutzerfunktionen
-
Die Aktivierung der kennwortlosen Anmeldung mit Einmalkennwörtern oder Hauptschlüsseln in Ihrem Benutzerpool und App-Client wirkt sich auf die Benutzererstellung und Migration aus. Wenn die kennwortlose Anmeldung aktiv ist:
-
Administratoren können Benutzer ohne Passwörter erstellen. Die Standardvorlage für Einladungsnachrichten enthält nun nicht mehr den Platzhalter für das
{###}Passwort. Weitere Informationen finden Sie unter Erstellen von Benutzerkonten als Administrator. -
Für den SDK-based SignUp Betrieb müssen Benutzer bei der Registrierung kein Passwort angeben. Für die verwaltete Anmeldung und die gehostete Benutzeroberfläche ist auf der Anmeldeseite ein Passwort erforderlich, auch wenn eine kennwortlose Authentifizierung zulässig ist. Weitere Informationen finden Sie unter Registrieren und Bestätigen von Benutzerkonten.
-
Benutzer, die aus einer CSV-Datei importiert wurden, können sich sofort mit passwortlosen Optionen anmelden, ohne dass das Passwort zurückgesetzt werden muss, wenn ihre Attribute eine E-Mail-Adresse oder Telefonnummer für eine verfügbare passwortlose Anmeldeoption enthalten. Weitere Informationen finden Sie unter Importieren von Benutzern aus einer CSV-Datei in Benutzerpools.
-
Bei der passwortlosen Authentifizierung wird der Lambda-Trigger für die Benutzermigration nicht aufgerufen. Lambda-Auslöser für die Benutzermigration.
-
Benutzer, die sich mit einem Einmalpasswort (OTP) anmelden, können ihrer Sitzung keinen Faktor für die Mehrfaktorauthentifizierung (MFA) hinzufügen. Passwörter mit Benutzerüberprüfung können die MFA-Anforderungen erfüllen, wenn sie mit konfiguriert sind.
MULTI_FACTOR_WITH_USER_VERIFICATION
-
- URLs von Drittanbietern, die sich auf Passkeys verlassen, dürfen nicht auf der Liste der öffentlichen Suffixe stehen
-
Sie können beispielsweise Domainnamen, die Sie besitzen
www.example.com, als RP-ID (Relying Party) in Ihrer Hauptschlüsselkonfiguration verwenden. Diese Konfiguration soll benutzerdefinierte Anwendungen unterstützen, die auf Domänen ausgeführt werden, die Sie besitzen. Die öffentliche Suffixliste(PSL) enthält geschützte Domänen auf hoher Ebene. Amazon Cognito gibt einen Fehler zurück, wenn Sie versuchen, Ihre RP-URL auf eine Domain auf der PSL festzulegen.
Themen
Dauer des Ablaufs der Authentifikationssitzung
Je nach den Funktionen Ihres Benutzerpools können Sie am Ende auf mehrere Herausforderungen reagierenInitiateAuth, RespondToAuthChallenge bevor Ihre App Tokens von Amazon Cognito abruft. Amazon Cognito fügt in der Antwort auf jede Anforderung eine Sitzungszeichenfolge ein. Wenn Sie Ihre API-Anforderungen zu einem Authentifizierungsfluss kombinieren möchten, fügen Sie die Sitzungszeichenfolge aus der Antwort auf die vorherige Anforderung in jede nachfolgende Anforderung ein. Standardmäßig haben Ihre Benutzer für den Abschluss einer Abfrage drei Minuten Zeit, bevor die Sitzungszeichenfolge abläuft. Wenn Sie diesen Zeitraum anpassen möchten, ändern Sie Ihren App-Client Authentication flow session duration (Dauer der Authentifizierungsablaufsitzung). Im folgenden Verfahren wird beschrieben, wie diese Einstellung in Ihrer App-Client-Konfiguration geändert wird.
Anmerkung
Die Einstellungen für die Dauer der Sitzung zum Authentifizierungsablauf gelten für die Authentifizierung mit der Amazon-Cognito-Benutzerpool-API. Bei der verwalteten Anmeldung wird die Sitzungsdauer für die mehrstufige Authentifizierung auf 3 Minuten und für Codes zum Zurücksetzen des Passworts auf 8 Minuten festgelegt.
Weitere Informationen zu App-Clients finden Sie unter Anwendungsspezifische Einstellungen mit App-Clients.
Sperrverhalten bei fehlgeschlagenen Anmeldeversuchen
Nach fünf fehlgeschlagenen Anmeldeversuchen mit dem Passwort eines Benutzers, unabhängig davon, ob diese mit nicht authentifizierten oder IAM-authorized API-Vorgängen angefordert werden, sperrt Amazon Cognito Ihren Benutzer für eine Sekunde. Die Sperrdauer verdoppelt sich dann nach jedem weiteren fehlgeschlagenen Versuch bis zu einer maximalen Dauer von ca. 15 Minuten.
Anmeldeversuche während einer Sperrperiode führen zu einer Ausnahme Password attempts exceeded und wirken sich nicht auf die Dauer nachfolgender Sperrperioden aus. Bei einer kumulativen Anzahl fehlgeschlagener Anmeldeversuche n, Ausnahmen Password attempts exceeded nicht eingeschlossen, sperrt Amazon Cognito Ihren Benutzer für 2^(n-5) Sekunden. Um die Sperre zurückzusetzen (n=0), muss sich Ihr Benutzer danach entweder erfolgreich anmelden oder darf 15 Minuten lang keine Anmeldeversuche unternehmen. Änderungen an diesem Verhalten sind vorbehalten. Dieses Verhalten gilt nicht für benutzerdefinierte Challenges, es sei denn, diese führen auch eine passwortbasierte Authentifizierung durch.
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. Die Beispielanwendung bietet einem Benutzer mehrere Anmeldeoptionen. 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, einen Einmalcode in einer E-Mail-Nachricht anfordern oder eine Fingerabdruckoption wählen können.
-
Sign-in Eingabeaufforderung: 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 ihn auf, ihn einzugeben.
-
Anforderungsoptionen: Ihre Anwendung fordert die Anmeldeoptionen des Benutzers mit einer
InitiateAuthAPI-Anfrage mit demUSER_AUTHFlow an und fordert die verfügbaren Anmeldemethoden für den Benutzer an. -
Anmeldeoptionen senden: Amazon Cognito antwortet mit
PASSWORD, und.EMAIL_OTPWEB_AUTHNDie Antwort enthält eine Sitzungs-ID, die Sie bei der nächsten Antwort erneut abspielen können. -
Anzeigeoptionen: Ihre Anwendung zeigt Benutzeroberflächenelemente an, in denen der Benutzer seinen Benutzernamen und sein Passwort eingeben, einen Einmalcode erhalten oder seinen Fingerabdruck scannen kann.
-
option/Enter Anmeldedaten wählen: Der Benutzer gibt seinen Benutzernamen und sein Passwort ein.
-
Authentifizierung einleiten: Ihre Anwendung stellt den Anmeldeinformationen des Benutzers eine
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 Multifaktor-Authentifizierung, die mit einer Authentifikator-App konfiguriert ist. Amazon Cognito gibt eine Herausforderung zurück.
SOFTWARE_TOKEN_MFA -
Aufforderung zur Herausforderung: Ihre Anwendung zeigt ein Formular an, in dem Sie von der Authentifikator-App des Benutzers ein zeitbasiertes Einmalkennwort (TOTP) anfordern.
-
Herausforderung beantworten: Der Benutzer reicht das TOTP ein.
-
Auf die Herausforderung antworten: In einer weiteren
RespondToAuthChallengeAnfrage stellt Ihre Anwendung das TOTP des Benutzers bereit. -
Antwort auf die Herausforderung validieren: Amazon Cognito bestätigt den Code des Benutzers und stellt fest, dass Ihr Benutzerpool so konfiguriert ist, dass keine weiteren Anfragen an den aktuellen Benutzer gesendet werden.
-
Token ausgeben: Amazon Cognito gibt JSON-Web-Tokens (JWTs) für ID, Zugriff und Aktualisierung 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 den Zugriff des Benutzers auf Ressourcen auf der Grundlage seiner Identität und Rollen und stellt Anwendungsinhalte bereit.
-
Auf Inhalte zugreifen: 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. -
Tokens ausgeben: Amazon Cognito gibt eine neue ID zurück und greift auf JWTs zu. Die Sitzung des Benutzers wird sicher aktualisiert, ohne dass zusätzliche Aufforderungen zur Eingabe von Anmeldeinformationen erforderlich sind.
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 auch den Admin-Authentifizierungsablauf 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.