

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
<a name="authentication"></a>

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 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 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](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-userpools-server-contract-reference.html) 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.

**Topics**
+ [Implementieren Sie Authentifizierungsabläufe](#authentication-implement)
+ [Wissenswertes zur Authentifizierung mit Benutzerpools](#authentication-flow-things-to-know)
+ [Ein Beispiel für eine Authentifizierungssitzung](#amazon-cognito-user-pools-authentication-flow)
+ [Konfigurieren Sie Authentifizierungsmethoden für die verwaltete Anmeldung](authentication-flows-selection-managedlogin.md)
+ [Verwalten Sie Authentifizierungsmethoden in AWS SDKs](authentication-flows-selection-sdk.md)
+ [Authentifizierungsabläufe](amazon-cognito-user-pools-authentication-flow-methods.md)
+ [Autorisierungsmodelle für die API- und SDK-Authentifizierung](authentication-flows-public-server-side.md)

## Implementieren Sie Authentifizierungsabläufe
<a name="authentication-implement"></a>

Unabhängig davon, ob Sie eine [verwaltete Anmeldung](authentication-flows-selection-managedlogin.md) oder ein [benutzerdefiniertes Anwendungs-Frontend](authentication-flows-selection-sdk.md) 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](user-pool-settings-client-apps.md) und Ihrer Anwendung.

------
#### [ App client supported flows ]

Sie können unterstützte Flows für Ihre App-Clients in der Amazon Cognito Cognito-Konsole oder mit der API in einem AWS SDK konfigurieren. Nachdem Sie Ihren App-Client so konfiguriert haben, dass er diese Flows unterstützt, können Sie sie in Ihrer Anwendung bereitstellen.

Das folgende Verfahren konfiguriert die verfügbaren Authentifizierungsabläufe für einen App-Client mit der Amazon Cognito Cognito-Konsole.

**So konfigurieren Sie einen App-Client für Authentifizierungsabläufe (Konsole)**

1. Melden Sie sich an AWS und navigieren Sie zur [Amazon Cognito Cognito-Benutzerpools-Konsole](https://console.aws.amazon.com/cognito/v2/idp). Wählen Sie einen Benutzerpool oder erstellen Sie einen neuen.

1. Wählen Sie in Ihrer Benutzerpool-Konfiguration das Menü **App-Clients** aus. Wählen Sie einen App-Client oder erstellen Sie einen neuen.

1. Wählen Sie unter **App-Client-Informationen** die Option **Bearbeiten** aus.

1. Wählen Sie unter **App-Client-Flows** die Authentifizierungsabläufe aus, die Sie unterstützen möchten.

**So konfigurieren Sie einen App-Client für Authentifizierungsabläufe (API/SDK)**  
Um verfügbare Authentifizierungsabläufe für einen App-Client mit der Amazon Cognito Cognito-API zu konfigurieren, legen Sie den Wert von `ExplicitAuthFlows` in einer [CreateUserPoolClient[UpdateUserPoolClient](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPoolClient.html#CognitoUserPools-UpdateUserPoolClient-request-ExplicitAuthFlows)](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPoolClient.html#CognitoUserPools-CreateUserPoolClient-request-ExplicitAuthFlows)OR-Anfrage fest. Im Folgenden finden Sie ein Beispiel, das einem Client ein sicheres Remote-Passwort (SRP) und eine wahlbasierte Authentifizierung bereitstellt.

```
"ExplicitAuthFlows": [ 
   "ALLOW_USER_AUTH",
   "ALLOW_USER_SRP_AUTH
]
```

Wenn Sie vom App-Client unterstützte Flows konfigurieren, können Sie die folgenden Optionen und API-Werte angeben.


**Unterstützung für App-Client-Flows**  

| Authentifizierungsfluss | Kompatibilität | Konsole | API  | 
| --- | --- | --- | --- | 
| [Wahlbasierte Authentifizierung](authentication-flows-selection-sdk.md#authentication-flows-selection-choice) | Serverseitig, clientseitig | Wählen Sie bei der Anmeldung einen Authentifizierungstyp aus | ALLOW\$1USER\$1AUTH | 
| [Melden Sie sich mit dauerhaften Passwörtern an](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-password) | Clientseitig | Melden Sie sich mit Benutzername und Passwort an | ALLOW\$1USER\$1PASSWORD\$1AUTH | 
| [Melden Sie sich mit dauerhaften Passwörtern und sicherer Payload an](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-srp) | Serverseitig, clientseitig | Melden Sie sich mit einem sicheren Remote-Passwort (SRP) an | ALLOW\$1USER\$1SRP\$1AUTH | 
| [Tokens aktualisieren](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-refresh) | Serverseitig, clientseitig | Rufen Sie neue Benutzertoken aus vorhandenen authentifizierten Sitzungen ab | ALLOW\$1REFRESH\$1TOKEN\$1AUTH | 
| [Serverseitige Authentifizierung](authentication-flows-public-server-side.md#amazon-cognito-user-pools-server-side-authentication-flow) | Serverseitig | Melden Sie sich mit serverseitigen Administratoranmeldedaten an | ALLOW\$1ADMIN\$1USER\$1PASSWORD\$1AUTH | 
| [Benutzerdefinierte Authentifizierung](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-custom) | Serverseitige und clientseitige maßgeschneiderte Anwendungen. Nicht kompatibel mit verwalteter Anmeldung. | Melden Sie sich mit benutzerdefinierten Authentifizierungsabläufen von Lambda-Triggern an | ALLOW\$1CUSTOM\$1AUTH | 

------
#### [ Implement flows in your application ]

Durch die verwaltete Anmeldung werden Ihre konfigurierten Authentifizierungsoptionen automatisch auf Ihren Anmeldeseiten verfügbar gemacht. Starten Sie in maßgeschneiderten Anwendungen die Authentifizierung mit einer Deklaration des ursprünglichen Ablaufs.
+ Um aus einer Liste von Flow-Optionen für einen Benutzer auszuwählen, deklarieren Sie die [wahlbasierte Authentifizierung](authentication-flows-selection-sdk.md#authentication-flows-selection-choice) mit dem Flow. `USER_AUTH` [Für diesen Flow stehen Authentifizierungsmethoden zur Verfügung, die in clientbasierten Authentifizierungsabläufen nicht verfügbar sind, z. B. Authentifizierung mit [Passkey und passwortloser](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-passkey) Authentifizierung.](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-passwordless)
+ Um Ihren Authentifizierungsablauf im Voraus auszuwählen, deklarieren Sie die [clientbasierte Authentifizierung](authentication-flows-selection-sdk.md#authentication-flows-selection-client) mit einem beliebigen anderen Ablauf, der in Ihrem App-Client verfügbar ist.

Wenn Sie Benutzer anmelden, muss der Text Ihrer [InitiateAuth[AdminInitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html#CognitoUserPools-AdminInitiateAuth-request-AuthFlow)](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html#CognitoUserPools-InitiateAuth-request-AuthFlow)PR-Anforderung einen `AuthFlow` Parameter enthalten.

Wahlbasierte Authentifizierung:

```
"AuthFlow": "USER_AUTH"
```

Client-basierte Authentifizierung mit SRP:

```
"AuthFlow": "USER_SRP_AUTH"
```

------

## Wissenswertes zur Authentifizierung mit Benutzerpools
<a name="authentication-flow-things-to-know"></a>

Berücksichtigen Sie bei der Gestaltung Ihres Authentifizierungsmodells mit Amazon Cognito Cognito-Benutzerpools die folgenden Informationen.

**Die Authentifizierung erfolgt in der verwalteten Anmeldung und in der gehosteten Benutzeroberfläche**  
Die [verwaltete Anmeldung](cognito-user-pools-managed-login.md) bietet mehr Authentifizierungsoptionen als die klassische gehostete Benutzeroberfläche. Beispielsweise können Benutzer die kennwortlose Authentifizierung und die Authentifizierung mit dem Hauptschlüssel nur bei verwalteter Anmeldung durchführen.

**Benutzerdefinierte Authentifizierungsabläufe sind nur bei der SDK-Authentifizierung verfügbar AWS **  
Sie können keine *benutzerdefinierten Authentifizierungsabläufe* oder eine [benutzerdefinierte Authentifizierung mit Lambda-Triggern](user-pool-lambda-challenge.md), mit verwalteter Anmeldung oder der klassischen gehosteten Benutzeroberfläche durchführen. Die benutzerdefinierte Authentifizierung ist in der [Authentifizierung mit AWS SDKs](authentication-flows-selection-sdk.md) verfügbar.

**Verwaltete Anmeldung für die Anmeldung mit einem externen Identitätsanbieter (IdP)**  
Sie können Benutzer nicht über die [ IdPs[Drittanbieter-Authentifizierung](authentication-flows-selection-sdk.md)](cognito-user-pools-identity-federation.md) mit anmelden. AWS SDKs Sie müssen die verwaltete Anmeldung oder die klassische gehostete Benutzeroberfläche implementieren IdPs, zu der Sie weiterleiten und das resultierende Authentifizierungsobjekt dann mit OIDC-Bibliotheken in Ihrer Anwendung verarbeiten. Weitere Informationen zur verwalteten Anmeldung finden Sie unter. [Vom Benutzerpool verwaltete Anmeldung](cognito-user-pools-managed-login.md)

**Auswirkung der kennwortlosen Authentifizierung auf andere Benutzerfunktionen**  
Die Aktivierung der kennwortlosen Anmeldung mit [Einmalkennwörtern](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-passwordless) oder [Hauptschlüsseln](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-passkey) in Ihrem Benutzerpool und App-Client wirkt sich auf die Benutzererstellung und Migration aus. Wenn die passwortlose Anmeldung aktiv ist:  

1. Administratoren können Benutzer ohne Passwörter erstellen. Die Standardvorlage für Einladungsnachrichten wurde dahingehend geändert, dass sie den Platzhalter für das `{###}` Passwort nicht mehr enthält. Weitere Informationen finden Sie unter [Erstellen von Benutzerkonten als Administrator](how-to-create-user-accounts.md).

1. Bei SDK-basierten [SignUp](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SignUp.html)Vorgängen 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 die kennwortlose Authentifizierung zulässig ist. Weitere Informationen finden Sie unter [Registrieren und Bestätigen von Benutzerkonten](signing-up-users-in-your-app.md).

1. Aus einer CSV-Datei importierte Benutzer 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](cognito-user-pools-using-import-tool.md).

1. Bei der kennwortlosen Authentifizierung wird der Lambda-Trigger für die [Benutzermigration](user-pool-lambda-migrate-user.md) nicht aufgerufen.

1. Benutzer, die sich mit einem Einmalpasswort (OTP) anmelden, können ihrer Sitzung keinen [MFA-Faktor (Multi-Factor Authentication)](user-pool-settings-mfa.md) hinzufügen. Hauptschlüssel mit Benutzerverifizierung können die MFA-Anforderungen erfüllen, wenn sie mit konfiguriert sind. `MULTI_FACTOR_WITH_USER_VERIFICATION`

**Die Partei, auf die der Passkey angewiesen ist, URLs darf nicht auf der Liste der öffentlichen Suffixe stehen**  
Sie können Domainnamen, die Sie besitzen`www.example.com`, z. B. als RP-ID (Relying Party) in Ihrer Hauptschlüsselkonfiguration verwenden. Diese Konfiguration soll maßgeschneiderte Anwendungen unterstützen, die auf Domänen ausgeführt werden, deren Eigentümer Sie sind. Die [öffentliche Suffixliste](https://publicsuffix.org/) (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.

**Topics**
+ [Dauer der Authentifizierungssitzung](#authentication-flow-session-duration)
+ [Sperrverhalten bei fehlgeschlagenen Anmeldeversuchen](#authentication-flow-lockout-behavior)

### Dauer der Authentifizierungssitzung
<a name="authentication-flow-session-duration"></a>

Abhängig von den Funktionen Ihres Benutzerpools können Sie am Ende auf mehrere Herausforderungen reagieren`InitiateAuth`, `RespondToAuthChallenge` bevor Ihre App Token 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 Multi-Faktor-Authentifizierung auf 3 Minuten und für Codes zum Zurücksetzen von Passwörtern auf 8 Minuten festgelegt.

------
#### [ Amazon Cognito console ]

**So konfigurieren Sie die Dauer der Authentifizierungsablaufsitzung des App-Clients (AWS-Managementkonsole)**

1. Wählen Sie auf der Registerkarte **App integration** (App-Integration) in Ihrem Benutzerpool den Namen Ihres App-Clients aus dem Container **App clients and analytics** (App-Clients und Analytik) aus.

1. Wählen Sie **Bearbeiten** im Container **App-Client-Informationen** aus.

1. Ändern Sie den Wert für **Sitzungsdauer des Authentifizierungsflusses** auf die gewünschte Gültigkeitsdauer in Minuten für SMS- und E-Mail-MFA-Codes. Damit ändert sich auch die Zeit, die einem Benutzer zur Verfügung steht, um eine Authentifizierungsabfrage in Ihrem App-Client abzuschließen.

1. Wählen Sie **Änderungen speichern ** aus.

------
#### [ User pools API ]

**So konfigurieren Sie die Dauer der Authentifizierungsablaufsitzung (Amazon-Cognito-API)**

1. Bereiten Sie eine `UpdateUserPoolClient`-Anfrage mit Ihren vorhandenen Benutzerpool-Einstellungen aufgrund einer `DescribeUserPoolClient`-Anfrage vor. Ihre `UpdateUserPoolClient`-Anfrage muss alle vorhandenen App-Client-Eigenschaften enthalten.

1. Ändern Sie den `AuthSessionValidity`-Wert auf die Gültigkeitsdauer (in Minuten), die Sie für SMS-MFA-Codes wünschen. Damit ändert sich auch die Zeit, die einem Benutzer zur Verfügung steht, um eine Authentifizierungsabfrage in Ihrem App-Client abzuschließen.

------

Weitere Informationen zu App-Clients finden Sie unter [Anwendungsspezifische Einstellungen mit App-Clients](user-pool-settings-client-apps.md).

### Sperrverhalten bei fehlgeschlagenen Anmeldeversuchen
<a name="authentication-flow-lockout-behavior"></a>

Nach fünf fehlgeschlagenen Anmeldeversuchen mit einem Benutzerkennwort, unabhängig davon, ob diese mit nicht authentifizierten oder IAM-autorisierten API-Vorgängen angefordert wurden, 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
<a name="amazon-cognito-user-pools-authentication-flow"></a>

Das folgende Diagramm und die folgende step-by-step 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.

![\[Ein Flussdiagramm, das eine Anwendung zeigt, die einen Benutzer zur Eingabe auffordert und ihn mit einem AWS SDK anmeldet.\]](http://docs.aws.amazon.com/de_de/cognito/latest/developerguide/images/authentication-api-userauth.png)


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.

1. **Anmeldeaufforderung**: Ihre Anwendung zeigt einen Startbildschirm mit einer *Anmeldeschaltfläche*.

1. **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.

1. **Anforderungsoptionen**: Ihre Anwendung fordert die Anmeldeoptionen des Benutzers mit einer `InitiateAuth` API-Anfrage im `USER_AUTH` Flow an, in der die verfügbaren Anmeldemethoden für den Benutzer angefordert werden.

1. **Anmeldeoptionen senden**: Amazon Cognito antwortet mit `PASSWORD``EMAIL_OTP`, und. `WEB_AUTHN` Die Antwort enthält eine Sitzungs-ID, die Sie in der nächsten Antwort erneut abspielen können.

1. **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.

1. **Wählen Sie option/Enter Anmeldeinformationen**: Der Benutzer gibt seinen Benutzernamen und sein Passwort ein.

1. **Authentifizierung einleiten**: Ihre Anwendung stellt die Anmeldeinformationen des Benutzers mit einer `RespondToAuthChallenge` API-Anfrage zur Verfügung, die die Anmeldung mit Benutzername/Passwort bestätigt und den Benutzernamen und das Passwort bereitstellt.

1. **Anmeldeinformationen überprüfen**: Amazon Cognito bestätigt die Anmeldeinformationen des Benutzers.

1. **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_MFA` Herausforderung zurück.

1. **Aufforderung zur Aufforderung**: In Ihrer Anwendung wird ein Formular angezeigt, in dem ein zeitbasiertes Einmalkennwort (TOTP) von der Authenticator-App des Benutzers angefordert wird.

1. **Herausforderung beantworten**: Der Benutzer reicht das TOTP ein.

1. **Auf die Herausforderung antworten**: In einer anderen `RespondToAuthChallenge` Anfrage stellt Ihre Anwendung das TOTP des Benutzers bereit.

1. **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.

1. **Token ausgeben**: Amazon Cognito gibt ID-, Zugriffs- und Aktualisierungs-JSON-Webtoken (JWTs) zurück. Die Erstauthentifizierung des Benutzers ist abgeschlossen.

1. **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.

1. **Autorisierte Inhalte rendern**: Ihre Anwendung bestimmt anhand ihrer Identität und Rollen den Zugriff des Benutzers auf Ressourcen und stellt Anwendungsinhalte bereit.

1. **Zugriff auf Inhalte**: Der Benutzer ist angemeldet und beginnt, die Anwendung zu verwenden.

1. **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.

1. **Aktualisierungstoken**: Ihre Anwendung stellt eine `InitiateAuth` Anfrage mit dem gespeicherten Aktualisierungstoken des Benutzers.

1. **Token ausgeben**: Amazon Cognito gibt eine neue ID und einen neuen Zugriff JWTs zurück. Die Sitzung des Benutzers wird ohne zusätzliche Aufforderung zur Eingabe von Anmeldeinformationen sicher aktualisiert.

Sie können [AWS Lambda Trigger](cognito-user-pools-working-with-lambda-triggers.md) 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](cognito-user-pools-using-import-tool.md) verwenden, um die Benutzermigration zu ermöglichen, ohne dass Ihre Benutzer ihre Passwörter zurücksetzen müssen.

# Konfigurieren Sie Authentifizierungsmethoden für die verwaltete Anmeldung
<a name="authentication-flows-selection-managedlogin"></a>

Sie können [verwaltete Anmeldeseiten](cognito-user-pools-managed-login.md), ein Web-Frontend für die Benutzerpoolauthentifizierung, aufrufen, wenn Sie möchten, dass sich Benutzer anmelden, abmelden oder ihr Passwort zurücksetzen. In diesem Modell importiert Ihre Anwendung OIDC-Bibliotheken, um browserbasierte Authentifizierungsversuche mit vom Benutzerpool verwalteten Anmeldeseiten zu verarbeiten. Die Authentifizierungsformen, die Ihren Benutzern zur Verfügung stehen, hängen von der Konfiguration Ihres Benutzerpools und Ihres App-Clients ab. Implementieren Sie den `ALLOW_USER_AUTH` Ablauf in Ihrem App-Client, und Amazon Cognito fordert Benutzer auf, eine Anmeldemethode aus den verfügbaren Optionen auszuwählen. Implementieren `ALLOW_USER_PASSWORD_AUTH` und weisen Sie einen SAML-Anbieter zu, und Ihre Anmeldeseiten bieten Benutzern die Möglichkeit, ihren Benutzernamen und ihr Passwort einzugeben oder sich mit ihrem IdP zu verbinden.

Mit der Amazon Cognito Cognito-Benutzerpools-Konsole können Sie mit der Einrichtung der verwalteten Anmeldeauthentifizierung für Ihre Anwendung beginnen. Wenn Sie einen neuen Benutzerpool erstellen, geben Sie die Plattform an, für die Sie entwickeln. In der Konsole finden Sie Beispiele für die Implementierung von OIDC und OAuth Bibliotheken mit Startcode zur Implementierung von Anmelde- und Abmeldeabläufen. Sie können eine verwaltete Anmeldung mit vielen OIDC-Implementierungen von Relying-Partys erstellen. Wir empfehlen Ihnen, wenn möglich mit [zertifizierten OIDC-Rely-Party-Bibliotheken](https://openid.net/developers/certified-openid-connect-implementations/) zu arbeiten. Weitere Informationen finden Sie unter [Erste Schritte mit Benutzerpools](getting-started-user-pools.md).

In der Regel überprüfen OIDC-Relying Party Libraries regelmäßig den `.well-known/openid-configuration` Endpunkt Ihres Benutzerpools, um den Emittenten URLs wie den Token-Endpunkt und den Autorisierungsendpunkt zu ermitteln. Es hat sich bewährt, dieses automatische Erkennungsverhalten dort zu implementieren, wo Sie die Wahl haben. Die manuelle Konfiguration von Emittenten-Endpunkten kann zu Fehlern führen. Sie könnten beispielsweise Ihre Benutzerpool-Domäne ändern. Der Pfad zu `openid-configuration` ist nicht mit Ihrer Benutzerpool-Domain verknüpft, sodass Anwendungen, die Dienstendpunkte automatisch erkennen, Ihre Domainänderung automatisch übernehmen.

## Benutzerpool-Einstellungen für die verwaltete Anmeldung
<a name="authentication-flows-selection-managedlogin-settings"></a>

Möglicherweise möchten Sie die Anmeldung bei mehreren Anbietern für Ihre Anwendung zulassen, oder Sie möchten Amazon Cognito als unabhängiges Benutzerverzeichnis verwenden. Möglicherweise möchten Sie auch Benutzerattribute sammeln, MFA einrichten und danach fragen oder E-Mail-Adressen als Benutzernamen benötigen. Sie können die Felder in der verwalteten Anmeldung und in der gehosteten Benutzeroberfläche nicht direkt bearbeiten. Stattdessen legt die Konfiguration Ihres Benutzerpools automatisch fest, wie die verwalteten Login-Authentifizierungsabläufe gehandhabt werden.

Die folgenden Konfigurationselemente für den Benutzerpool bestimmen die Authentifizierungsmethoden, die Amazon Cognito Benutzern in der verwalteten Anmeldung und in der gehosteten Benutzeroberfläche anbietet.

------
#### [ User pool options (Sign-in menu) ]

Die folgenden Optionen befinden sich im **Anmeldemenü** eines Benutzerpools in der Amazon Cognito Cognito-Konsole.

**Anmeldeoptionen für den Cognito-Benutzerpool**  
Hat Optionen für Benutzernamen. Ihre verwalteten Anmelde- und gehosteten Benutzeroberflächenseiten akzeptieren nur Benutzernamen in den von Ihnen ausgewählten Formaten. Wenn Sie beispielsweise einen Benutzerpool mit **E-Mail** als einziger Anmeldeoption einrichten, akzeptieren Ihre verwalteten Anmeldeseiten nur Benutzernamen in einem E-Mail-Format.

**Erforderliche Attribute**  
Wenn Sie in Ihrem Benutzerpool ein Attribut nach Bedarf festlegen, fordert die verwaltete Anmeldung die Benutzer bei der Registrierung zur Eingabe eines Werts für dieses Attribut auf.

**Optionen für die wahlbasierte Anmeldung**  
Enthält Einstellungen für Authentifizierungsmethoden in[Wahlbasierte Authentifizierung](authentication-flows-selection-sdk.md#authentication-flows-selection-choice). [Hier können Sie Authentifizierungsmethoden wie [Passkey und passwortlos](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-passkey) ein- oder ausschalten.](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-passwordless) **Diese Methoden sind nur für Benutzerpools mit [verwalteten Anmeldedomänen](managed-login-branding.md) und [Funktionsplänen](cognito-sign-in-feature-plans.md) ab der Lite-Stufe verfügbar.**

**Multifaktor-Authentifizierung**  
Die verwaltete Anmeldung und die gehostete Benutzeroberfläche übernehmen die Registrierungs- und Authentifizierungsvorgänge für [MFA](user-pool-settings-mfa.md). Wenn MFA in Ihrem Benutzerpool erforderlich ist, werden Benutzer auf Ihren Anmeldeseiten automatisch aufgefordert, ihren zusätzlichen Faktor einzurichten. Außerdem fordern sie Benutzer mit einer MFA-Konfiguration auf, die Authentifizierung mit einem MFA-Code abzuschließen. Wenn MFA in Ihrem Benutzerpool deaktiviert oder optional ist, werden Sie auf Ihren Anmeldeseiten nicht aufgefordert, MFA einzurichten.

**Wiederherstellung des Benutzerkontos**  
Die [Self-Service-Kontowiederherstellungseinstellung]() Ihres Benutzerpools bestimmt, ob auf Ihren Anmeldeseiten ein Link angezeigt wird, über den Benutzer ihr Passwort zurücksetzen können.

------
#### [ User pool options (Domain menu) ]

Die folgenden Optionen befinden sich im **Domain-Menü** eines Benutzerpools in der Amazon Cognito Cognito-Konsole.

**Domain**  
Ihre Wahl einer Benutzerpool-Domain legt den Pfad für den Link fest, den Benutzer öffnen, wenn Sie ihre Browser zur Authentifizierung aufrufen.

**Version mit Markenkennzeichnung**  
Ihre Wahl einer Branding-Version bestimmt, ob in Ihrer Benutzerpool-Domain die verwaltete Anmeldung oder die gehostete Benutzeroberfläche angezeigt wird.

------
#### [ User pool options (Social and external providers menu) ]

Die folgende Option befindet sich im Menü **Soziale Netzwerke und externe Anbieter** eines Benutzerpools in der Amazon Cognito Cognito-Konsole.

**Anbieter**  
Die Identitätsanbieter (IdPs), die Sie Ihrem Benutzerpool hinzufügen, können für jeden App-Client im Benutzerpool aktiv oder inaktiv bleiben.

------
#### [ App client options ]

Die folgenden Optionen befinden sich im **App-Clients-Menü** eines Benutzerpools in der Amazon Cognito Cognito-Konsole. Um diese Optionen zu überprüfen, wählen Sie einen App-Client aus der Liste aus.

**Kurzanleitung zur Einrichtung**  
Die Kurzanleitung zur Einrichtung enthält Codebeispiele für eine Vielzahl von Entwicklerumgebungen. Sie enthalten die Bibliotheken, die für die Integration der verwalteten Anmeldeauthentifizierung in Ihre Anwendung erforderlich sind.

**Informationen zum App-Client**  
Bearbeiten Sie diese Konfiguration, um sie der Anwendung IdPs zuzuweisen, die durch den aktuellen App-Client repräsentiert wird. Auf den verwalteten Anmeldeseiten zeigt Amazon Cognito Auswahlmöglichkeiten für Benutzer an. Diese Auswahlmöglichkeiten werden anhand der zugewiesenen Methoden und des IdP bestimmt. Wenn Sie beispielsweise einen SAML 2.0-IdP mit einem Namen `MySAML` und einem lokalen Benutzerpool-Login zuweisen, werden auf Ihren verwalteten Anmeldeseiten Aufforderungen zur Authentifizierungsmethode und eine Schaltfläche für angezeigt. `MySAML`

**Einstellungen für die Authentifizierung**  
Bearbeiten Sie diese Konfiguration, um Authentifizierungsmethoden für Ihre Anwendung festzulegen. Auf den verwalteten Anmeldeseiten zeigt Amazon Cognito Auswahlmöglichkeiten für Benutzer an. Diese Auswahlmöglichkeiten hängen von der Verfügbarkeit des Benutzerpools als IdP und von den Methoden ab, die Sie zuweisen. Wenn Sie beispielsweise eine wahlbasierte `ALLOW_USER_AUTH` Authentifizierung zuweisen, werden auf Ihren verwalteten Anmeldeseiten verfügbare Optionen wie die Eingabe einer E-Mail-Adresse und die Anmeldung mit einem Hauptschlüssel angezeigt. Auf verwalteten Anmeldeseiten werden auch Schaltflächen für die zugewiesenen Benutzer angezeigt. IdPs

**Anmeldeseiten**  
Legen Sie mit den auf dieser Registerkarte verfügbaren Optionen den visuellen Effekt Ihrer verwalteten Anmeldeseiten oder der gehosteten benutzerinteraktiven Benutzeroberflächen fest. Weitere Informationen finden Sie unter [Branding auf verwaltete Anmeldeseiten anwenden](managed-login-branding.md).

------

# Verwalten Sie Authentifizierungsmethoden in AWS SDKs
<a name="authentication-flows-selection-sdk"></a>

*Benutzer in Amazon Cognito Cognito-Benutzerpools können sich mit einer Vielzahl von Optionen oder Faktoren für die Erstanmeldung anmelden.* Bei einigen Faktoren können Benutzer anschließend eine Multi-Faktor-Authentifizierung (MFA) durchführen. Zu diesen ersten Faktoren gehören Benutzername und Passwort, Einmalpasswort, Hauptschlüssel und benutzerdefinierte Authentifizierung. Weitere Informationen finden Sie unter [Authentifizierungsabläufe](amazon-cognito-user-pools-authentication-flow-methods.md). Wenn Ihre Anwendung über integrierte Benutzeroberflächenkomponenten verfügt und ein AWS SDK-Modul importiert, müssen Sie eine Anwendungslogik für die Authentifizierung erstellen. Sie müssen eine von zwei Hauptmethoden und aus dieser Methode die Authentifizierungsmechanismen auswählen, die Sie implementieren möchten.

Sie können eine *clientbasierte Authentifizierung* implementieren, bei der Ihre Anwendung oder Ihr Client den Authentifizierungstyp im Voraus deklariert. Ihre andere Option ist die *wahlbasierte Authentifizierung*, bei der Ihre App einen Benutzernamen erfasst und die verfügbaren Authentifizierungstypen für Benutzer anfordert. Sie können diese Modelle je nach Ihren Anforderungen zusammen in derselben Anwendung oder aufgeteilt auf mehrere App-Clients implementieren. Jede Methode verfügt über einzigartige Funktionen, z. B. benutzerdefinierte Authentifizierung bei clientbasierter Authentifizierung und kennwortlose Authentifizierung bei wahlbasierter Authentifizierung.

In maßgeschneiderten Anwendungen, die die Authentifizierung mithilfe der AWS SDK-Implementierung der Benutzerpool-API durchführen, müssen Sie Ihre API-Anfragen so strukturieren, dass sie der Benutzerpoolkonfiguration, der App-Client-Konfiguration und den clientseitigen Einstellungen entsprechen. Eine `InitiateAuth` Sitzung, die mit einem of beginnt, beginnt mit `AuthFlow` der wahlbasierten Authentifizierung`USER_AUTH`. Amazon Cognito antwortet auf Ihre API mit der Aufforderung, entweder eine bevorzugte Authentifizierungsmethode oder eine Liste von Auswahlmöglichkeiten auszuwählen. Eine Sitzung, die mit oder beginnt, `CUSTOM_AUTH` geht direkt `AuthFlow` zur benutzerdefinierten Authentifizierung mit Lambda-Triggern über.

Einige Authentifizierungsmethoden sind auf einen der beiden Flow-Typen festgelegt, und einige Methoden sind in beiden verfügbar.

**Topics**
+ [Wahlbasierte Authentifizierung](#authentication-flows-selection-choice)
+ [Client-basierte Authentifizierung](#authentication-flows-selection-client)

## Wahlbasierte Authentifizierung
<a name="authentication-flows-selection-choice"></a>

Ihre Anwendung kann bei der wahlbasierten Authentifizierung die folgenden Authentifizierungsmethoden anfordern. Deklarieren Sie diese Optionen im `PREFERRED_CHALLENGE` Parameter von [InitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html#CognitoUserPools-InitiateAuth-request-AuthParameters)oder [AdminInitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html#CognitoUserPools-AdminInitiateAuth-request-AuthParameters)oder im `ChallengeName` Parameter von [RespondToAuthChallenge](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_RespondToAuthChallenge.html#CognitoUserPools-RespondToAuthChallenge-request-ChallengeName)oder. [AdminRespondToAuthChallenge](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminRespondToAuthChallenge.html#CognitoUserPools-AdminRespondToAuthChallenge-request-ChallengeName)

1. `EMAIL_OTP` und `SMS_OTP`

   [Passwortlose Anmeldung mit Einmalpasswörtern](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-passwordless)

1. `WEB_AUTHN`

   [Passwortlose Anmeldung mit Passkeys WebAuthn](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-passkey)

1. `PASSWORD`

   [Melden Sie sich mit dauerhaften Passwörtern an](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-password)

   [Melden Sie sich mit dauerhaften Passwörtern und sicherer Payload an](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-srp)

   [MFA nach der Anmeldung](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-mfa)

Informationen zu diesen Optionen in ihrem API-Kontext finden Sie `ChallengeName` unter [RespondToAuthChallenge](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_RespondToAuthChallenge.html#CognitoUserPools-RespondToAuthChallenge-request-ChallengeName).

Bei der wahlbasierten Anmeldung wird als Antwort auf Ihre erste Anfrage eine Aufforderung ausgegeben. Bei dieser Aufforderung wird entweder überprüft, ob eine angeforderte Option verfügbar ist, oder es wird eine Liste der verfügbaren Optionen bereitgestellt. Ihre Anwendung kann diese Optionen Benutzern anzeigen, die dann Anmeldeinformationen für ihre bevorzugte Anmeldemethode eingeben und mit der Authentifizierung bei Challenge-Antworten fortfahren.

In Ihrem Authentifizierungsablauf stehen Ihnen die folgenden auswahlbasierten Optionen zur Verfügung. Alle Anfragen dieses Typs erfordern, dass Ihre App zuerst einen Benutzernamen erfasst oder ihn aus einem Cache abruft.

1. `USERNAME`Nur Optionen mit `AuthParameters` oder anfordern. Amazon Cognito gibt eine `SELECT_CHALLENGE` Herausforderung zurück. Von dort aus kann Ihre Anwendung den Benutzer auffordern, eine Herausforderung auszuwählen und diese Antwort an Ihren Benutzerpool zurückzugeben.

1. Fordere eine bevorzugte Herausforderung mit `AuthParameters` von `PREFERRED_CHALLENGE` und den Parametern deiner bevorzugten Herausforderung an, falls vorhanden. Wenn Sie beispielsweise ein `PREFERRED_CHALLENGE` of anfordern`PASSWORD_SRP`, müssen Sie auch angeben`SRP_A`. Wenn Ihr Benutzer, Ihr Benutzerpool und Ihr App-Client alle für die bevorzugte Herausforderung konfiguriert sind, reagiert Amazon Cognito mit dem nächsten Schritt in dieser Herausforderung, z. B. `PASSWORD_VERIFIER` im `PASSWORD_SRP` Flow oder [CodeDeliveryDetails](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CodeDeliveryDetailsType.html)in den `EMAIL_OTP` `SMS_OTP` and-Flows. Wenn die bevorzugte Herausforderung nicht verfügbar ist, antwortet Amazon Cognito mit `SELECT_CHALLENGE` einer Liste verfügbarer Herausforderungen.

1. Melden Sie die Benutzer zuerst an und fordern Sie dann ihre bevorzugten Authentifizierungsoptionen an. Eine [GetUserAuthFactors](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GetUserAuthFactors.html)Anfrage mit dem Zugriffstoken eines angemeldeten Benutzers gibt seine verfügbaren auswahlbasierten Authentifizierungsfaktoren und seine MFA-Einstellungen zurück. Mit dieser Option kann sich ein Benutzer zuerst mit Benutzername und Passwort anmelden und dann eine andere Form der Authentifizierung aktivieren. Sie können diesen Vorgang auch verwenden, um zusätzliche Optionen für einen Benutzer zu überprüfen, der sich mit einer bevorzugten Herausforderung angemeldet hat.

Um [Ihren App-Client für die wahlbasierte Authentifizierung zu konfigurieren](authentication.md#authentication-implement), fügen Sie weitere Informationen `ALLOW_USER_AUTH` zu den zulässigen Authentifizierungsabläufen hinzu. Sie müssen auch die auswahlbasierten Faktoren auswählen, die Sie in Ihrer Benutzerpool-Konfiguration zulassen möchten. Der folgende Prozess veranschaulicht, wie Sie wahlbasierte Authentifizierungsfaktoren auswählen.

------
#### [ Amazon Cognito console ]

**So konfigurieren Sie wahlbasierte Authentifizierungsoptionen in einem Benutzerpool**

1. Melden Sie sich an AWS und navigieren Sie zur [Amazon Cognito Cognito-Benutzerpools-Konsole](https://console.aws.amazon.com/cognito/v2/idp). Wählen Sie einen Benutzerpool oder erstellen Sie einen neuen.

1. Wählen Sie in Ihrer Benutzerpool-Konfiguration das **Anmelde-Menü** aus. **Suchen Sie nach **Optionen für die wahlbasierte Anmeldung und wählen** Sie Bearbeiten.**

1. Die Option **Passwort** ist immer verfügbar. Dies beinhaltet die `PASSWORD_SRP` Flüsse `PASSWORD` und. Wählen Sie die **zusätzlichen Optionen** aus, die Sie zu den Optionen Ihrer Benutzer hinzufügen möchten. Sie können **Hauptschlüssel für`WEB_AUTHN`, Einmalpasswort** **für `EMAIL_OTP` E-Mail-Nachrichten und Einmalkennwort** **für `SMS_OTP` SMS-Nachrichten** hinzufügen.

1. Wählen Sie **Änderungen speichern ** aus.

------
#### [ API/SDK ]

Im folgenden Teil [CreateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html)- oder [UpdateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPool.html)Anforderungstext werden alle verfügbaren Optionen für die wahlbasierte Authentifizierung konfiguriert.

```
"Policies": {
    "SignInPolicy": {
        "AllowedFirstAuthFactors": [
            "PASSWORD",
            "WEB_AUTHN",
            "EMAIL_OTP",
            "SMS_OTP"
        ]
    }
},
```

------

## Client-basierte Authentifizierung
<a name="authentication-flows-selection-client"></a>

Die clientbasierte Authentifizierung unterstützt die folgenden Authentifizierungsabläufe. Deklarieren Sie diese Optionen im `AuthFlow` Parameter von [InitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html#CognitoUserPools-InitiateAuth-request-AuthFlow)oder [AdminInitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html#CognitoUserPools-AdminInitiateAuth-request-AuthFlow).

1. `USER_PASSWORD_AUTH` und `ADMIN_USER_PASSWORD_AUTH`

   [Melden Sie sich mit dauerhaften Passwörtern an](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-password)

   [MFA nach der Anmeldung](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-mfa)

   Dieser Authentifizierungsablauf entspricht `PASSWORD` der wahlbasierten Authentifizierung.

1. `USER_SRP_AUTH`

   [Melden Sie sich mit dauerhaften Passwörtern und sicherer Payload an](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-srp)

   [MFA nach der Anmeldung](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-mfa)

   Dieser Authentifizierungsablauf entspricht der wahlbasierten `PASSWORD_SRP` Authentifizierung.

1. `REFRESH_TOKEN_AUTH`

   [Tokens aktualisieren](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-refresh)

   Dieser Authentifizierungsablauf ist nur bei der clientbasierten Authentifizierung verfügbar.

1. `CUSTOM_AUTH`

   [Benutzerdefinierte Authentifizierung](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-custom)

   Dieser Authentifizierungsablauf ist nur bei der clientbasierten Authentifizierung verfügbar.

Bei der clientbasierten Authentifizierung geht Amazon Cognito davon aus, dass Sie festgelegt haben, wie sich Ihr Benutzer authentifizieren möchte, bevor er mit den Authentifizierungsabläufen beginnt. Die Logik zur Bestimmung des Anmeldefaktors, den ein Benutzer angeben möchte, muss anhand von Standardeinstellungen oder benutzerdefinierten Eingabeaufforderungen festgelegt und dann in der ersten Anfrage an Ihren Benutzerpool deklariert werden. Die `InitiateAuth` Anfrage deklariert beispielsweise eine Anmeldung`AuthFlow`, die direkt einer der aufgelisteten Optionen entspricht. `USER_SRP_AUTH` Mit dieser Deklaration enthält die Anforderung auch die Parameter für den Beginn der Authentifizierung, z. B. `USERNAME``SECRET_HASH`, und. `SRP_A` Amazon Cognito könnte auf diese Anfrage mit zusätzlichen Herausforderungen reagieren, z. B. `PASSWORD_VERIFIER` für SRP oder `SOFTWARE_TOKEN_MFA` für die Kennwortanmeldung mit TOTP MFA.

Um [Ihren App-Client für die clientbasierte Authentifizierung zu konfigurieren](authentication.md#authentication-implement), fügen Sie alle anderen Authentifizierungsabläufe als `ALLOW_USER_AUTH` die zulässigen Authentifizierungsabläufe hinzu. Beispiele sind `ALLOW_USER_PASSWORD_AUTH``ALLOW_CUSTOM_AUTH`,`ALLOW_REFRESH_TOKEN_AUTH`. Um clientbasierte Authentifizierungsabläufe zuzulassen, ist keine zusätzliche Benutzerpoolkonfiguration erforderlich.

# Authentifizierungsabläufe
<a name="amazon-cognito-user-pools-authentication-flow-methods"></a>

Der Prozess der Authentifizierung mit Amazon Cognito Cognito-Benutzerpools lässt sich am besten als ein *Ablauf* beschreiben, bei dem Benutzer eine erste Wahl treffen, Anmeldeinformationen einreichen und auf zusätzliche Herausforderungen reagieren. Wenn Sie die verwaltete Anmeldeauthentifizierung in Ihrer Anwendung implementieren, verwaltet Amazon Cognito den Ablauf dieser Eingabeaufforderungen und Herausforderungen. Wenn Sie Flows mit einem AWS SDK in Ihrem Anwendungs-Backend implementieren, müssen Sie die Logik der Anfragen erstellen, Benutzer zur Eingabe auffordern und auf Herausforderungen reagieren.

Als Anwendungsadministrator bestimmen Ihre Benutzereigenschaften, Sicherheitsanforderungen und Ihr Autorisierungsmodell, wie Sie Benutzern die Anmeldung gestatten möchten. Stellen Sie sich die folgenden Fragen.
+ Möchte ich Benutzern erlauben, sich mit Anmeldeinformationen von [anderen Identitätsanbietern anzumelden (IdPs)](#amazon-cognito-user-pools-authentication-flow-methods-federated)?
+ Reichen ein [Benutzername und ein Passwort](#amazon-cognito-user-pools-authentication-flow-methods-password) als Identitätsnachweis aus?
+ Könnten meine Authentifizierungsanfragen zur Authentifizierung mit Benutzername/Passwort abgefangen werden? Möchte ich, dass meine Anwendung Passwörter überträgt oder die [Authentifizierung mithilfe von Hashes und Salts aushandelt](#amazon-cognito-user-pools-authentication-flow-methods-srp)?
+ Möchte ich es Benutzern ermöglichen, die Passworteingabe zu überspringen und [ein Einmalpasswort zu erhalten](#amazon-cognito-user-pools-authentication-flow-methods-passwordless), mit dem sie sich anmelden?
+ Möchte ich Benutzern erlauben, sich mit einem [Fingerabdruck, einem Gesicht oder einem Hardware-Sicherheitsschlüssel](#amazon-cognito-user-pools-authentication-flow-methods-passkey) anzumelden?
+ Wann möchte ich eine [Multi-Faktor-Authentifizierung (MFA)](#amazon-cognito-user-pools-authentication-flow-methods-mfa) verlangen, wenn überhaupt?
+ Möchte ich [Benutzersitzungen beibehalten, ohne erneut](#amazon-cognito-user-pools-authentication-flow-methods-refresh) zur Eingabe von Anmeldeinformationen aufzufordern?
+ Möchte ich [mein Autorisierungsmodell über die integrierten Funktionen von Amazon Cognito hinaus erweitern?](#amazon-cognito-user-pools-authentication-flow-methods-custom)

Wenn Sie die Antworten auf diese Fragen haben, können Sie lernen, wie Sie die entsprechenden Funktionen aktivieren und sie in die Authentifizierungsanfragen Ihrer Anwendung implementieren.

Nachdem Sie Anmeldeabläufe für einen Benutzer eingerichtet haben, können Sie dessen aktuellen Status auf MFA und [auswahlbasierte Authentifizierungsfaktoren anhand von](authentication-flows-selection-sdk.md#authentication-flows-selection-choice) Anfragen an den API-Vorgang überprüfen. [GetUserAuthFactors](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GetUserAuthFactors.html) Für diesen Vorgang ist eine Autorisierung mit dem Zugriffstoken eines angemeldeten Benutzers erforderlich. Es gibt Benutzerauthentifizierungsfaktoren und MFA-Einstellungen zurück.

**Topics**
+ [Melden Sie sich bei einem Drittanbieter an IdPs](#amazon-cognito-user-pools-authentication-flow-methods-federated)
+ [Melden Sie sich mit dauerhaften Passwörtern an](#amazon-cognito-user-pools-authentication-flow-methods-password)
+ [Melden Sie sich mit dauerhaften Passwörtern und sicherer Payload an](#amazon-cognito-user-pools-authentication-flow-methods-srp)
+ [Passwortlose Anmeldung mit Einmalpasswörtern](#amazon-cognito-user-pools-authentication-flow-methods-passwordless)
+ [Passwortlose Anmeldung mit Passkeys WebAuthn](#amazon-cognito-user-pools-authentication-flow-methods-passkey)
+ [MFA nach der Anmeldung](#amazon-cognito-user-pools-authentication-flow-methods-mfa)
+ [Tokens aktualisieren](#amazon-cognito-user-pools-authentication-flow-methods-refresh)
+ [Benutzerdefinierte Authentifizierung](#amazon-cognito-user-pools-authentication-flow-methods-custom)
+ [Ablauf der Authentifizierung für die Benutzermigration](#amazon-cognito-user-pools-user-migration-authentication-flow)

## Melden Sie sich bei einem Drittanbieter an IdPs
<a name="amazon-cognito-user-pools-authentication-flow-methods-federated"></a>

Amazon Cognito Cognito-Benutzerpools dienen als Zwischenvermittler für Authentifizierungssitzungen zwischen Diensten IdPs wie Sign in with Apple, Login with Amazon und OpenID Connect (OIDC). *Dieser Vorgang wird auch als *Verbundanmeldung oder Verbundauthentifizierung* bezeichnet.* Bei der Verbundauthentifizierung werden keine der Authentifizierungsabläufe verwendet, die Sie in Ihren App-Client integrieren können. Stattdessen weisen Sie Ihrem App-Client einen konfigurierten Benutzerpool IdPs zu. Die Verbundanmeldung erfolgt, wenn Benutzer ihren IdP in der verwalteten Anmeldung auswählen oder Ihre Anwendung eine Sitzung mit einer Weiterleitung zu ihrer IdP-Anmeldeseite aufruft.

Mit der föderierten Anmeldung delegieren Sie primäre und MFA-Authentifizierungsfaktoren an den IdP des Benutzers. Amazon Cognito fügt die anderen erweiterten Flows in diesem Abschnitt einem Verbundbenutzer nicht hinzu, es sei denn, Sie [verknüpfen sie mit einem lokalen](cognito-user-pools-identity-federation-consolidate-users.md) Benutzer. Nicht verknüpfte Verbundbenutzer haben zwar Benutzernamen, aber es handelt sich dabei um einen Speicher zugeordneter Attributdaten, die unabhängig vom browserbasierten Flow normalerweise nicht für die Anmeldung verwendet werden.

**Ressourcen für die Implementierung**
+ [Benutzerpool-Anmeldung mit externen Identitätsanbietern](cognito-user-pools-identity-federation.md)

## Melden Sie sich mit dauerhaften Passwörtern an
<a name="amazon-cognito-user-pools-authentication-flow-methods-password"></a>

In Amazon Cognito Cognito-Benutzerpools hat jeder Benutzer einen Benutzernamen. Dies kann eine Telefonnummer, eine E-Mail-Adresse oder eine gewählte oder vom Administrator bereitgestellte Kennung sein. Benutzer dieses Typs können sich mit ihrem Benutzernamen und ihrem Passwort anmelden und optional MFA bereitstellen. Benutzerpools können die Anmeldung mit Benutzername/Passwort mit öffentlichen oder IAM-autorisierten API-Operationen und SDK-Methoden durchführen. Ihre Anwendung kann das Passwort zur Authentifizierung direkt an Ihren Benutzerpool senden. Ihr Benutzerpool reagiert mit zusätzlichen Herausforderungen oder den JSON-Webtoken (JWTs), die das Ergebnis einer erfolgreichen Authentifizierung sind.

------
#### [ Activate password sign-in ]

Um die [clientbasierte Authentifizierung](authentication-flows-selection-sdk.md#authentication-flows-selection-client) mit Benutzername und Passwort zu aktivieren, konfigurieren Sie Ihren App-Client so, dass dies zulässig ist. Navigieren Sie in der Amazon Cognito Cognito-Konsole in Ihrer Benutzerpool-Konfiguration unter **Anwendungen** zum Menü **App-Clients**. **Um die Anmeldung mit einem einfachen Passwort für eine clientseitige mobile oder native App zu ermöglichen, bearbeiten Sie einen App-Client und wählen Sie unter Authentifizierungsabläufe die Option **Mit Benutzername und Passwort anmelden: ALLOW\$1USER\$1PASSWORD\$1AUTH** aus.** **Um die Anmeldung mit einem einfachen Passwort für eine serverseitige App zu ermöglichen, bearbeiten Sie einen App-Client und wählen Sie Mit serverseitigen Administratoranmeldedaten anmelden: ALLOW\$1ADMIN\$1USER\$1PASSWORD\$1AUTH.**

[Um die wahlbasierte Authentifizierung mit Benutzername und Passwort zu aktivieren, konfigurieren Sie Ihren App-Client so, dass dies zulässig ist.](authentication-flows-selection-sdk.md#authentication-flows-selection-choice) Bearbeiten Sie Ihren App-Client und wählen Sie **Wahlbasierte Anmeldung: ALLOW\$1USER\$1AUTH**.

![\[Ein Screenshot aus der Amazon Cognito Cognito-Konsole, der die Auswahl einfacher Passwort-Authentifizierungsabläufe für einen App-Client veranschaulicht. Die Optionen ALLOW_USER_PASSWORD_AUTH, ALLOW_ADMIN_USER_PASSWORD_AUTH und ALLOW_USER_AUTH wurden ausgewählt.\]](http://docs.aws.amazon.com/de_de/cognito/latest/developerguide/images/screenshot-choose-password-admin-password-and-user-auth.png)


****Um zu überprüfen, ob die Kennwortauthentifizierung in wahlbasierten Authentifizierungsabläufen verfügbar ist, navigieren Sie zum Anmeldemenü und lesen Sie den Abschnitt unter Optionen für die wahlbasierte Anmeldung.**** ****Sie können sich mit einfacher Passwortauthentifizierung anmelden, wenn das Passwort unter Verfügbare Optionen sichtbar ist.**** Die Option **Passwort** umfasst die Varianten für die einfache Authentifizierung und die SRP-Authentifizierung mit Benutzername/Passwort.

![\[Ein Screenshot aus der Amazon Cognito Cognito-Konsole, der die Wahl der Passwortauthentifizierung in der auswahlbasierten USER_AUTH-Anmeldekonfiguration für einen Benutzerpool veranschaulicht. Die Option Passwort wird als aktiv angezeigt.\]](http://docs.aws.amazon.com/de_de/cognito/latest/developerguide/images/screenshot-password-flow-in-user-auth.png)


Konfigurieren Sie `ExplicitAuthFlows` mit Ihren bevorzugten username-and-password Authentifizierungsoptionen in einer [CreateUserPoolClient[UpdateUserPoolClient](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPoolClient.html)](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPoolClient.html)Oder-Anfrage.

```
"ExplicitAuthFlows": [ 
   "ALLOW_USER_PASSWORD_AUTH",
   "ALLOW_ADMIN_USER_PASSWORD_AUTH",
   "ALLOW_USER_AUTH"
]
```

Konfigurieren Sie in einer [CreateUserPool[UpdateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPool.html)](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html)Or-Anforderung `Policies` mit den wahlbasierten Authentifizierungsabläufen, die Sie unterstützen möchten. Der `PASSWORD` Wert in `AllowedFirstAuthFactors` umfasst sowohl die Ablaufoptionen für die Authentifizierung mit einfachem Passwort als auch für die SRP-Authentifizierung.

```
"Policies": {
   "SignInPolicy": {
      "AllowedFirstAuthFactors": [
         "PASSWORD",
         "EMAIL_OTP",
         "WEB_AUTHN"
      ]
   }
}
```

------
#### [ Choice-based sign-in with a password ]

Um einen Benutzer mit Benutzername/Passwort-Authentifizierung bei einer Anwendung anzumelden, konfigurieren Sie den Text Ihrer OR-Anforderung wie folgt. [AdminInitiateAuth[InitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html)](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html) Diese Anmeldeanforderung ist erfolgreich oder wird mit der nächsten Herausforderung fortgesetzt, wenn der aktuelle Benutzer für die Authentifizierung mit Benutzername/Passwort berechtigt ist. Andernfalls wird eine Liste der verfügbaren Herausforderungen bei der Authentifizierung mit dem Primärfaktor angezeigt. Dieser Parametersatz ist das Minimum, das für die Anmeldung erforderlich ist. Zusätzliche Parameter sind verfügbar.

```
{
   "AuthFlow": "USER_AUTH",
   "AuthParameters": { 
      "USERNAME" : "testuser",
      "PREFERRED_CHALLENGE" : "PASSWORD",
      "PASSWORD" : "[User's password]"
   },
   "ClientId": "1example23456789"
}
```

Sie können den `PREFERRED_CHALLENGE` Wert auch weglassen und eine Antwort erhalten, die eine Liste der für den Benutzer in Frage kommenden Anmeldefaktoren enthält.

```
{
   "AuthFlow": "USER_AUTH",
   "AuthParameters": { 
      "USERNAME" : "testuser"
   },
   "ClientId": "1example23456789"
}
```

Wenn Sie keine bevorzugte Herausforderung eingereicht haben oder der eingereichte Benutzer nicht für seine bevorzugte Herausforderung berechtigt ist, gibt Amazon Cognito eine Liste mit Optionen in `AvailableChallenges` zurück. Wenn ein `ChallengeName` von `AvailableChallenges` enthalten ist`PASSWORD`, können Sie die Authentifizierung mit einer Antwort [RespondToAuthChallenge](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_RespondToAuthChallenge.html)oder einer [AdminRespondToAuthChallenge](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminRespondToAuthChallenge.html)Challenge-Antwort im folgenden Format fortsetzen. Sie müssen einen `Session` Parameter übergeben, der die Challenge-Antwort mit der API-Antwort auf Ihre erste Anmeldeanforderung verknüpft. Dieser Parametersatz ist das Minimum, das für die Anmeldung erforderlich ist. Zusätzliche Parameter sind verfügbar.

```
{
   "ChallengeName": "PASSWORD",
   "ChallengeResponses": { 
      "USERNAME" : "testuser",
      "PASSWORD" : "[User's Password]"
   },
   "ClientId": "1example23456789",
   "Session": "[Session ID from the previous response"
}
```

Amazon Cognito beantwortet qualifizierte und erfolgreiche Preferred-Challenge-Anfragen und `PASSWORD` Challenge-Antworten mit Tokens oder einer zusätzlichen erforderlichen Herausforderung wie Multi-Faktor-Authentifizierung (MFA).

------
#### [ Client-based sign-in with a password ]

Um einen Benutzer mit Benutzername-Passwort-Authentifizierung bei einer clientseitigen App anzumelden, konfigurieren Sie den Text Ihrer Anfrage wie folgt. [InitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html) Dieser Parametersatz ist das Minimum, das für die Anmeldung erforderlich ist. Zusätzliche Parameter sind verfügbar.

```
{
   "AuthFlow": "USER_PASSWORD_AUTH",
   "AuthParameters": { 
      "USERNAME" : "testuser",
      "PASSWORD" : "[User's password]"
   },
   "ClientId": "1example23456789"
}
```

Um einen Benutzer mit Benutzername-Passwort-Authentifizierung bei einer serverseitigen App anzumelden, konfigurieren Sie den Text Ihrer [AdminInitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html)Anfrage wie folgt. Ihre Anwendung muss diese Anfrage mit Anmeldeinformationen signieren. AWS Dieser Parametersatz ist das Minimum, das für die Anmeldung erforderlich ist. Zusätzliche Parameter sind verfügbar.

```
{
   "AuthFlow": "ADMIN_USER_PASSWORD_AUTH",
   "AuthParameters": { 
      "USERNAME" : "testuser",
      "PASSWORD" : "[User's password]"
   },
   "ClientId": "1example23456789"
}
```

Amazon Cognito reagiert auf erfolgreiche Anfragen mit Tokens oder einer zusätzlichen erforderlichen Herausforderung wie der Multi-Faktor-Authentifizierung (MFA).

------

## Melden Sie sich mit dauerhaften Passwörtern und sicherer Payload an
<a name="amazon-cognito-user-pools-authentication-flow-methods-srp"></a>

Eine weitere Form der Anmeldemethoden für Benutzername/Passwort in Benutzerpools ist das Secure Remote Password (SRP) -Protokoll. Bei dieser Option wird ein Nachweis über die Kenntnis eines Kennworts — ein Kennwort-Hash und ein Salt — gesendet, den Ihr Benutzerpool überprüfen kann. Da die Anfrage an Amazon Cognito keine lesbaren geheimen Informationen enthält, ist Ihre Anwendung die einzige Entität, die die von Benutzern eingegebenen Passwörter verarbeitet. Die SRP-Authentifizierung beinhaltet mathematische Berechnungen, die am besten mit einer vorhandenen Komponente durchgeführt werden, die Sie in Ihr SDK importieren können. SRP wird in der Regel in clientseitigen Anwendungen wie mobilen Apps implementiert. Weitere Informationen zum Protokoll finden Sie auf der [Stanford SRP-Homepage](http://srp.stanford.edu/). [Wikipedia](https://en.wikipedia.org/wiki/Secure_Remote_Password_protocol) hat auch Ressourcen und Beispiele. [Eine Vielzahl von öffentlichen Bibliotheken](https://en.wikipedia.org/wiki/Secure_Remote_Password_protocol#Implementations) steht zur Verfügung, um die SRP-Berechnungen für Ihre Authentifizierungsabläufe durchzuführen.

Die initiate-challenge-respond Reihenfolge der Amazon Cognito Cognito-Authentifizierung validiert Benutzer und ihre Passwörter mit SRP. Sie müssen Ihren Benutzerpool und Ihren App-Client so konfigurieren, dass sie die SRP-Authentifizierung unterstützen, und dann die Logik der Anmeldeanfragen und Challenge-Antworten in Ihrer Anwendung implementieren. Ihre SRP-Bibliotheken können Zufallszahlen und berechnete Werte generieren, die Ihrem Benutzerpool zeigen, dass Sie im Besitz eines Benutzerkennworts sind. Ihre Anwendung füllt diese berechneten Werte in die Felder im JSON-Format `AuthParameters` und in die `ChallengeParameters` Felder der Amazon Cognito Cognito-Benutzerpools, API-Operationen und SDK-Methoden für die Authentifizierung ein.

------
#### [ Activate SRP sign-in ]

Um die [clientbasierte Authentifizierung](authentication-flows-selection-sdk.md#authentication-flows-selection-client) mit Benutzername und SRP zu aktivieren, konfigurieren Sie Ihren App-Client so, dass dies zulässig ist. Navigieren Sie in der Amazon Cognito Cognito-Konsole in Ihrer Benutzerpool-Konfiguration unter **Anwendungen** zum Menü **App-Clients**. **Um die SRP-Anmeldung für eine clientseitige mobile oder native App zuzulassen, bearbeiten Sie einen App-Client und wählen Sie unter Authentifizierungsabläufe die Option **Mit sicherem Remote-Passwort (SRP) anmelden: ALLOW\$1USER\$1SRP\$1AUTH** aus.**

**Um die [wahlbasierte Authentifizierung mit Benutzername und SRP zu aktivieren, bearbeiten Sie Ihren App-Client und wählen Sie Wahlbasierte Anmeldung: ALLOW\$1USER\$1AUTH](authentication-flows-selection-sdk.md#authentication-flows-selection-choice).**

![\[Ein Screenshot aus der Amazon Cognito Cognito-Konsole, der die Auswahl sicherer Remote-Passwortauthentifizierungsabläufe für einen App-Client veranschaulicht. Die Optionen ALLOW_USER_SRP_AUTH und ALLOW_USER_AUTH wurden ausgewählt.\]](http://docs.aws.amazon.com/de_de/cognito/latest/developerguide/images/screenshot-choose-SRP-and-user-auth.png)


****Um zu überprüfen, ob die SRP-Authentifizierung in Ihren wahlbasierten Authentifizierungsabläufen verfügbar ist, navigieren Sie zum Anmeldemenü und lesen Sie den Abschnitt unter Optionen für die wahlbasierte Anmeldung.**** ****Sie können sich mit der SRP-Authentifizierung anmelden, wenn das Passwort unter Verfügbare Optionen sichtbar ist.**** Die Option **Passwort** umfasst die Authentifizierungsvarianten Klartext und SRP Benutzername/Passwort.

![\[Ein Screenshot aus der Amazon Cognito Cognito-Konsole, der die Wahl der Passwortauthentifizierung in der auswahlbasierten USER_AUTH-Anmeldekonfiguration für einen Benutzerpool veranschaulicht. Die Option Passwort wird als aktiv angezeigt.\]](http://docs.aws.amazon.com/de_de/cognito/latest/developerguide/images/screenshot-password-flow-in-user-auth.png)


Konfigurieren Sie `ExplicitAuthFlows` mit Ihren bevorzugten username-and-password Authentifizierungsoptionen in einer [CreateUserPoolClient[UpdateUserPoolClient](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPoolClient.html)](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPoolClient.html)Oder-Anfrage.

```
"ExplicitAuthFlows": [ 
   "ALLOW_USER_SRP_AUTH",
   "ALLOW_USER_AUTH"
]
```

Konfigurieren Sie in einer [CreateUserPool[UpdateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPool.html)](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html)Or-Anforderung `Policies` mit den wahlbasierten Authentifizierungsabläufen, die Sie unterstützen möchten. Der `PASSWORD` Wert in `AllowedFirstAuthFactors` umfasst sowohl die Optionen für den Klartext-Passwort als auch für den SRP-Authentifizierungsfluss.

```
"Policies": {
   "SignInPolicy": {
      "AllowedFirstAuthFactors": [
         "PASSWORD",
         "EMAIL_OTP",
         "WEB_AUTHN"
      ]
   }
}
```

------
#### [ Choice-based sign-in with SRP ]

Um einen Benutzer mit Benutzername-Passwort-Authentifizierung mit SRP bei einer Anwendung anzumelden, konfigurieren Sie den Text Ihrer OR-Anforderung wie folgt. [AdminInitiateAuth[InitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html)](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html) Diese Anmeldeanforderung ist erfolgreich oder wird mit der nächsten Herausforderung fortgesetzt, wenn der aktuelle Benutzer für die Authentifizierung mit Benutzername und Passwort berechtigt ist. Andernfalls wird eine Liste der verfügbaren Herausforderungen bei der Authentifizierung mit dem Primärfaktor angezeigt. Dieser Parametersatz ist das Minimum, das für die Anmeldung erforderlich ist. Zusätzliche Parameter sind verfügbar.

```
{
   "AuthFlow": "USER_AUTH",
   "AuthParameters": { 
      "USERNAME" : "testuser",
      "PREFERRED_CHALLENGE" : "PASSWORD_SRP",
      "SRP_A" : "[g^a % N]"
   },
   "ClientId": "1example23456789"
}
```

Sie können den `PREFERRED_CHALLENGE` Wert auch weglassen und eine Antwort erhalten, die eine Liste der für den Benutzer in Frage kommenden Anmeldefaktoren enthält.

```
{
   "AuthFlow": "USER_AUTH",
   "AuthParameters": { 
      "USERNAME" : "testuser"
   },
   "ClientId": "1example23456789"
}
```

Wenn Sie keine bevorzugte Herausforderung eingereicht haben oder der eingereichte Benutzer nicht für seine bevorzugte Herausforderung berechtigt ist, gibt Amazon Cognito eine Liste mit Optionen in `AvailableChallenges` zurück. Wenn ein `ChallengeName` von `AvailableChallenges` enthalten ist`PASSWORD_SRP`, können Sie die Authentifizierung mit einer Antwort [RespondToAuthChallenge](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_RespondToAuthChallenge.html)oder einer [AdminRespondToAuthChallenge](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminRespondToAuthChallenge.html)Challenge-Antwort im folgenden Format fortsetzen. Sie müssen einen `Session` Parameter übergeben, der die Challenge-Antwort mit der API-Antwort auf Ihre erste Anmeldeanforderung verknüpft. Dieser Parametersatz ist das Minimum, das für die Anmeldung erforderlich ist. Zusätzliche Parameter sind verfügbar.

```
{
   "ChallengeName": "PASSWORD_SRP",
   "ChallengeResponses": { 
      "USERNAME" : "testuser",
      "SRP_A" : "[g^a % N]"
   },
   "ClientId": "1example23456789",
   "Session": "[Session ID from the previous response"
}
```

Amazon Cognito beantwortet qualifizierte Anfragen mit einer bevorzugten `PASSWORD_SRP` Herausforderung und Antworten auf Challenge-Antworten mit einer Aufforderung. `PASSWORD_VERIFIER` Ihr Kunde muss die SRP-Berechnungen durchführen und auf die Herausforderung in einer OR-Anfrage antworten. [RespondToAuthChallenge[AdminRespondToAuthChallenge](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminRespondToAuthChallenge.html)](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_RespondToAuthChallenge.html)

```
{
   "ChallengeName": "PASSWORD_VERIFIER",
   "ChallengeResponses": { 
      "PASSWORD_CLAIM_SIGNATURE" : "string",
      "PASSWORD_CLAIM_SECRET_BLOCK" : "string",
      "TIMESTAMP" : "string"
   },
   "ClientId": "1example23456789",
   "Session": "[Session ID from the previous response]"
}
```

Bei einer erfolgreichen Antwort auf eine `PASSWORD_VERIFIER` Herausforderung gibt Amazon Cognito Token oder eine andere erforderliche Herausforderung wie die Multi-Faktor-Authentifizierung (MFA) aus.

------
#### [ Client-based sign-in with SRP ]

Die SRP-Authentifizierung ist bei der clientseitigen Authentifizierung üblicher als bei der serverseitigen. Sie können die SRP-Authentifizierung jedoch mit und verwenden. [InitiateAuth[AdminInitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html)](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html) Um einen Benutzer bei einer Anwendung anzumelden, konfigurieren Sie den Hauptteil Ihrer `InitiateAuth` `AdminInitiateAuth` OR-Anforderung wie folgt. Dieser Parametersatz ist das Minimum, das für die Anmeldung erforderlich ist. Zusätzliche Parameter sind verfügbar.

*Der Client generiert `SRP_A` aus einem Generator Modulo N *g*, der auf die Potenz einer geheimen zufälligen Ganzzahl a erhöht wird.*

```
{
   "AuthFlow": "USER_SRP_AUTH",
   "AuthParameters": { 
      "USERNAME" : "testuser",
      "SRP_A" : "[g^a % N]"
   },
   "ClientId": "1example23456789"
}
```

Amazon Cognito reagiert mit einer `PASSWORD_VERIFIER`-Aufgabe. Ihr Kunde muss die SRP-Berechnungen durchführen und auf die Herausforderung in einer [RespondToAuthChallenge](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_RespondToAuthChallenge.html)Oder-Anfrage antworten. [AdminRespondToAuthChallenge](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminRespondToAuthChallenge.html)

```
{
   "ChallengeName": "PASSWORD_VERIFIER",
   "ChallengeResponses": { 
      "PASSWORD_CLAIM_SIGNATURE" : "string",
      "PASSWORD_CLAIM_SECRET_BLOCK" : "string",
      "TIMESTAMP" : "string"
   },
   "ClientId": "1example23456789",
   "Session": "[Session ID from the previous response]"
}
```

Bei einer erfolgreichen Antwort auf eine `PASSWORD_VERIFIER` Herausforderung gibt Amazon Cognito Token oder eine andere erforderliche Herausforderung wie die Multi-Faktor-Authentifizierung (MFA) aus.

------

## Passwortlose Anmeldung mit Einmalpasswörtern
<a name="amazon-cognito-user-pools-authentication-flow-methods-passwordless"></a>

Passwörter können verloren gehen oder gestohlen werden. Möglicherweise möchten Sie nur überprüfen, ob Ihre Benutzer Zugriff auf eine verifizierte E-Mail-Adresse, Telefonnummer oder Authentifizierungs-App haben. Die Lösung hierfür ist die *passwortlose Anmeldung*. Ihre Anwendung kann Benutzer zur Eingabe ihres Benutzernamens, ihrer E-Mail-Adresse oder Telefonnummer auffordern. Amazon Cognito generiert dann ein Einmalpasswort (OTP), einen Code, den sie bestätigen müssen. Ein erfolgreicher Code schließt die Authentifizierung ab.

Authentifizierungsabläufe mit Einmalkennwörtern (OTP) sind nicht mit der erforderlichen Multi-Faktor-Authentifizierung (MFA) in Ihrem Benutzerpool kompatibel. Die Hauptschlüsselauthentifizierung mit Benutzerüberprüfung kann die MFA-Anforderungen erfüllen, wenn Sie dies festlegen`FactorConfiguration`. `MULTI_FACTOR_WITH_USER_VERIFICATION` Wenn MFA in Ihrem Benutzerpool optional ist, können sich Benutzer, die MFA aktiviert haben, nicht mit einem ersten Einmalpasswort anmelden. Benutzer, die keine MFA-Präferenz in einem MFA-optionalen Benutzerpool haben, können sich mit kennwortlosen Faktoren anmelden. Weitere Informationen finden Sie unter [Wissenswertes über den Benutzerpool MFA](user-pool-settings-mfa.md#user-pool-settings-mfa-prerequisites).

Wenn ein Benutzer im Rahmen der kennwortlosen Authentifizierung einen Code, den er in einer SMS oder E-Mail-Nachricht erhalten hat, korrekt eingibt, markiert Ihr Benutzerpool zusätzlich zur Authentifizierung des Benutzers auch die nicht verifizierte E-Mail-Adresse oder das Telefonnummernattribut des Benutzers als verifiziert. Der Benutzerstatus wurde ebenfalls von `UNCONFIRMED` zu geändert`CONFIRMED`, unabhängig davon, ob Sie Ihren Benutzerpool so konfiguriert haben, dass E-Mail-Adressen oder [Telefonnummern automatisch verifiziert werden](signing-up-users-in-your-app.md).

**Neue Optionen mit passwortloser Anmeldung**  
Wenn Sie die passwortlose Authentifizierung in Ihrem Benutzerpool aktivieren, ändert sich dadurch die Funktionsweise einiger Benutzerabläufe.

1. Benutzer können sich ohne Passwort registrieren und bei der Anmeldung einen passwortlosen Faktor wählen. Sie können als Administrator auch Benutzer ohne Passwörter erstellen.

1. Benutzer, die Sie [mit einer CSV-Datei importieren](cognito-user-pools-using-import-tool.md), können sich sofort mit einem passwortlosen Faktor anmelden. Sie müssen vor der Anmeldung kein Passwort festlegen.

1. Benutzer, die kein Passwort haben, können [ChangePassword](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ChangePassword.html)API-Anfragen ohne den `PreviousPassword` Parameter einreichen.

**Automatische Anmeldung mit OTPs**  
Benutzer, die sich registrieren und ihre Benutzerkonten per E-Mail oder SMS-Nachricht bestätigen, OTPs können sich automatisch mit dem passwortlosen Faktor anmelden, der ihrer Bestätigungsnachricht entspricht. Auf der verwalteten Anmelde-Benutzeroberfläche können Benutzer, die ihre Konten bestätigen und für die OTP-Anmeldung mit der Methode zur Übermittlung des Bestätigungscodes berechtigt sind, automatisch zu ihrer ersten Anmeldung übergehen, nachdem sie den Bestätigungscode eingegeben haben. Übergeben Sie in Ihrer maßgeschneiderten Anwendung mit einem AWS SDK die folgenden Parameter an eine Oder-Operation. [InitiateAuth[AdminInitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html)](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html)
+ Der `Session` Parameter aus der [ConfirmSignUp](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ConfirmSignUp.html)API-Antwort als `Session` Anforderungsparameter.
+ Ein [AuthFlow](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html#CognitoUserPools-InitiateAuth-request-AuthFlow)von`USER_AUTH`.

Sie können eine [PREFERRED\$1CHALLENGE](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html#CognitoUserPools-InitiateAuth-request-AuthParameters) von `EMAIL_OTP` oder bestehen`SMS_OTP`, dies ist jedoch nicht erforderlich. Der `Session` Parameter liefert einen Authentifizierungsnachweis und Amazon Cognito ignoriert den, `AuthParameters` wenn Sie einen gültigen Sitzungscode übergeben.

Der Anmeldevorgang gibt die Antwort zurück, die auf eine erfolgreiche Authentifizierung hinweist [AuthenticationResult](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AuthenticationResultType.html), ohne zusätzliche Herausforderungen, wenn die folgenden Bedingungen zutreffen.
+ Der `Session` Code ist gültig und nicht abgelaufen.
+ Der Benutzer hat Anspruch auf die OTP-Authentifizierungsmethode.

------
#### [ Activate passwordless sign-in ]

**Konsole**  
Um die passwortlose Anmeldung zu aktivieren, konfigurieren Sie Ihren Benutzerpool so, dass die primäre Anmeldung mit einem oder mehreren kennwortlosen Typen zulässig ist, und konfigurieren Sie dann Ihren App-Client so, dass der Datenfluss zulässig ist. `USER_AUTH` Navigieren Sie in der Amazon Cognito Cognito-Konsole in Ihrer Benutzerpool-Konfiguration unter **Authentifizierung** zum **Anmelde-Menü**. **Bearbeiten Sie **die Optionen für die wahlbasierte Anmeldung** und wählen Sie Einmalpasswort für **E-Mail-Nachricht oder Einmalpasswort** für SMS-Nachricht.** Sie können beide Optionen aktivieren. Speichern Sie Ihre Änderungen.

Navigieren Sie zum Menü **App-Clients** und wählen Sie einen App-Client aus oder erstellen Sie einen neuen. Wählen Sie **Bearbeiten** und dann **Wählen Sie bei der Anmeldung einen Authentifizierungstyp aus: ALLOW\$1USER\$1AUTH**.

**API/SDK**  
Konfigurieren Sie in der Benutzerpools-API `SignInPolicy` mit den entsprechenden kennwortlosen Optionen in einer Oder-Anfrage. [CreateUserPool[UpdateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPool.html)](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html)

```
"SignInPolicy": { 
    "AllowedFirstAuthFactors": [ 
        "EMAIL_OTP",
        "SMS_OTP"
    ]
}
```

Konfigurieren Sie Ihren App-Client `ExplicitAuthFlows` mit der erforderlichen Option in einer [CreateUserPoolClient[UpdateUserPoolClient](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPoolClient.html)](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPoolClient.html)Oder-Anfrage.

```
"ExplicitAuthFlows": [ 
   "ALLOW_USER_AUTH"
]
```

------
#### [ Sign in with passwordless ]

Bei der passwortlosen Anmeldung gibt es keine [clientbasierte](authentication-flows-selection-sdk.md#authentication-flows-selection-client) Anmeldung`AuthFlow`, die Sie in und angeben können. [InitiateAuth[AdminInitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html)](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html) Die OTP-Authentifizierung ist nur in der [wahlbasierten Variante verfügbar. Dabei](authentication-flows-selection-sdk.md#authentication-flows-selection-choice) können Sie eine bevorzugte Anmeldeoption anfordern oder aus `AuthFlow` der `USER_AUTH` Option eines Benutzers die passwortlose Option auswählen. [AvailableChallenges](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html#CognitoUserPools-InitiateAuth-response-AvailableChallenges) Um einen Benutzer bei einer Anwendung anzumelden, konfigurieren Sie den Text Ihrer OR-Anforderung wie folgt. `InitiateAuth` `AdminInitiateAuth` Dieser Parametersatz ist das Minimum, das für die Anmeldung erforderlich ist. Zusätzliche Parameter sind verfügbar.

In diesem Beispiel wissen wir nicht, auf welche Weise sich der Benutzer anmelden möchte. Wenn wir einen `PREFERRED_CHALLENGE` Parameter hinzufügen und die bevorzugte Herausforderung für den Benutzer verfügbar ist, antwortet Amazon Cognito mit dieser Herausforderung.

```
{
   "AuthFlow": "USER_AUTH",
   "AuthParameters": { 
      "USERNAME" : "testuser"
   },
   "ClientId": "1example23456789"
}
```

`AuthParameters`In diesem Beispiel können Sie stattdessen `"PREFERRED_CHALLENGE": "EMAIL_OTP"` oder `"PREFERRED_CHALLENGE": "SMS_OTP"` hinzufügen. Wenn der Benutzer für diese bevorzugte Methode in Frage kommt, sendet Ihr Benutzerpool sofort einen Code an die E-Mail-Adresse oder Telefonnummer des Benutzers und gibt `"ChallengeName": "EMAIL_OTP"` oder zurück`"ChallengeName": "SMS_OTP"`.

Wenn Sie keine bevorzugte Herausforderung angeben, antwortet Amazon Cognito mit einem `AvailableChallenges` Parameter.

```
{
   "AvailableChallenges": [ 
      "EMAIL_OTP", 
      "SMS_OTP",
      "PASSWORD"
    ],
   "Session": "[Session ID]"
}
```

Dieser Benutzer ist berechtigt, sich passwortlos mit E-Mail-Nachrichten-OTP, SMS-Nachrichten-OTP und Benutzername-Passwort anzumelden. Ihre Anwendung kann den Benutzer zur Eingabe seiner Auswahl auffordern oder eine Auswahl auf der Grundlage interner Logik treffen. Anschließend wird mit einer [AdminRespondToAuthChallenge](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminRespondToAuthChallenge.html)Oder-Anfrage [RespondToAuthChallenge](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_RespondToAuthChallenge.html)fortgefahren, mit der die Herausforderung ausgewählt wird. Angenommen, der Benutzer möchte die kennwortlose Authentifizierung mit einem Einmalpasswort für eine E-Mail-Nachricht abschließen.

```
{
   "ChallengeName": "SELECT_CHALLENGE",
   "ChallengeResponses": { 
      "USERNAME" : "testuser",
      "ANSWER" : "EMAIL_OTP" 
   },
   "ClientId": "1example23456789",
   "Session": "[Session ID from the previous response]"
}
```

Amazon Cognito antwortet mit einer `EMAIL_OTP` Aufforderung und sendet einen Code an die verifizierte E-Mail-Adresse Ihres Benutzers. Ihre Anwendung muss dann erneut auf diese Aufforderung antworten.

Dies wäre auch die Antwort auf die nächste Herausforderung, wenn Sie `EMAIL_OTP` als Antwort darauf anfragen würden`PREFERRED_CHALLENGE`.

```
{
   "ChallengeName": "EMAIL_OTP",
   "ChallengeResponses": {
      "USERNAME" : "testuser", 
      "EMAIL_OTP_CODE" : "123456" 
   },
   "ClientId": "1example23456789",
   "Session": "[Session ID from the previous response]"
}
```

------

## Passwortlose Anmeldung mit Passkeys WebAuthn
<a name="amazon-cognito-user-pools-authentication-flow-methods-passkey"></a>

Passkeys sind sicher und bedeuten für die Benutzer einen relativ geringen Aufwand. Die Passkey-Anmeldung verwendet *Authentifikatoren*, externe Geräte, mit denen sich Benutzer authentifizieren können. Reguläre Passwörter setzen Benutzer Sicherheitslücken wie Phishing, Erraten von Passwörtern und Diebstahl von Anmeldeinformationen aus. Mit Passkeys kann Ihre Anwendung von fortschrittlichen Sicherheitsmaßnahmen auf Mobiltelefonen und anderen Geräten profitieren, die an Informationssysteme angeschlossen oder in diese integriert sind. Ein gängiger Anmeldeprozess mit dem Hauptschlüssel beginnt mit einem Anruf auf Ihrem Gerät, der Ihren Passwort- oder *Anmeldeinformationsmanager* aufruft, z. B. den iOS-Schlüsselbund oder den Google Chrome-Passwort-Manager. Der Manager für Anmeldeinformationen auf dem Gerät fordert sie auf, einen Hauptschlüssel auszuwählen und ihn mit einem vorhandenen Mechanismus zum Entsperren von Anmeldeinformationen oder Geräten zu autorisieren. Moderne Telefone verfügen über Gesichtsscanner, Fingerabdruckscanner, Entsperrmuster und andere Mechanismen, von denen einige gleichzeitig das Prinzip der starken Authentifizierung erfüllen, das etwas, das *Sie kennen, und *etwas*, das Sie haben,* erfüllen. *Im Fall der biometrischen Authentifizierung mit Passkeys stehen Kennwörter für etwas, das Sie sind.*

Möglicherweise möchten Sie Passwörter durch die Authentifizierung per Fingerabdruck, Gesicht oder Sicherheitsschlüssel ersetzen. *Das ist Hauptschlüssel oder Authentifizierung. *WebAuthn** Es ist üblich, dass Anwendungsentwickler Benutzern gestatten, ein biometrisches Gerät zu registrieren, nachdem sie sich zum ersten Mal mit einem Passwort angemeldet haben. Mit Amazon Cognito Cognito-Benutzerpools kann Ihre Anwendung diese Anmeldeoption für Benutzer konfigurieren. Die Passkey-Authentifizierung kann die Anforderungen der Multi-Faktor-Authentifizierung (MFA) erfüllen, wenn Ihr Benutzerpool darauf eingestellt ist`FactorConfiguration`. `MULTI_FACTOR_WITH_USER_VERIFICATION` In dieser Konfiguration gilt die Hauptschlüsselauthentifizierung mit Benutzerüberprüfung als Multi-Faktor-Authentifizierung.

Authentifizierungsabläufe mit Einmalkennwörtern (OTP) sind nicht mit der erforderlichen Multi-Faktor-Authentifizierung (MFA) in Ihrem Benutzerpool kompatibel. Die Hauptschlüsselauthentifizierung mit Benutzerüberprüfung kann die MFA-Anforderungen erfüllen, wenn Sie dies festlegen`FactorConfiguration`. `MULTI_FACTOR_WITH_USER_VERIFICATION` Wenn MFA in Ihrem Benutzerpool optional ist, können sich Benutzer, die MFA aktiviert haben, nicht mit einem ersten Einmalpasswort anmelden. Benutzer, die keine MFA-Präferenz in einem MFA-optionalen Benutzerpool haben, können sich mit kennwortlosen Faktoren anmelden. Weitere Informationen finden Sie unter [Wissenswertes über den Benutzerpool MFA](user-pool-settings-mfa.md#user-pool-settings-mfa-prerequisites).

### Was sind Hauptschlüssel?
<a name="amazon-cognito-user-pools-authentication-flow-methods-passkey-what-are"></a>

Passkeys vereinfachen die Benutzererfahrung, da sie sich keine komplexen Passwörter merken oder sie eingeben müssen. OTPs Passkeys basieren auf WebAuthn CTAP2 Standards, die vom [World Wide Web Consortium](https://www.w3.org/TR/webauthn-3/) (W3C) und der FIDO (Fast Identity Online) Alliance entworfen wurden. *Browser und Plattformen implementieren diese Standards und ermöglichen es Web- oder Mobilanwendungen, einen Prozess APIs zur Registrierung oder Authentifizierung von Passkeys zu starten, sowie eine Benutzeroberfläche, über die der Benutzer einen Passkey-Authentifikator auswählen und mit diesem interagieren kann.*

Wenn ein Benutzer einen Authentifikator bei einer Website oder einer App registriert, erstellt der Authenticator ein öffentlich-privates key pair. WebAuthn Browser und Plattformen senden den öffentlichen Schlüssel an das Anwendungs-Backend der Website oder App. Der Authentifikator speichert den privaten Schlüssel, den Schlüssel IDs und die Metadaten über den Benutzer und die Anwendung. Wenn sich der Benutzer in der registrierten Anwendung mit seinem registrierten Authentifikator authentifizieren möchte, generiert die Anwendung eine zufällige Aufforderung. Die Antwort auf diese Herausforderung ist die digitale Signatur der Aufforderung, die mit dem privaten Schlüssel des Authentifikators für diese Anwendung und diesen Benutzer sowie den entsprechenden Metadaten generiert wird. Der Browser oder die Anwendungsplattform empfängt die digitale Signatur und leitet sie an das Anwendungs-Backend weiter. Die Anwendung validiert dann die Signatur mit dem gespeicherten öffentlichen Schlüssel.

**Anmerkung**  
Ihre Anwendung erhält weder Authentifizierungsgeheimnisse, die Benutzer ihrem Authentifikator zur Verfügung stellen, noch Informationen über den privaten Schlüssel.

Im Folgenden finden Sie einige Beispiele und Funktionen von Authentifikatoren, die derzeit auf dem Markt erhältlich sind. Ein Authentifikator kann eine oder alle dieser Kategorien erfüllen.
+ Einige Authentifikatoren führen eine *Benutzerverifizierung anhand* von Faktoren wie einer PIN, einer biometrischen Eingabe mit einem Gesicht oder einem Fingerabdruck oder einem Passcode durch, bevor sie den Zugriff gewähren. Dadurch wird sichergestellt, dass nur der legitime Benutzer Aktionen autorisieren kann. Andere Authentifikatoren verfügen nicht über Funktionen zur Benutzerverifizierung, und einige können die Benutzerverifizierung überspringen, wenn eine Anwendung sie nicht benötigt.
+ Einige Authentifikatoren, zum Beispiel YubiKey Hardware-Token, sind portabel. Sie kommunizieren mit Geräten über USB-, Bluetooth- oder NFC-Verbindungen. Einige Authentifikatoren sind lokal und an eine Plattform gebunden, z. B. Windows Hello auf einem PC oder Face ID auf einem iPhone. Ein gerätegebundener Authentifikator kann vom Benutzer mitgeführt werden, wenn er klein genug ist, wie ein Mobilgerät. Manchmal können Benutzer ihren Hardware-Authentifikator mit vielen verschiedenen Plattformen über drahtlose Kommunikation verbinden. Beispielsweise können Benutzer in Desktop-Browsern ihr Smartphone als Hauptschlüsselauthentifikator verwenden, wenn sie einen QR-Code scannen.
+ Einige plattformgebundene Hauptschlüssel werden mit der Cloud synchronisiert, sodass sie von mehreren Standorten aus verwendet werden können. Beispielsweise synchronisieren Face ID-Passkeys auf iPhones die Passkey-Metadaten mit den Apple-Konten der Nutzer in deren iCloud-Schlüsselbund. Diese Hauptschlüssel ermöglichen eine nahtlose Authentifizierung auf allen Apple-Geräten, anstatt zu verlangen, dass Benutzer jedes Gerät einzeln registrieren. Softwarebasierte Authentifikator-Apps wie 1Password, Dashlane und Bitwarden synchronisieren Passkeys auf allen Plattformen, auf denen der Benutzer die App installiert hat.

*In der WebAuthn Terminologie sind Websites und Apps vertrauende Parteien.* Jedem Hauptschlüssel ist eine spezifische ID der vertrauenden Partei zugeordnet. Dabei handelt es sich um eine einheitliche Kennung, die die Websites oder Apps darstellt, die die Passkey-Authentifizierung akzeptieren. Entwickler müssen ihre ID der vertrauenden Partei sorgfältig auswählen, um den richtigen Authentifizierungsumfang zu gewährleisten. Eine typische ID der vertrauenden Partei ist der Stammdomänenname eines Webservers. Ein Hauptschlüssel mit dieser Spezifikation für die ID der vertrauenden Partei kann für diese Domain und Subdomänen authentifiziert werden. Browser und Plattformen verweigern die Passkey-Authentifizierung, wenn die URL der Website, auf die ein Benutzer zugreifen möchte, nicht mit der ID der vertrauenden Partei übereinstimmt. Ähnlich kann für mobile Apps ein Hauptschlüssel nur verwendet werden, wenn der App-Pfad in den `.well-known` Zuordnungsdateien enthalten ist, die die Anwendung unter dem durch die ID der vertrauenden Partei angegebenen Pfad zur Verfügung stellt.

*Hauptschlüssel sind auffindbar.* Sie können von einem Browser oder einer Plattform automatisch erkannt und verwendet werden, ohne dass der Benutzer einen Benutzernamen eingeben muss. Wenn ein Benutzer eine Website oder App besucht, die die Hauptschlüsselauthentifizierung unterstützt, kann er aus einer Liste von Hauptschlüsseln auswählen, die dem Browser oder der Plattform bereits bekannt sind, oder er kann einen QR-Code scannen.

### Wie implementiert Amazon Cognito die Passkey-Authentifizierung?
<a name="amazon-cognito-user-pools-authentication-flow-methods-passkey-cognito"></a>

**Hauptschlüssel sind eine optionale Funktion, die in allen [Funktionsplänen](cognito-sign-in-feature-plans.md) außer Lite verfügbar ist.** Sie ist nur im wahlbasierten Authentifizierungsablauf [verfügbar.](authentication-flows-selection-sdk.md#authentication-flows-selection-choice) Bei der [verwalteten Anmeldung](authentication-flows-selection-managedlogin.md) übernimmt Amazon Cognito die Logik der Passkey-Authentifizierung. Sie können auch die [Amazon Cognito-Benutzerpools-API](#amazon-cognito-user-pools-authentication-flow-methods) verwenden, AWS SDKs um die Passkey-Authentifizierung in Ihrem Anwendungs-Backend durchzuführen.

Amazon Cognito erkennt Hauptschlüssel, die mit einem der beiden asymmetrischen kryptografischen Algorithmen ES256 (-7) und (-257) erstellt wurden. RS256 Die meisten Authentifikatoren unterstützen beide Algorithmen. Standardmäßig können Benutzer jede Art von Authentifikatoren einrichten, z. B. Hardware-Token, mobile Smartphones und Software-Authenticator-Apps. Amazon Cognito unterstützt derzeit nicht die Durchsetzung von [Bescheinigungen](https://csrc.nist.gov/glossary/term/attestation).

In Ihrem Benutzerpool können Sie die Benutzerverifizierung so konfigurieren, dass sie bevorzugt oder erforderlich ist. Diese Einstellung ist in API-Anfragen, die keinen Wert angeben, standardmäßig auf „bevorzugt“ eingestellt, und in der Amazon Cognito Cognito-Konsole ist standardmäßig „bevorzugt“ ausgewählt. Wenn Sie die Benutzerverifizierung auf bevorzugt setzen, können Benutzer Authentifikatoren einrichten, die nicht über die Funktion zur Benutzerverifizierung verfügen, und Registrierungs- und Authentifizierungsvorgänge können auch ohne Benutzerverifizierung erfolgreich sein. Um die Benutzerverifizierung bei der Registrierung und Authentifizierung mit dem Hauptschlüssel vorzuschreiben, ändern Sie diese Einstellung in „Erforderlich“.

Die ID der vertrauenden Partei (Relying Party, RP), die Sie in Ihrer Hauptschlüsselkonfiguration festgelegt haben, ist eine wichtige Entscheidung. Wenn Sie nichts anderes angeben und Ihre [Domain-Branding-Version](managed-login-branding.md) eine verwaltete Anmeldung ist, erwartet Ihr Benutzerpool standardmäßig den Namen Ihrer [benutzerdefinierten Domain](cognito-user-pools-add-custom-domain.md) als RP-ID. Wenn Sie keine benutzerdefinierte Domain haben und nichts anderes angeben, verwendet Ihr Benutzerpool standardmäßig eine RP-ID Ihrer [Präfix-Domain](cognito-user-pools-assign-domain-prefix.md). Sie können Ihre RP-ID auch so konfigurieren, dass sie ein beliebiger Domainname ist, der nicht in der öffentlichen Suffixliste (PSL) enthalten ist. Ihr RP-ID-Eintrag gilt für die Registrierung und Authentifizierung mit dem Hauptschlüssel bei der verwalteten Anmeldung und bei der SDK-Authentifizierung. Passkey funktioniert nur in mobilen Anwendungen, bei denen Amazon Cognito eine `.well-known` Zuordnungsdatei mit Ihrer RP-ID als Domain finden kann. Es hat sich bewährt, den Wert der ID Ihrer vertrauenden Partei zu ermitteln und festzulegen, bevor Ihre Website oder App öffentlich verfügbar ist. Wenn Sie Ihre RP-ID ändern, müssen sich Ihre Benutzer erneut mit der neuen RP-ID registrieren.

Jeder Benutzer kann bis zu 20 Hauptschlüssel registrieren. Sie können einen Hauptschlüssel erst registrieren, nachdem sie sich mindestens einmal bei Ihrem Benutzerpool angemeldet haben. Durch die verwaltete Anmeldung entfällt ein erheblicher Aufwand bei der Registrierung des Hauptschlüssels. Wenn Sie die Hauptschlüsselauthentifizierung für einen Benutzerpool und einen App-Client aktivieren, erinnert Ihr Benutzerpool mit einer verwalteten Anmeldedomäne Endbenutzer daran, einen Hauptschlüssel zu registrieren, nachdem sie sich für ein neues Benutzerkonto registriert haben. Sie können die Browser der Benutzer auch jederzeit aufrufen, um sie zur Registrierung des Hauptschlüssels auf eine verwaltete Anmeldeseite weiterzuleiten. Benutzer müssen einen Benutzernamen angeben, bevor Amazon Cognito die Hauptschlüsselauthentifizierung initiieren kann. Die verwaltete Anmeldung erledigt dies automatisch. Auf der Anmeldeseite werden Sie zur Eingabe eines Benutzernamens aufgefordert, es wird überprüft, ob der Benutzer mindestens ein Hauptschlüssel registriert hat, und Sie werden dann zur Anmeldung mit dem Hauptschlüssel aufgefordert. In ähnlicher Weise müssen SDK-basierte Anwendungen zur Eingabe eines Benutzernamens auffordern und diesen in der Authentifizierungsanfrage angeben.

Wenn Sie die Benutzerpoolauthentifizierung mit Hauptschlüsseln einrichten und über eine benutzerdefinierte Domäne und eine Präfixdomäne verfügen, verwendet die RP-ID standardmäßig den vollqualifizierten Domänennamen (FQDN) Ihrer benutzerdefinierten Domäne. Um eine Präfix-Domain als RP-ID in der Amazon Cognito Cognito-Konsole festzulegen, löschen Sie Ihre benutzerdefinierte Domain oder geben Sie den FQDN der Präfix-Domain als **Drittanbieter-Domain** ein.

------
#### [ Activate passkey sign-in ]

**Konsole**  
Um die Anmeldung mit Hauptschlüsseln zu aktivieren, konfigurieren Sie Ihren Benutzerpool so, dass die primäre Anmeldung mit einem oder mehreren kennwortlosen Typen zulässig ist, und konfigurieren Sie dann Ihren App-Client so, dass er den Datenfluss zulässt. `USER_AUTH` Navigieren Sie in der Amazon Cognito Cognito-Konsole in Ihrer Benutzerpool-Konfiguration unter **Authentifizierung** zum **Anmelde-Menü**. **Bearbeiten Sie **die Optionen für die wahlbasierte Anmeldung** und fügen Sie **Passkey** zur Liste der verfügbaren Optionen hinzu.**

**Navigieren Sie zum Menü **Authentifizierungsmethoden** und bearbeiten Sie Passkey.**
+ Die **Benutzerüberprüfung** ist die Einstellung, ob Ihr Benutzerpool Hauptschlüsselgeräte benötigt, die zusätzlich überprüfen, ob der aktuelle Benutzer für einen Hauptschlüssel autorisiert ist. **Um Benutzer zu ermutigen, ein Gerät mit Benutzerverifizierung zu konfigurieren, diese aber nicht zu verlangen, wählen Sie Bevorzugt aus.** Um nur Geräte mit Benutzerverifizierung zu unterstützen, wählen Sie **Erforderlich** aus. Weitere Informationen finden Sie unter [Benutzerverifizierung](https://www.w3.org/TR/webauthn-2/#user-verification) auf w3.org.
+ Die **ID der Domain for Relying Party** ist die Kennung, die Ihre Anwendung bei der Registrierung mit dem Hauptschlüssel der Benutzer weitergibt. Sie legt das Ziel der Vertrauensbeziehung mit dem Herausgeber der Hauptschlüssel der Benutzer fest. Ihre ID der vertrauenden Partei kann wie folgt lauten: die Domain Ihres Benutzerpools, wenn   
**Cognito-Domäne**  
Die Amazon [Cognito-Präfixdomäne](cognito-user-pools-assign-domain-prefix.md) Ihres Benutzerpools.  
**Benutzerdefinierte Domain**  
Die [benutzerdefinierte Domain](cognito-user-pools-add-custom-domain.md) Ihres Benutzerpools.  
**Domain eines Drittanbieters**  
Die Domäne für Anwendungen, die den Benutzerpool nicht verwenden, verwaltete Anmeldeseiten. Diese Einstellung wird normalerweise Benutzerpools zugeordnet, die keine [Domäne](cognito-user-pools-assign-domain.md) haben und die Authentifizierung mit einem AWS SDK und der Benutzerpools-API im Backend durchführen.

Navigieren Sie zum Menü **App-Clients** und wählen Sie einen App-Client aus oder erstellen Sie einen neuen. Wählen Sie **Bearbeiten** aus und wählen Sie unter **Authentifizierungsabläufe** die **Option Wählen Sie bei der Anmeldung einen Authentifizierungstyp aus: ALLOW\$1USER\$1AUTH**.

**API/SDK**  
Konfigurieren Sie in der Benutzerpools-API `SignInPolicy` mit den entsprechenden Passkey-Optionen in einer [CreateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html)Oder-Anfrage. [UpdateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPool.html) Die `WEB_AUTHN` Option für die Hauptschlüsselauthentifizierung muss von mindestens einer weiteren Option begleitet werden. Für die Registrierung mit dem Passkey ist eine bestehende Authentifizierungssitzung erforderlich.

```
"SignInPolicy": { 
    "AllowedFirstAuthFactors": [ 
        "PASSWORD",
        "WEB_AUTHN"
    ]
}
```

Konfigurieren Sie Ihre Präferenz für die Benutzerverifizierung und Ihre RP-ID im `WebAuthnConfiguration` Parameter einer [SetUserPoolMfaConfig](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SetUserPoolMfaConfig.html#CognitoUserPools-SetUserPoolMfaConfig-request-WebAuthnConfiguration)Anfrage. Das`RelyingPartyId`, das beabsichtigte Ziel der Ergebnisse der Passkey-Authentifizierung, kann Ihr Benutzerpool-Präfix oder Ihre benutzerdefinierte Domain oder eine Domain Ihrer Wahl sein.

```
"WebAuthnConfiguration": { 
   "RelyingPartyId": "example.auth.us-east-1.amazoncognito.com",
   "UserVerification": "preferred",
   "FactorConfiguration": "SINGLE_FACTOR"
}
```

Konfigurieren Sie Ihren App-Client `ExplicitAuthFlows` mit der erforderlichen Option in einer [CreateUserPoolClient[UpdateUserPoolClient](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPoolClient.html)](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPoolClient.html)Oder-Anfrage.

```
"ExplicitAuthFlows": [ 
   "ALLOW_USER_AUTH"
]
```

------
#### [ Register a passkey (managed login) ]

Die verwaltete Anmeldung kümmert sich um die Benutzerregistrierung von Hauptschlüsseln. Wenn die Hauptschlüsselauthentifizierung in Ihrem Benutzerpool aktiv ist, fordert Amazon Cognito Benutzer auf, einen Hauptschlüssel einzurichten, wenn sie sich für ein neues Benutzerkonto registrieren.

Amazon Cognito fordert Benutzer nicht auf, einen Hauptschlüssel einzurichten, wenn sie sich bereits registriert haben und keinen Hauptschlüssel eingerichtet haben oder wenn Sie ihr Konto als Administrator erstellt haben. Benutzer in diesem Status müssen sich mit einem anderen Faktor wie einem Passwort oder einem kennwortlosen OTP anmelden, bevor sie einen Hauptschlüssel registrieren können.

**Um einen Hauptschlüssel zu registrieren**

1. Leiten Sie den Benutzer zu Ihrer [Anmeldeseite weiter](authorization-endpoint.md).

   ```
   https://auth.example.com/oauth2/authorize/?client_id=1example23456789&response_type=code&scope=email+openid+phone&redirect_uri=https%3A%2F%2Fwww.example.com
   ```

1. Verarbeiten Sie das Authentifizierungsergebnis des Benutzers. In diesem Beispiel leitet Amazon Cognito sie `www.example.com` mit einem Autorisierungscode weiter, den Ihre Anwendung gegen Token eintauscht.

1. Leiten Sie den Benutzer zu Ihrer Registrierungs-Passkey-Seite weiter. Der Benutzer erhält ein Browser-Cookie, das seine angemeldete Sitzung beibehält. Die Hauptschlüssel-URL verwendet und Parameter. `client_id` `redirect_uri` Amazon Cognito erlaubt nur authentifizierten Benutzern den Zugriff auf diese Seite. Melden Sie Ihren Benutzer mit einem Passwort, E-Mail-OTP oder SMS-OTP an und rufen Sie dann eine URL auf, die dem folgenden Muster entspricht.

   Sie können dieser Anfrage auch andere [Autorisieren des Endpunkts](authorization-endpoint.md) Parameter wie und hinzufügen. `response_type` `scope`

   ```
   https://auth.example.com/passkeys/add?client_id=1example23456789&redirect_uri=https%3A%2F%2Fwww.example.com
   ```

------
#### [ Register a passkey (SDK) ]

Sie registrieren Hauptschlüsselanmeldedaten mit Metadaten in einem [PublicKeyCreationOptions](https://www.w3.org/TR/webauthn-3/#dictdef-publickeycredentialcreationoptions)Objekt. Sie können dieses Objekt mit den Anmeldeinformationen eines angemeldeten Benutzers generieren und diese in einer API-Anfrage an dessen Hauptschlüsselaussteller weitergeben. Der Aussteller gibt ein [RegistrationResponseJSON-Objekt](https://www.w3.org/TR/webauthn-3/#dictdef-registrationresponsejson) zurück, das die Registrierung des Hauptschlüssels bestätigt.

Um den Prozess der Registrierung des Hauptschlüssels zu starten, melden Sie einen Benutzer mit einer vorhandenen Anmeldeoption an. Autorisieren Sie die durch das [Token autorisierte [StartWebAuthnRegistration](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_StartWebAuthnRegistration.html)](authentication-flows-public-server-side.md#user-pool-apis-auth-unauth-token-auth)API-Anfrage mit dem Zugriffstoken des aktuellen Benutzers. Im Folgenden finden Sie den Hauptteil einer Beispielanforderung. `GetWebAuthnRegistrationOptions`

```
{
   "AccessToken": "eyJra456defEXAMPLE"
}
```

Die Antwort aus Ihrem Benutzerpool enthält das `PublicKeyCreationOptions` Objekt. Präsentieren Sie dieses Objekt in einer API-Anfrage an den Aussteller des Benutzers. Es enthält Informationen wie den öffentlichen Schlüssel und die ID der vertrauenden Partei. Der Emittent wird mit einem `RegistrationResponseJSON` Objekt antworten.

Präsentieren Sie die Antwort auf die Registrierung in einer [CompleteWebAuthnRegistration](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CompleteWebAuthnRegistration.html)API-Anfrage, die wiederum mit dem Zugriffstoken des Benutzers autorisiert wurde. Wenn Ihr Benutzerpool mit einer HTTP 200-Antwort mit einem leeren Text antwortet, ist der Hauptschlüssel Ihres Benutzers registriert.

------
#### [ Sign in with a passkey ]

Bei der passwortlosen Anmeldung gibt es keine Option`AuthFlow`, die Sie in und angeben können. [InitiateAuth[AdminInitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html)](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html) Stattdessen müssen Sie ein `AuthFlow` of deklarieren `USER_AUTH` und eine Anmeldeoption anfordern oder Ihre passwortlose Option aus der Antwort Ihres Benutzerpools auswählen. Um einen Benutzer bei einer Anwendung anzumelden, konfigurieren Sie den Hauptteil Ihrer `AdminInitiateAuth` Oder-Anfrage wie `InitiateAuth` folgt. Dieser Parametersatz ist das Minimum, das für die Anmeldung erforderlich ist. Zusätzliche Parameter sind verfügbar.

In diesem Beispiel wissen wir, dass sich der Benutzer mit einem Hauptschlüssel anmelden möchte, und fügen einen `PREFERRED_CHALLENGE` Parameter hinzu.

```
{
   "AuthFlow": "USER_AUTH",
   "AuthParameters": { 
      "USERNAME" : "testuser",
      "PREFERRED_CHALLENGE" : "WEB_AUTHN"
   },
   "ClientId": "1example23456789"
}
```

Amazon Cognito reagiert mit einer `WEB_AUTHN`-Aufgabe. Ihre Bewerbung muss auf diese Herausforderung reagieren. Initiieren Sie eine Anmeldeanforderung beim Passkey-Anbieter des Benutzers. Es wird ein [AuthenticationResponseJSON-Objekt](https://www.w3.org/TR/webauthn-3/#dictdef-authenticationresponsejson) zurückgegeben.

```
{
   "ChallengeName": "WEB_AUTHN",
   "ChallengeResponses": {
      "USERNAME" : "testuser", 
      "CREDENTIAL" : "{AuthenticationResponseJSON}" 
   },
   "ClientId": "1example23456789",
   "Session": "[Session ID from the previous response]"
}
```

------

## MFA nach der Anmeldung
<a name="amazon-cognito-user-pools-authentication-flow-methods-mfa"></a>

Sie können festlegen, dass Benutzer, die die Anmeldung mit einem Benutzername-Passwort-Schema abschließen, in einer E-Mail-Nachricht, SMS-Nachricht oder einer Anwendung zur Codegenerierung zu einer zusätzlichen Bestätigung mit einem Einmalkennwort aufgefordert werden. MFA unterscheidet sich von der passwortlosen Anmeldung mit Einmalpasswörtern. Hauptschlüssel mit Benutzerverifizierung können jedoch die MFA-Anforderungen erfüllen, wenn Sie `FactorConfiguration` AS `MULTI_FACTOR_WITH_USER_VERIFICATION` in Ihrem Benutzerpool konfigurieren. `WebAuthnConfiguration` Bei kennwortbasierten Datenströmen ist MFA in Benutzerpools ein Challenge-Response-Modell, bei dem ein Benutzer zunächst nachweist, dass er das Passwort kennt, und dann nachweist, dass er Zugriff auf sein registriertes Second-Factor-Gerät hat.

**Ressourcen für die Implementierung**
+ [Hinzufügen der MFA zu einem Benutzerpool](user-pool-settings-mfa.md)

## Tokens aktualisieren
<a name="amazon-cognito-user-pools-authentication-flow-methods-refresh"></a>

Wenn Sie möchten, dass Benutzer angemeldet bleiben, ohne ihre Anmeldeinformationen erneut eingeben zu müssen, sind *Aktualisierungstoken* das Tool, das Ihre Anwendung benötigt, um die Sitzung eines Benutzers beizubehalten. Anwendungen können Ihrem Benutzerpool Aktualisierungstoken präsentieren und diese gegen neue ID- und Zugriffstoken eintauschen. Mit der Tokenaktualisierung können Sie sicherstellen, dass ein angemeldeter Benutzer weiterhin aktiv ist, aktualisierte Attributinformationen abrufen und Zugriffsberechtigungen ohne Benutzereingriff aktualisieren.

**Ressourcen für die Implementierung**
+ [Tokens aktualisieren](amazon-cognito-user-pools-using-the-refresh-token.md)

## Benutzerdefinierte Authentifizierung
<a name="amazon-cognito-user-pools-authentication-flow-methods-custom"></a>

Möglicherweise möchten Sie eine Authentifizierungsmethode für Ihre Benutzer konfigurieren, die hier nicht aufgeführt ist. Sie können dies mit einer *benutzerdefinierten Authentifizierung* mit Lambda-Triggern tun. In einer Abfolge von Lambda-Funktionen gibt Amazon Cognito eine Aufforderung aus, stellt eine Frage, die Benutzer beantworten müssen, überprüft die Antwort auf ihre Richtigkeit und bestimmt dann, ob eine weitere Aufforderung ausgegeben werden soll. Die Fragen und Antworten können Sicherheitsfragen, Anfragen an einen CAPTCHA-Dienst, Anfragen an eine externe MFA-Dienst-API oder alle diese nacheinander beinhalten.

**Ressourcen für die Implementierung**
+ [Lambda-Auslöser für benutzerdefinierte Authentifizierungsaufforderungen](user-pool-lambda-challenge.md)

### Benutzerdefinierter Authentifizierungsablauf
<a name="amazon-cognito-user-pools-custom-authentication-flow"></a>

Amazon-Cognito-Benutzerpools ermöglichen außerdem die Verwendung benutzerdefinierter Authentifizierungsabläufe, mit denen Sie ein auf Aufforderungen und Antworten basiertes Authentifizierungsmodell mithilfe von AWS Lambda -Auslösern erstellen können.

Der benutzerdefinierte Authentifizierungsfluss ermöglicht kundenspezifische Aufforderungs- und Antwortzyklen, um unterschiedliche Anforderungen zu erfüllen. Der Ablauf beginnt mit dem Aufruf der `InitiateAuth`-API-Operation, die den zu verwendenden Authentifizierungstyp angibt und die anfänglichen Authentifizierungsparameter bereitstellt. Amazon Cognito antwortet auf den `InitiateAuth`-Aufruf mit einer der folgenden Arten von Informationen: 
+ Mit einer Aufforderung für den Benutzer sowie einer Sitzung und Parametern.
+ Mit einem Fehler, wenn der Benutzer nicht authentifiziert werden konnte
+ Mit einem ID-, Zugriffs- und Aktualisierungstoken, wenn die angegebenen Parameter im `InitiateAuth`-Aufruf ausreichen, um den Benutzer anzumelden. (Normalerweise muss der Benutzer oder die App zuerst eine Herausforderung beantworten, aber Ihr benutzerdefinierter Code muss dies bestimmen.)

 Wenn Amazon Cognito auf den `InitiateAuth`-Aufruf mit einer Aufforderung antwortet, sammelt die App weitere Eingaben und ruft die `RespondToAuthChallenge`-Operation auf. Dieser Aufruf liefert die Antworten auf die Aufforderungen und gibt sie an die Sitzung zurück. Amazon Cognito reagiert auf den `RespondToAuthChallenge`-Aufruf ähnlich wie auf den `InitiateAuth`-Aufruf. Wenn sich der Benutzer angemeldet hat, stellt Amazon Cognito Token bereit. Wenn der Benutzer hingegen nicht angemeldet ist, zeigt Amazon Cognito eine weitere Aufforderung oder einen Fehler an. Wenn Amazon Cognito eine weitere Aufforderung zurückgibt, wiederholt sich die Sequenz und die App ruft `RespondToAuthChallenge` auf, bis sich der Benutzer erfolgreich angemeldet hat oder ein Fehler angezeigt wird. Weitere Details finden Sie in der [API-Dokumentation](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/Welcome.html) für die API-Operationen `InitiateAuth` und `RespondToAuthChallenge`. 

### Benutzerdefinierter Authentifizierungsablauf und Aufforderungen
<a name="Custom-authentication-flow-and-challenges"></a>

Eine App kann einen benutzerdefinierten Authentifizierungsfluss durch Aufrufen von `InitiateAuth` mit `CUSTOM_AUTH` als `Authflow` initiieren. Bei einem benutzerdefinierten Authentifizierungsablauf steuern drei Lambda-Auslöser die Aufforderungen und die Verifizierung der Antworten.
+ Der `DefineAuthChallenge`-Lambda-Auslöser verwendet ein Sitzungs-Array mit früheren Aufforderungen und Antworten als Eingabe. Anschließend generiert er den nächsten Aufforderungsnamen und boolesche Werte, die angeben, ob der Benutzer authentifiziert ist und ihm Token gewährt werden können. Dieser Lambda-Auslöser ist ein Zustandsautomat, der den Weg des Benutzers durch die Aufforderungen steuert.
+ Der `CreateAuthChallenge`-Lambda-Auslöser verwendet einen Aufforderungsnamen als Eingabe und generiert die Aufforderung sowie Parameter zur Bewertung der Antwort. Wenn `DefineAuthChallenge` `CUSTOM_CHALLENGE` als nächste Aufforderung zurückgibt, ruft der Authentifizierungsablauf `CreateAuthChallenge` an. Der `CreateAuthChallenge`-Lambda-Trigger übergibt den nächsten Aufforderungstyp im Metadatenparameter der Aufforderung.
+ Die `VerifyAuthChallengeResponse`-Lambda-Funktion bewertet die Antwort und gibt einen booleschen Wert zurück, der angibt, ob die Antwort gültig war.

Ein benutzerdefinierter Authentifizierungsablauf kann auch eine Kombination aus integrierten Aufforderungen, z. B. SRP-Passwortverifizierung und MFA via SMS verwenden. Er kann auch benutzerdefinierte Aufforderungen wie CAPTCHA oder geheime Fragen verwenden.

### Verwenden der SRP-Passwortverifizierung im benutzerdefinierten Authentifizierungsablauf
<a name="Using-SRP-password-verification-in-custom-authentication-flow"></a>

Wenn Sie SRP in einen benutzerdefinierten Authentifizierungsablauf einbeziehen möchten, müssen Sie mit SRP beginnen.
+ Um die SRP-Passwortüberprüfung in einem benutzerdefinierten Ablauf zu initiieren, ruft die App `InitiateAuth` mit `CUSTOM_AUTH` als `Authflow` auf. Die Anfrage Ihrer App enthält in der `AuthParameters`-Karte `SRP_A:` (den SRP-A-Wert) und `CHALLENGE_NAME: SRP_A`.
+ Der `CUSTOM_AUTH`-Ablauf ruft den `DefineAuthChallenge`-Lambda-Auslöser mit einer anfänglichen Sitzung von `challengeName: SRP_A` und `challengeResult: true` auf. Ihre Lambda-Funktion antwortet mit `challengeName: PASSWORD_VERIFIER`, `issueTokens: false` und `failAuthentication: false`.
+  Die App muss als Nächstes `RespondToAuthChallenge` mit `challengeName: PASSWORD_VERIFIER` und die anderen Parameter aufrufen, die für SRP in der `challengeResponses`-Zuordnung erforderlich sind. 
+ Wenn Amazon Cognito das Passwort verifiziert, wird `RespondToAuthChallenge` den `DefineAuthChallenge`-Lambda-Auslöser mit einer zweiten Sitzung von `challengeName: PASSWORD_VERIFIER` und `challengeResult: true` aufrufen. Nun kann der Lambda-Auslöser `DefineAuthChallenge` mit `challengeName: CUSTOM_CHALLENGE` reagieren, um die benutzerdefinierte Aufforderung zu starten.
+ Wenn MFA für einen Benutzer aktiviert ist und Amazon Cognito das Passwort überprüft hat, wird Ihr Benutzer aufgefordert, die Einrichtung oder Anmeldung mit MFA vorzunehmen.

**Anmerkung**  
Die von Amazon Cognito gehostete Anmeldewebseite kann [Lambda-Auslöser für benutzerdefinierte Authentifizierungsaufforderungen](user-pool-lambda-challenge.md) nicht aktivieren.

Weitere Informationen zu den Lambda-Auslösern, einschließlich Beispielcode, finden Sie unter [Anpassen von Benutzerpool-Workflows mit Lambda-Auslösern](cognito-user-pools-working-with-lambda-triggers.md).

## Ablauf der Authentifizierung für die Benutzermigration
<a name="amazon-cognito-user-pools-user-migration-authentication-flow"></a>

Ein Lambda-Auslöser für die Benutzermigration hilft bei der Migration von Benutzern aus einem Legacy-Benutzerverwaltungssystem in Ihren Benutzerpool. Wenn Sie den `USER_PASSWORD_AUTH`-Authentifizierungsablauf auswählen, müssen Benutzer ihre Passwörter während der Benutzermigration nicht zurücksetzen. Dieser Ablauf sendet während der Authentifizierung die Passwörter Ihrer Benutzer über eine verschlüsselte SSL-Verbindung an den Service.

Wenn Sie alle Ihre Benutzer migriert haben, wechseln Sie zu dem sichereren SRP-Ablauf. Der SRP-Ablauf sendet keine Passwörter über das Netzwerk.

Weitere Informationen zu Lambda-Auslösern finden Sie unter [Anpassen von Benutzerpool-Workflows mit Lambda-Auslösern](cognito-user-pools-working-with-lambda-triggers.md).

Weitere Informationen über die Migration von Benutzern über einen Lambda-Auslöser finden Sie unter [Importieren von Benutzern mit einem Lambda-Auslöser für die Benutzermigration](cognito-user-pools-import-using-lambda.md).

# Autorisierungsmodelle für die API- und SDK-Authentifizierung
<a name="authentication-flows-public-server-side"></a>

Wenn Sie mit der Entwicklung Ihrer Anwendung mit Benutzerpool-Authentifizierung beginnen, müssen Sie sich für das API-Autorisierungsmodell entscheiden, das zu Ihrem Anwendungstyp passt. Ein Autorisierungsmodell ist ein System zur Autorisierung für Anfragen mit den Authentifizierungskomponenten in den API- und SDK-Integrationen der Amazon Cognito Cognito-Benutzerpools. Amazon Cognito hat drei Autorisierungsmodelle: IAM-autorisiert, öffentlich und tokenautorisiert.

Bei IAM-autorisierten Anfragen erfolgt die Autorisierung anhand einer Signatur anhand einer Reihe von AWS IAM-Anmeldeinformationen im Header einer Anfrage. `Authorization` Bei serverseitigen Anwendungen schützt diese Vorgehensweise Authentifizierungsvorgänge mit IAM-Autorisierung. Bei öffentlichen (nicht authentifizierten) Authentifizierungsanfragen ist keine Autorisierung erforderlich. Dies eignet sich für clientseitige Anwendungen, die an Benutzer verteilt werden. Bei tokenautorisierten Vorgängen, die in der Regel in Kombination mit öffentlichen Vorgängen implementiert werden, erfolgt die Autorisierung über ein Sitzungstoken oder ein Zugriffstoken, das im Header der `Authorization` Anfrage enthalten ist. Die Amazon Cognito Cognito-Authentifizierung erfordert in der Regel, dass Sie zwei oder mehr API-Operationen nacheinander implementieren. Die von Ihnen verwendeten API-Operationen hängen von den Eigenschaften Ihrer Anwendung ab. Öffentliche Clients, bei denen die Anwendung an Benutzer verteilt wird, verwenden öffentliche Operationen, bei denen Anmeldeanfragen keine Autorisierung erfordern. Mit Tokens autorisierte Operationen setzen die Benutzersitzungen in öffentlichen Anwendungen fort. Serverseitige Clients, bei denen die Anwendungslogik auf einem Remotesystem gehostet wird, schützen Authentifizierungsvorgänge mit IAM-Autorisierung für Anmeldeanfragen. Die folgenden API-Operationspaare und ihre entsprechenden SDK-Methoden sind den verfügbaren Autorisierungsmodellen zugeordnet.

Jeder öffentliche Authentifizierungsvorgang hat irgendein serverseitiges Äquivalent, zum Beispiel [UpdateUserAttributes](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserAttributes.html)und [AdminUpdateUserAttributes](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminUpdateUserAttributes.html). Während clientseitige Operationen vom Benutzer initiiert werden und eine Bestätigung erfordern, gehen serverseitige Operationen davon aus, dass die Änderung von einem Benutzerpooladministrator festgeschrieben wurde und die Änderungen sofort wirksam werden. In diesem Beispiel sendet Amazon Cognito eine Nachricht mit einem Bestätigungscode an den Benutzer, und das Zugriffstoken des Benutzers autorisiert eine [VerifyUserAttribute](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_VerifyUserAttribute.html)Anfrage, die den Code sendet. Die serverseitige Anwendung kann sofort den Wert eines beliebigen Attributs festlegen. Allerdings [gelten bei der Änderung des Werts von E-Mail-Adressen und Telefonnummern, wenn diese für die Anmeldung verwendet werden, besondere Überlegungen](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminUpdateUserAttributes.html#CognitoUserPools-AdminUpdateUserAttributes-request-UserAttributes).

Einen Vergleich der API-Authentifizierung und eine vollständige Liste der API-Operationen und ihrer Autorisierungsmodelle finden Sie unter. [Grundlegendes zur Authentifizierung über API, OIDC und verwaltete Anmeldeseiten](#user-pools-API-operations)

------
#### [ Client-side (public) authentication ]

Im Folgenden finden Sie eine typische Abfolge von Anfragen in einer clientseitigen Anwendung

1. Bei der öffentlichen [InitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html)Operation werden primäre Anmeldeinformationen wie ein Benutzername und ein Passwort übermittelt.

1. Der tokenautorisierte [RespondToAuthChallenge](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_RespondToAuthChallenge.html)Vorgang sendet ein *Sitzungstoken* aus der `InitiateAuth` Antwort und der Antwort auf eine Herausforderung, z. B. MFA. Die Autorisierung mit Sitzungstoken weist auf Anfragen hin, die Teil von Authentifizierungszyklen sind. not-yet-complete

1. Der durch das Token autorisierte [ConfirmDevice](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ConfirmDevice.html)Vorgang sendet ein *Zugriffstoken* und führt den Schreibvorgang durch, bei dem ein Gerät, an das man sich erinnert, zum Benutzerprofil hinzugefügt wird. Die Autorisierung mit Zugriffstoken weist auf Anfragen hin, die sich auf Self-Service-Operationen von Benutzern beziehen, nachdem diese die Authentifizierung abgeschlossen haben.

Weitere Informationen erhalten Sie unter [Optionen für die clientseitige Authentifizierung](#amazon-cognito-user-pools-client-side-authentication-flow) und [Grundlegendes zur Authentifizierung über API, OIDC und verwaltete Anmeldeseiten](#user-pools-API-operations).

------
#### [ Server-side authentication ]

Im Folgenden finden Sie eine typische Abfolge von Anfragen aus einem serverseitigen Vorgang. Jede Anfrage hat einen [AWS Signature Version 4-Autorisierungsheader](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html), der mit IAM-Computeranmeldeinformationen signiert ist, die an den Anwendungsserver ausgegeben wurden.

1. Der [AdminInitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html)Vorgang übermittelt primäre Anmeldeinformationen wie einen Benutzernamen und ein Passwort.

1. [AdminRespondToAuthChallenge](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminRespondToAuthChallenge.html)Operation reicht die Antwort auf eine Herausforderung ein, zum Beispiel MFA.

1. Bei diesem [AdminUpdateDeviceStatus](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminUpdateDeviceStatus.html)Vorgang wird der Geräteschlüssel aus der `AdminInitiateAuth` [Antwort auf den gespeicherten Wert gesetzt](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html#API_AdminInitiateAuth_ResponseSyntax).

Weitere Informationen erhalten Sie unter [Serverseitige Authentifizierungsoptionen](#amazon-cognito-user-pools-server-side-authentication-flow) und [Grundlegendes zur Authentifizierung über API, OIDC und verwaltete Anmeldeseiten](#user-pools-API-operations).

------

Ein Benutzer führt die Authentifizierung durch Beantwortung aufeinanderfolgender Eingabeaufforderungen durch, bis die Authentifizierung entweder fehlschlägt oder Amazon Cognito Token für den Benutzer ausgestellt. Sie können diese Schritte mit Amazon Cognito in einem Prozess wiederholen, der verschiedene Aufforderungen zur Unterstützung benutzerdefinierter Authentifizierungsabläufe beinhaltet.

**Topics**
+ [Serverseitige Authentifizierungsoptionen](#amazon-cognito-user-pools-server-side-authentication-flow)
+ [Optionen für die clientseitige Authentifizierung](#amazon-cognito-user-pools-client-side-authentication-flow)
+ [Grundlegendes zur Authentifizierung über API, OIDC und verwaltete Anmeldeseiten](#user-pools-API-operations)
+ [Liste der API-Operationen, gruppiert nach Autorisierungsmodell](#user-pool-apis-auth-unauth)

## Serverseitige Authentifizierungsoptionen
<a name="amazon-cognito-user-pools-server-side-authentication-flow"></a>

Webanwendungen und andere *serverseitige* Anwendungen implementieren die Authentifizierung auf einem Remoteserver, den ein Client in eine Remote-Display-Anwendung wie einen Browser oder eine SSH-Sitzung lädt. Serverseitige Anwendungen weisen in der Regel die folgenden Merkmale auf.
+ Sie sind in einer Anwendung integriert, die auf einem Server in Sprachen wie Java, Ruby oder Node.js installiert ist.
+ Sie stellen eine Verbindung zu [Benutzerpool-App-Clients](user-pool-settings-client-apps.md) her, die möglicherweise über ein geheimes Client-Geheimnis verfügen, die als *vertrauliche Clients* bezeichnet werden.
+ Sie haben Zugriff auf AWS Anmeldeinformationen.
+ Sie rufen die [verwaltete Anmeldung](cognito-user-pools-managed-login.md) zur Authentifizierung auf oder verwenden IAM-autorisierte Operationen in der Benutzerpools-API mit einem SDK. AWS 
+ Sie bedienen interne Kunden und können öffentliche Kunden bedienen.

Bei serverseitigen Vorgängen mit der Benutzerpools-API können Passwörter, Einmalkennwörter oder Hauptschlüssel als primärer Anmeldefaktor verwendet werden. Für serverseitige Apps ist die Benutzerpoolauthentifizierung mit der Authentifizierung für clientseitige Apps vergleichbar, mit Ausnahme von Folgendem:
+ Die serverseitige App stellt eine API-Anfrage. [AdminInitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html) Für diesen Vorgang sind AWS Anmeldeinformationen mit Berechtigungen wie `cognito-idp:AdminInitiateAuth` und `cognito-idp:AdminRespondToAuthChallenge` erforderlich. Der Vorgang gibt die erforderliche Abfrage oder das erforderliche Authentifizierungsergebnis zurück.
+ Wenn die Anwendung eine Anfrage erhält, stellt sie eine [AdminRespondToAuthChallenge](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminRespondToAuthChallenge.html)API-Anfrage. Für den `AdminRespondToAuthChallenge` API-Vorgang sind auch AWS Anmeldeinformationen erforderlich.

Weitere Informationen zum Signieren von Amazon Cognito Cognito-API-Anfragen mit AWS Anmeldeinformationen finden Sie unter [Signaturprozess für Signature Version 4](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) in der *AWS Allgemeinen Referenz.*

In der `AdminInitiateAuth`-Antwort `ChallengeParameters` enthält das Attribut `USER_ID_FOR_SRP` – sofern vorhanden – den tatsächlichen Benutzernamen des Benutzers und keinen Alias (wie etwa E-Mail-Adresse oder Telefonnummer). In dem Aufruf an `AdminRespondToAuthChallenge` in den `ChallengeResponses` müssen Sie diesen Benutzernamen im Parameter `USERNAME` übergeben. 

**Anmerkung**  
Da Backend-Admin-Implementierungen den Admin-Authentifizierungsablauf verwenden, unterstützt der Flow keine gespeicherten Geräte. Wenn Sie die Geräteverfolgung aktiviert haben, ist die Administratorauthentifizierung erfolgreich, aber jeder Aufruf zum Aktualisieren des Zugriffstokens schlägt fehl.

## Optionen für die clientseitige Authentifizierung
<a name="amazon-cognito-user-pools-client-side-authentication-flow"></a>

Mobile Apps und andere *clientseitige* Anwendungstypen werden auf den Geräten der Benutzer installiert und führen die Logik der Authentifizierung und der Benutzeroberfläche lokal aus. Sie weisen in der Regel die folgenden Eigenschaften auf.
+ Sie sind in Sprachen wie React Native, Flutter und Swift erstellt und auf Benutzergeräten bereitgestellt.
+ Sie stellen eine Verbindung zu [App-Clients](user-pool-settings-client-apps.md) für Benutzerpools her, die kein geheimes Client-Geheimnis haben, die als *öffentliche Clients* bezeichnet werden.
+ Sie haben keinen Zugriff auf AWS Anmeldeinformationen, die IAM-autorisierte API-Anfragen autorisieren würden.
+ Sie rufen die [verwaltete Anmeldung](cognito-user-pools-managed-login.md) zur Authentifizierung auf oder verwenden öffentliche und tokenautorisierte Operationen in der Benutzerpools-API mit einem SDK. AWS 
+ Sie bedienen öffentliche Kunden und ermöglichen es jedem, sich zu registrieren und anzumelden.

Bei clientseitigen Vorgängen mit der Benutzerpools-API können Passwörter, Einmalpasswörter oder Hauptschlüssel als primärer Anmeldefaktor verwendet werden. Der folgende Vorgang funktioniert für clientseitige Benutzer-Apps, die Sie mit oder dem erstellen. [AWS Amplify[AWS SDKs](https://aws.amazon.com/developer/tools/)](https://docs.amplify.aws/javascript/start/getting-started/)

1. Der Benutzer gibt den Benutzernamen und das Passwort in der App ein.

1. Die App ruft die `InitiateAuth`-Operation mit dem Benutzernamen und den SRP-Details (Secure Remote Password) des Benutzers auf.

   Diese API-Operation gibt die Authentifizierungsparameter zurück.
**Anmerkung**  
Die App generiert SRP-Details mit den integrierten Amazon Cognito SRP-Funktionen. AWS SDKs

1. Die App ruft die `RespondToAuthChallenge`-Operation auf. Wenn der Aufruf erfolgreich ist, gibt Amazon Cognito die Token des Benutzers zurück. Damit ist der Authentifizierungsablauf abgeschlossen.

   Wenn Amazon Cognito eine weitere Abfrage erfordert, gibt der Aufruf von `RespondToAuthChallenge` keine Token zurück. Stattdessen gibt der Aufruf eine Sitzung zurück.

1. Wenn `RespondToAuthChallenge` eine Sitzung zurückgibt, ruft die App `RespondToAuthChallenge` erneut auf, dieses Mal mit der Sitzung und der Abfrageantwort (z. B. MFA-Code).

## Grundlegendes zur Authentifizierung über API, OIDC und verwaltete Anmeldeseiten
<a name="user-pools-API-operations"></a>

Amazon Cognito Cognito-Benutzerpools sind eine Kombination aus mehreren Authentifizierungstechnologien. Sie verlassen sich auf externe Identitätsanbieter (IdPs). Sie sind IdPs für Anwendungen vorgesehen, die die Authentifizierung mit OpenID Connect (OIDC) implementieren. SDKs Sie ermöglichen die Authentifizierung als Aussteller von JSON-Web-Tokens (JWTs), ähnlich der OIDC-Authentifizierung, jedoch in API-Methoden, die Teil von sind. AWS SDKs Sie können auch sichere Zugangspunkte für Ihre Anwendungen sein.

Für die Registrierung, Anmeldung und Verwaltung von Benutzern in Ihrem Benutzerpool haben Sie zwei Möglichkeiten. 

1. Ihre *verwalteten Anmeldeseiten* und die klassische *gehostete Benutzeroberfläche* umfassen die [benutzerinteraktiven Endpunkte für die verwaltete Anmeldung und die Verbundendpunkte](managed-login-endpoints.md)[, die IdP- und Rely-Party-Rollen](federation-endpoints.md) verwalten. Sie bilden ein Paket öffentlicher Webseiten, das Amazon Cognito aktiviert, wenn Sie [eine Domain für Ihren Benutzerpool auswählen](cognito-user-pools-assign-domain.md). Für einen schnellen Einstieg in die Authentifizierungs- und Autorisierungsfunktionen der Amazon Cognito Cognito-Benutzerpools, einschließlich Seiten für Registrierung, Anmeldung, Passwortverwaltung und Multi-Faktor-Authentifizierung (MFA), verwenden Sie die integrierte Benutzeroberfläche von Managed Login.

   Die anderen Endpunkte des Benutzerpools erleichtern die Authentifizierung bei externen Identitätsanbietern (). IdPs Die von ihnen erbrachten Dienstleistungen beinhalten Folgendes.

   1. Callback-Endpunkte von Dienstanbietern für authentifizierte Ansprüche von Ihnen, wie und. IdPs `saml2/idpresponse` `oauth2/idpresponse` Wenn Amazon Cognito ein Zwischendienstanbieter (SP) zwischen Ihrer App und Ihrem IdP ist, repräsentieren die Callback-Endpunkte den Service.

   1. Endpunkte, die Informationen über Ihre Umgebung bereitstellen, wie `oauth2/userInfo` und `/.well-known/jwks.json`. Ihre App verwendet diese Endpunkte, wenn sie Token verifiziert oder Benutzerprofildaten mit OIDC- oder 2.0-Entwicklerbibliotheken abruft. OAuth 

1. Die [Amazon Cognito Cognito-Benutzerpools-API](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/Welcome.html) ist eine Reihe von Tools für Ihre Web- oder Mobil-App, mit der Sie Benutzer authentifizieren können, nachdem sie Anmeldeinformationen in Ihrem eigenen benutzerdefinierten Frontend gesammelt hat. Die API-Authentifizierung für Benutzerpools erzeugt die folgenden JSON-Web-Token.

   1. Ein Identitäts-Token mit überprüfbaren Attributansprüchen Ihres Benutzers.

   1. Ein Zugriffs-Token, das Ihren Benutzer autorisiert, über Token autorisierte API-Anfragen für einen [AWS -Service-Endpunkt zu erstellen](https://docs.aws.amazon.com/general/latest/gr/cognito_identity.html).
**Anmerkung**  
Zugriffstoken aus der Benutzerpool-API-Authentifizierung enthalten standardmäßig nur den `aws.cognito.signin.user.admin`-Bereich. Um ein Zugriffstoken mit zusätzlichen Bereichen zu generieren, um beispielsweise eine Anfrage an eine Drittanbieter-API zu autorisieren, fragen Sie bei der Authentifizierung über Ihre Benutzerpool-Endpunkte Bereiche an oder fügen Sie in einer [Lambda-Auslöser für die Vorab-Generierung von Token](user-pool-lambda-pre-token-generation.md) benutzerdefinierte Bereiche hinzu. Die Anpassung des Zugriffstokens erhöht Ihre Rechnung um zusätzliche Kosten. AWS 

   1. Ein Aktualisierungstoken, das Anfragen nach neuen IDs und Zugriffstoken autorisiert und die Eigenschaften der Benutzeridentität und der Zugriffskontrolle aktualisiert.

Sie können einen Verbundbenutzer, der sich normalerweise über die Benutzerpool-Endpunkte anmelden würde, mit einem Benutzer verknüpfen, dessen Profil in Ihrem Benutzerpool *lokal* ist. Ein lokaler Benutzer existiert ausschließlich in Ihrem Benutzerpool-Verzeichnis ohne Verbund über einen externen IdP. Wenn Sie ihre föderierte Identität in einer [AdminLinkProviderForUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminLinkProviderForUser.html)API-Anfrage mit einem lokalen Benutzer verknüpfen, kann sich dieser mit der Benutzerpools-API anmelden. Weitere Informationen finden Sie unter [Verknüpfen von Verbundbenutzern mit einem vorhandenen Benutzerprofil](cognito-user-pools-identity-federation-consolidate-users.md).

Die Amazon-Cognito-Benutzerpool-API hat zwei Verwendungszwecke.

1. Sie erstellt und konfiguriert die Ressourcen für Ihre Amazon-Cognito-Benutzerpools. Sie können beispielsweise Benutzerpools erstellen, AWS Lambda Auslöser hinzufügen und die Benutzerpool-Domain konfigurieren, die Ihre verwalteten Anmeldeseiten hostet.

1. Es führt Registrierungs-, Anmelde- und andere Benutzervorgänge für lokale und verknüpfte Benutzer durch.

**Beispielszenario unter Verwendung der Amazon-Cognito-Benutzerpool-API**

1. Ihr Benutzer wählt die Schaltfläche zum Erstellen eines Kontos aus, die Sie in Ihrer App erstellt haben. Der Benutzer gibt eine E-Mail-Adresse und ein Passwort ein.

1. Ihre App sendet eine [SignUp](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SignUp.html)API-Anfrage und erstellt einen neuen Benutzer in Ihrem Benutzerpool.

1. Ihre App fordert den Benutzer zur Eingabe eines E-Mail-Bestätigungscodes auf. Der Benutzer gibt den Code ein, den er in einer E-Mail-Nachricht erhalten hat.

1. Ihre App sendet eine [ConfirmSignUp](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ConfirmSignUp.html)API-Anfrage mit dem Bestätigungscode des Benutzers.

1. Ihre App fordert den Benutzer zur Eingabe seines Benutzernamens und Passworts auf und der Benutzer gibt die Informationen ein.

1. Ihre App sendet eine [InitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html)API-Anfrage und speichert ein ID-Token, ein Zugriffstoken und ein Aktualisierungstoken. Ihre App ruft OIDC-Bibliotheken auf, um die Tokens Ihres Benutzers zu verwalten und eine dauerhafte Sitzung für diesen Benutzer zu unterhalten.

In der Amazon-Cognito-Benutzerpool-API können Sie keine Benutzer anmelden, die über einen IdP verbunden sind. Diese Benutzer müssen Sie über Ihre Benutzerpool-Endpunkte authentifizieren. Weitere Informationen zu den Benutzerpool-Endpunkten, die eine verwaltete Anmeldung beinhalten, finden Sie unter[Benutzerpool-Endpunkte und Referenz für verwaltete Logins](cognito-userpools-server-contract-reference.md).

Ihre Verbundbenutzer können mit der verwalteten Anmeldung beginnen und ihren IdP auswählen, oder Sie können die verwaltete Anmeldung überspringen und Ihre Benutzer zur Anmeldung direkt an Ihren IdP senden. Wenn Ihre API-Anforderung an den [Autorisieren des Endpunkts](authorization-endpoint.md) einen IdP-Parameter enthält, leitet Amazon Cognito Ihren Benutzer im Hintergrund auf die Anmeldeseite des IdP weiter.

**Beispielszenario mit verwalteten Anmeldeseiten**

1. Ihr Benutzer wählt die Schaltfläche zum Erstellen eines Kontos aus, die Sie in Ihrer App erstellt haben.

1. Bei der verwalteten Anmeldung wird Ihrem Benutzer eine Liste der Anbieter für soziale Identitäten angezeigt, für die Sie Entwickleranmeldedaten registriert haben. Der Benutzer entscheidet sich für Apple.

1. Ihre App leitet eine Anforderung an den [Autorisieren des Endpunkts](authorization-endpoint.md) mit dem Anbieternamen `SignInWithApple` ein.

1. Der Browser Ihres Benutzers öffnet die Apple-Authentifizierungsseite. Ihr Benutzer meldet sich an und autorisiert Amazon Cognito, seine Profilinformationen zu lesen.

1. Amazon Cognito bestätigt das Apple-Zugriffstoken und fragt das Apple-Profil des Benutzers ab.

1. Der Benutzer präsentiert Ihrer App einen Amazon-Cognito-Autorisierungscode.

1. Die OIDC-Bibliothek in Ihrer Anwendung tauscht den Autorisierungscode mit dem aus [Token-Endpunkt](token-endpoint.md) und speichert ein vom Benutzerpool ausgestelltes ID-Token, Zugriffstoken und Aktualisierungstoken. Ihre App verwendet OIDC-Bibliotheken, um die Token Ihrer Benutzer zu verwalten und eine dauerhafte Sitzung für diesen Benutzer aufrechtzuerhalten.

Die Benutzerpools-API und die verwalteten Anmeldeseiten unterstützen eine Vielzahl von Szenarien, die in diesem Handbuch beschrieben werden. In den folgenden Abschnitten erörtern wir, wie sich die Benutzerpool-API weiter in Klassen unterteilt, die Ihre Anforderungen in Bezug auf die Anmeldung, Registrierung und Ressourcenverwaltung unterstützen.

## Liste der API-Operationen, gruppiert nach Autorisierungsmodell
<a name="user-pool-apis-auth-unauth"></a>

Die Amazon-Cognito-Benutzerpool-API, die eine Schnittstelle für die Ressourcenverwaltung sowie eine Authentifizierungs- und Autorisierungsschnittstelle für Benutzer bildet, kombiniert die folgenden Autorisierungsmodelle bei ihren Operationen. Je nach API-Operation müssen Sie möglicherweise eine Autorisierung mit IAM-Anmeldeinformationen, einem Zugriffstoken, einem Sitzungstoken, einem Client-Schlüssel oder einer Kombination davon vornehmen. Für viele Operationen zur Authentifizierung und Autorisierung von Benutzern haben Sie die Wahl zwischen authentifizierten und nicht authentifizierten Versionen der Anforderung. Nicht authentifizierte Operationen sind eine bewährte Sicherheitsmethode für Apps, die Sie an Ihre Benutzer verteilen, z. B. mobile Apps. Dabei müssen Sie keine geheimen Schlüssel in Ihren Code aufnehmen.

Sie können Berechtigungen in IAM-Richtlinien nur für [Von IAM autorisierte Verwaltungsvorgänge](#user-pool-apis-auth-unauth-sigv4-management) und [IAM-autorisierte Benutzeroperationen](#user-pool-apis-auth-unauth-sigv4-user) zuweisen.

### Von IAM autorisierte Verwaltungsvorgänge
<a name="user-pool-apis-auth-unauth-sigv4-management"></a>

Von IAM autorisierte Verwaltungsvorgänge ändern und zeigen Ihren Benutzerpool und die App-Client-Konfiguration an, wie Sie es in der tun würden. AWS-Managementkonsole

Um beispielsweise Ihren Benutzerpool in einer [UpdateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPool.html)API-Anfrage zu ändern, müssen Sie AWS Anmeldeinformationen und IAM-Berechtigungen angeben, um die Ressource zu aktualisieren.

Um diese Anfragen im AWS Command Line Interface (AWS CLI) oder einem AWS SDK zu autorisieren, konfigurieren Sie Ihre Umgebung mit Umgebungsvariablen oder einer Client-Konfiguration, die Ihrer Anfrage IAM-Anmeldeinformationen hinzufügt. Weitere Informationen finden Sie unter [Zugreifen AWS mit Ihren AWS Anmeldeinformationen](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys) in der. *Allgemeine AWS-Referenz* Sie können auch Anforderungen direkt an die [Service-Endpunkte](https://docs.aws.amazon.com/general/latest/gr/cognito_identity.html) für die Benutzerpool-API von Amazon Cognito senden. Sie müssen diese Anfragen mit AWS Anmeldeinformationen autorisieren oder *signieren*, die Sie in die Kopfzeile Ihrer Anfrage einbetten. Weitere Informationen finden Sie unter [AWS API-Anfragen signieren](https://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html).


| Von IAM autorisierte Verwaltungsvorgänge | 
| --- |
| [AddCustomAttributes](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AddCustomAttributes.html) | 
| [CreateGroup](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateGroup.html) | 
| [CreateIdentityProvider](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateIdentityProvider.html) | 
| [CreateResourceServer](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateResourceServer.html) | 
| [CreateUserImportJob](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserImportJob.html) | 
| [CreateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html) | 
| [CreateUserPoolClient](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPoolClient.html) | 
| [CreateUserPoolDomain](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPoolDomain.html) | 
| [DeleteGroup](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_DeleteGroup.html) | 
| [DeleteIdentityProvider](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_DeleteIdentityProvider.html) | 
| [DeleteResourceServer](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_DeleteResourceServer.html) | 
| [DeleteUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_DeleteUserPool.html) | 
| [DeleteUserPoolClient](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_DeleteUserPoolClient.html) | 
| [DeleteUserPoolDomain](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_DeleteUserPoolDomain.html) | 
| [DescribeIdentityProvider](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_DescribeIdentityProvider.html) | 
| [DescribeResourceServer](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_DescribeResourceServer.html) | 
| [DescribeRiskConfiguration](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_DescribeRiskConfiguration.html) | 
| [DescribeUserImportJob](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_DescribeUserImportJob.html) | 
| [DescribeUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_DescribeUserPool.html) | 
| [DescribeUserPoolClient](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_DescribeUserPoolClient.html) | 
| [DescribeUserPoolDomain](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_DescribeUserPoolDomain.html) | 
| [Holen CSVHeader](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GetCSVHeader.html) | 
| [GetGroup](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GetGroup.html) | 
| [GetIdentityProviderByIdentifier](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GetIdentityProviderByIdentifier.html) | 
| [GetSigningCertificate](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GetSigningCertificate.html) | 
| [Holen UICustomization](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GetUICustomization.html) | 
| [GetUserPoolMfaConfig](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GetUserPoolMfaConfig.html) | 
| [ListGroups](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ListGroups.html) | 
| [ListIdentityProviders](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ListIdentityProviders.html) | 
| [ListResourceServers](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ListResourceServers.html) | 
| [ListTagsForResource](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ListTagsForResource.html) | 
| [ListUserImportJobs](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ListUserImportJobs.html) | 
| [ListUserPoolClients](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ListUserPoolClients.html) | 
| [ListUserPools](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ListUserPools.html) | 
| [ListUsers](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ListUsers.html) | 
| [ListUsersInGroup](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ListUsersInGroup.html) | 
| [SetRiskConfiguration](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SetRiskConfiguration.html) | 
| [Set UICustomization](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SetUICustomization.html) | 
| [SetUserPoolMfaConfig](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SetUserPoolMfaConfig.html) | 
| [StartUserImportJob](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_StartUserImportJob.html) | 
| [StopUserImportJob](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_StopUserImportJob.html) | 
| [TagResource](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_TagResource.html) | 
| [UntagResource](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UntagResource.html) | 
| [UpdateGroup](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateGroup.html) | 
| [UpdateIdentityProvider](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateIdentityProvider.html) | 
| [UpdateResourceServer](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateResourceServer.html) | 
| [UpdateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPool.html) | 
| [UpdateUserPoolClient](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPoolClient.html) | 
| [UpdateUserPoolDomain](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPoolDomain.html) | 

### IAM-autorisierte Benutzeroperationen
<a name="user-pool-apis-auth-unauth-sigv4-user"></a>

IAM-autorisierte Benutzeroperationen: Registrierung, Anmeldung, Verwaltung der Anmeldeinformationen, Änderung und Anzeige Ihrer Benutzer. 

Sie können beispielsweise eine serverseitige Anwendungsebene haben, die ein Web-Frontend unterstützt. Ihre serverseitige App ist ein OAuth vertraulicher Client, dem Sie privilegierten Zugriff auf Ihre Amazon Cognito Cognito-Ressourcen anvertrauen. Um einen Benutzer in der App zu registrieren, kann Ihr Server AWS Anmeldeinformationen in eine [AdminCreateUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminCreateUser.html)API-Anfrage aufnehmen. Weitere Informationen zu OAuth Clienttypen finden Sie unter [Clienttypen](https://www.rfc-editor.org/rfc/rfc6749#section-2.1) in *The OAuth 2.0 Authorization Framework*.

Um diese Anfragen im AWS CLI oder einem AWS SDK zu autorisieren, konfigurieren Sie Ihre serverseitige App-Umgebung mit Umgebungsvariablen oder einer Client-Konfiguration, die Ihrer Anfrage IAM-Anmeldeinformationen hinzufügt. Weitere Informationen finden Sie unter [Zugreifen AWS mit Ihren AWS Anmeldeinformationen](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys) in der. *Allgemeine AWS-Referenz* Sie können auch Anforderungen direkt an die [Service-Endpunkte](https://docs.aws.amazon.com/general/latest/gr/cognito_identity.html) für die Benutzerpool-API von Amazon Cognito senden. Sie müssen diese Anfragen mit AWS Anmeldeinformationen autorisieren oder *signieren*, die Sie in die Kopfzeile Ihrer Anfrage einbetten. Weitere Informationen finden Sie unter [AWS API-Anfragen signieren](https://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html).

Wenn Ihr App-Client über einen geheimen Client-Schlüssel verfügt, müssen Sie Ihre IAM-Anmeldeinformationen und, je nach Operation, den Parameter `SecretHash` oder den Wert `SECRET_HASH` in `AuthParameters` angeben. Weitere Informationen finden Sie unter [Berechnen von Werten für geheime Hashes](signing-up-users-in-your-app.md#cognito-user-pools-computing-secret-hash).


| IAM-autorisierte Benutzeroperationen | 
| --- |
| [AdminAddUserToGroup](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminAddUserToGroup.html) | 
| [AdminConfirmSignUp](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminConfirmSignUp.html) | 
| [AdminCreateUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminCreateUser.html) | 
| [AdminDeleteUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminDeleteUser.html) | 
| [AdminDeleteUserAttributes](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminDeleteUserAttributes.html) | 
| [AdminDisableProviderForUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminDisableProviderForUser.html) | 
| [AdminDisableUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminDisableUser.html) | 
| [AdminEnableUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminEnableUser.html) | 
| [AdminForgetDevice](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminForgetDevice.html) | 
| [AdminGetDevice](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminGetDevice.html) | 
| [AdminGetUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminGetUser.html) | 
| [AdminInitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html) | 
| [AdminLinkProviderForUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminLinkProviderForUser.html) | 
| [AdminListDevices](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminListDevices.html) | 
| [AdminListGroupsForUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminListGroupsForUser.html) | 
| [AdminListUserAuthEvents](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminListUserAuthEvents.html) | 
| [AdminRemoveUserFromGroup](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminRemoveUserFromGroup.html) | 
| [AdminResetUserPassword](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminResetUserPassword.html) | 
| [AdminRespondToAuthChallenge](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminRespondToAuthChallenge.html) | 
| [AdminSetUserMFAPreference](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminSetUserMFAPreference.html) | 
| [AdminSetUserPassword](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminSetUserPassword.html) | 
| [AdminSetUserSettings](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminSetUserSettings.html) | 
| [AdminUpdateAuthEventFeedback](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminUpdateAuthEventFeedback.html) | 
| [AdminUpdateDeviceStatus](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminUpdateDeviceStatus.html) | 
| [AdminUpdateUserAttributes](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminUpdateUserAttributes.html) | 
| [AdminUserGlobalSignOut](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminUserGlobalSignOut.html) | 

### Nicht authentifizierte Benutzeroperationen
<a name="user-pool-apis-auth-unauth-unauth"></a>

Nicht authentifizierte Benutzeroperationen können zur Registrierung und Anmeldung Ihrer Benutzer sowie zum Zurücksetzen des Passworts der Benutzer genutzt werden. Verwenden Sie nicht authentifizierte oder *öffentliche* API-Operationen, wenn Sie möchten, dass sich jeder Internetbenutzer bei Ihrer App registrieren und anmelden kann.

Um beispielsweise einen Benutzer in Ihrer App zu registrieren, können Sie einen OAuth öffentlichen Client bereitstellen, der keinen privilegierten Zugriff auf geheime Daten gewährt. Sie können diesen Benutzer mit der API-Operation ohne Authentifizierung registrieren. [SignUp](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SignUp.html)

Um diese Anfragen in einem öffentlichen Client zu senden, den Sie mit einem AWS SDK entwickelt haben, müssen Sie keine Anmeldeinformationen konfigurieren. Sie können Anforderungen auch direkt an die [Service-Endpunkte](https://docs.aws.amazon.com/general/latest/gr/cognito_identity.html) für die Benutzerpool-API von Amazon Cognito ohne zusätzliche Autorisierung senden.

Wenn Ihr App-Client über einen geheimen Client-Schlüssel verfügt, müssen Sie je nach Operation den Parameter `SecretHash` oder den Wert `SECRET_HASH` in `AuthParameters` angeben. Weitere Informationen finden Sie unter [Berechnen von Werten für geheime Hashes](signing-up-users-in-your-app.md#cognito-user-pools-computing-secret-hash).


| Nicht authentifizierte Benutzeroperationen | 
| --- |
| [SignUp](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SignUp.html) | 
| [ConfirmSignUp](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ConfirmSignUp.html) | 
| [ResendConfirmationCode](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ResendConfirmationCode.html) | 
| [ForgotPassword](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ForgotPassword.html) | 
| [ConfirmForgotPassword](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ConfirmForgotPassword.html) | 
| [InitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html) | 

### Über Token autorisierte Benutzeroperationen
<a name="user-pool-apis-auth-unauth-token-auth"></a>

Über Token autorisierte Benutzeroperationen können zum Abmelden, Ändern und Anzeigen Ihrer Benutzer sowie zur Verwaltung der Anmeldeinformationen für Ihre Benutzer verwendet werden, nachdem sich diese angemeldet bzw. den Anmeldevorgang gestartet haben. Verwenden Sie über Token autorisierte API-Operationen, wenn Sie keine geheimen Schlüssel in Ihrer App verteilen und Anforderungen mit den eigenen Anmeldeinformationen des Benutzers autorisieren möchten. Wenn Ihr Benutzer die Anmeldung abgeschlossen hat, müssen Sie seine über Token autorisierte API-Anforderung mit einem Zugriffstoken autorisieren. Wenn sich der Benutzer gerade in einem Anmeldevorgang befindet, müssen Sie seine über Token autorisierte API-Anforderung mit einem Sitzungstoken autorisieren, das Amazon Cognito in der Antwort auf die vorherige Anforderung zurückgegeben hat.

Vielleicht möchten Sie beispielsweise in einem öffentlichen Client das Profil eines Benutzers so aktualisieren, dass der Schreibzugriff auf das eigene Profil des Benutzers beschränkt ist. Um dieses Update durchzuführen, kann Ihr Client das Zugriffstoken des Benutzers in eine [UpdateUserAttributes](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserAttributes.html)API-Anfrage aufnehmen.

Um diese Anfragen in einem öffentlichen Client zu senden, den Sie mit einem AWS SDK entwickelt haben, müssen Sie keine Anmeldeinformationen konfigurieren. Fügen Sie Ihrer Anforderung einen Parameter `AccessToken` oder `Session` hinzu. Sie können auch Anforderungen direkt an die [Service-Endpunkte](https://docs.aws.amazon.com/general/latest/gr/cognito_identity.html) für die Benutzerpool-API von Amazon Cognito senden. Um eine Anforderung an einen Service-Endpunkt zu autorisieren, fügen Sie das Zugriffs- oder Sitzungstoken in den POST-Text Ihrer Anforderung ein.

Um eine API-Anforderung für eine über Token autorisierte Operation zu signieren, fügen Sie das Zugriffs-Token als `Authorization`-Header in die Anforderung ein, und zwar im Format `Bearer <Base64-encoded access token>`.


| Über Token autorisierte Benutzeroperationen | AccessToken | Sitzung | 
| --- |--- |--- |
| [RespondToAuthChallenge](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_RespondToAuthChallenge.html) |  | ✓ | 
| [ChangePassword](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ChangePassword.html) | ✓ |  | 
| [GetUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GetUser.html) | ✓ |  | 
| [StartWebAuthnRegistration](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_StartWebAuthnRegistration.html) | ✓ |  | 
| [CompleteWebAuthnRegistration](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CompleteWebAuthnRegistration.html) | ✓ |  | 
| [DeleteWebAuthnCredential](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_DeleteWebAuthnCredential.html) | ✓ |  | 
| [ListWebAuthnCredentials](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ListWebAuthnCredentials.html) | ✓ |  | 
| [UpdateUserAttributes](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserAttributes.html) | ✓ |  | 
| [DeleteUserAttributes](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_DeleteUserAttributes.html) | ✓ |  | 
| [DeleteUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_DeleteUser.html) | ✓ |  | 
| [ConfirmDevice](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ConfirmDevice.html) | ✓ |  | 
| [ForgetDevice](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ForgetDevice.html) | ✓ |  | 
| [GetDevice](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GetDevice.html) | ✓ |  | 
| [ListDevices](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ListDevices.html) | ✓ |  | 
| [UpdateDeviceStatus](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateDeviceStatus.html) | ✓ |  | 
| [GetUserAttributeVerificationCode](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GetUserAttributeVerificationCode.html) | ✓ |  | 
| [VerifyUserAttribute](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_VerifyUserAttribute.html) | ✓ |  | 
| [SetUserSettings](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SetUserSettings.html) | ✓ |  | 
| [SetUserMFAPreference](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SetUserMFAPreference.html) | ✓ |  | 
| [GlobalSignOut](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GlobalSignOut.html) | ✓ |  | 
| [UpdateAuthEventFeedback](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateAuthEventFeedback.html) |  | ✓ | 
| [AssociateSoftwareToken](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AssociateSoftwareToken.html) | ✓ | ✓ | 
| [VerifySoftwareToken](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_VerifySoftwareToken.html) | ✓ | ✓ | 
| [RevokeToken](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_RevokeToken.html)¹ |  |  | 
| [GetTokensFromRefreshToken](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GetTokensFromRefreshToken.html)¹ |  |  | 

¹ `RevokeToken` und verwenden `GetTokensFromRefreshToken` Sie Aktualisierungstoken als Autorisierungsparameter. Das Aktualisierungstoken dient als Autorisierungstoken und als Zielressource.