

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.

# Verwalten von Reaktionen auf Fehler bei vorhandenen Benutzern
<a name="cognito-user-pool-managing-errors"></a>

Amazon Cognito unterstützt die Anpassung von Fehlerantworten, die von Benutzerpools zurückgegeben werden. Benutzerdefinierte Fehlerantworten sind für die Erstellung und Authentifizierung von Benutzern, die Passwortwiederherstellung und Bestätigung verfügbar.

Verwenden Sie die `PreventUserExistenceErrors`-Einstellung eines Benutzerpool-App-Clients, um Fehler im Zusammenhang mit der Benutzerexistenz zu aktivieren oder zu deaktivieren. Wenn Sie einen neuen App-Client mit der Amazon Cognito Cognito-Benutzerpools-API erstellen`LEGACY`, `PreventUserExistenceErrors` ist diese standardmäßig oder deaktiviert. In der Amazon Cognito Cognito-Konsole `PreventUserExistenceErrors` ist die Option **Benutzerexistenzfehler verhindern** — eine Einstellung von `ENABLED` für — standardmäßig ausgewählt. Gehen Sie wie folgt vor, um Ihre `PreventUserExistenceErrors` Konfiguration zu aktualisieren:
+ Ändern Sie den Wert `PreventUserExistenceErrors` zwischen `ENABLED` und `LEGACY` in einer [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_UpdateUserPoolClient.html)API-Anfrage.
+ Bearbeiten Sie Ihren App-Client in der Amazon Cognito Cognito-Konsole und ändern Sie den Status von **Prevent user existence errors** zwischen selected (`ENABLED`) und deselected (`LEGACY`).

Wenn diese Eigenschaft den Wert von hat`LEGACY`, gibt Ihr App-Client eine `UserNotFoundException` Fehlerantwort zurück, wenn ein Benutzer versucht, sich mit einem Benutzernamen anzumelden, der in Ihrem Benutzerpool nicht existiert.

Wenn diese Eigenschaft den Wert von hat`ENABLED`, gibt Ihr App-Client die Nichtexistenz eines Benutzerkontos in Ihrem Benutzerpool nicht mit einem `UserNotFoundException` Fehler an. Eine `PreventUserExistenceErrors` Konfiguration von `ENABLED` hat die folgenden Auswirkungen, wenn Sie eine Anfrage für einen Benutzernamen einreichen, der nicht existiert:
+ Amazon Cognito antwortet mit unspezifischen Informationen auf API-Anfragen, bei denen die Antwort andernfalls offenlegen könnte, dass ein gültiger Benutzer existiert.
+ Amazon Cognito gibt auf Anfragen mit vergessenen Passwörtern und auf Authentifizierungsanfragen mit Authentifizierungsabläufen, *außer bei wahlbasierter Authentifizierung ()`USER_AUTH`, eine generische Antwort auf Authentifizierungsfehler zurück —* [zum Beispiel](authentication-flows-selection-sdk.md#authentication-flows-selection-choice) oder. `USER_SRP_AUTH` `CUSTOM_AUTH` Die Fehlerantwort gibt an, dass der Benutzername oder das Passwort falsch ist.
+ Amazon Cognito beantwortet Anfragen nach einer wahlbasierten Authentifizierung mit einer zufälligen Auswahl aus den für den Benutzerpool zulässigen Challenge-Typen. Ihr Benutzerpool gibt möglicherweise einen Hauptschlüssel, ein Einmalpasswort oder eine Passwortabfrage zurück.
+ Das Verhalten der Amazon Cognito Cognito-Kontobestätigung und der Kennwortwiederherstellung APIs wechselt zwischen der Rückgabe einer Antwort, die besagt, dass ein Code an ein simuliertes Liefermedium gesendet wurde, und der Rückgabe eines Fehlers. `InvalidParameterException`

Die folgenden Informationen beschreiben das Verhalten von Benutzerpool-Vorgängen, wenn diese Option auf eingestellt `PreventUserExistenceErrors` ist. `ENABLED`

## Vorgänge zur Authentifizierung und Benutzererstellung
<a name="cognito-user-pool-managing-errors-user-auth"></a>

Sie können Fehlerantworten in der Benutzername-Passwort-Authentifizierung und der Secure Remote Password (SRP) -Authentifizierung konfigurieren. Sie können die Fehler, die Sie zurückgeben, auch mit der benutzerdefinierten Authentifizierung anpassen. Die wahlbasierte Authentifizierung wird von Ihrer Konfiguration nicht beeinflusst. `PreventUserExistenceErrors`Angaben zur Offenlegung der Existenz von Benutzern in Authentifizierungsabläufen

**Wahlbasierte Authentifizierung**  
Im `USER_AUTH` wahlbasierten Authentifizierungsablauf gibt Amazon Cognito je nach Konfiguration Ihres Benutzerpools und Benutzerattributen eine Anfrage anhand der verfügbaren primären Authentifizierungsfaktoren zurück. Bei diesem Authentifizierungsablauf können Abfragen wie Passwort, Secure Remote Password (SRP), WebAuthn (Passkey), SMS-Einmalpasswort (OTP) oder E-Mail-OTP zurückgegeben werden. Wenn diese Option `PreventUserExistenceErrors` aktiviert ist, fordert Amazon Cognito nicht existierende Benutzer auf, eine oder mehrere der verfügbaren Authentifizierungsformen auszufüllen. Bei `PreventUserExistenceErrors` inaktiv gibt Amazon Cognito eine `UserNotFound` Ausnahme zurück.

**Authentifizierung mit Benutzername und Passwort**  
Der Authentifizierungsfluss `ADMIN_USER_PASSWORD_AUTH` und der `PASSWORD` `USER_AUTH` Rückfluss a `NotAuthorizedException` mit der Meldung, `Incorrect username or password` wenn aktiv `PreventUserExistenceErrors` ist. `USER_PASSWORD_AUTH` Wenn inaktiv `PreventUserExistenceErrors` ist, kehren diese Flows zurück`UserNotFoundException`.

**Secure-Remote-Password-(SRP)-basierte Authentifizierung**  
Es hat sich bewährt, die Implementierung nur `PreventUserExistenceErrors` mit `USER_SRP_AUTH` oder `USER_AUTH` im `PASSWORD_SRP` Flow von Benutzerpools ohne E-Mail-Adresse, Telefonnummer oder bevorzugte [Alias-Attribute für Benutzernamen vorzunehmen](user-pool-settings-attributes.md#user-pool-settings-aliases). Benutzer mit Aliasattributen unterliegen möglicherweise nicht der Unterdrückung der Existenz von Benutzern im SRP-Authentifizierungsablauf. Benutzername-Kennwort-Authentifizierungsabläufe — `ADMIN_USER_PASSWORD_AUTH``USER_PASSWORD_AUTH`, und die `USER_AUTH` `PASSWORD` Herausforderung — verhindern vollständig die Existenz von Benutzern anhand von Aliasattributen.  
[Wenn jemand versucht, sich über SRP mit einem Benutzernamen anzumelden, der Ihrem App-Client nicht bekannt ist, gibt Amazon Cognito im ersten Schritt eine simulierte Antwort zurück, wie in RFC 5054 beschrieben.](https://tools.ietf.org/html/rfc5054#section-2.5.1.3) Amazon Cognito gibt dasselbe Salz und eine interne Benutzer-ID im [UUID-Format](cognito-terms.md#terms-uuid) für dieselbe Kombination aus Benutzername und Benutzerpool zurück. Wenn Sie eine `RespondToAuthChallenge`API-Anforderung mit einem Passwortnachweis senden, gibt Amazon Cognito einen generischen `NotAuthorizedException`-Fehler zurück, wenn der Benutzername oder das Passwort falsch ist. Weitere Informationen zur Implementierung der SRP-Authentifizierung finden Sie unter. [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)  
[Sie können eine generische Antwort mit Benutzername und Kennwortauthentifizierung simulieren, wenn Sie verifizierungsbasierte Aliasattribute verwenden und der unveränderliche Benutzername nicht als UUID formatiert ist.](cognito-terms.md#terms-uuid)

**Lambda-Trigger für benutzerdefinierte Authentifizierungsanforderungen**  
Amazon Cognito ruft die [benutzerdefinierte Authentifizierungsherausforderung auf, die Lambda auslöst](user-pool-lambda-challenge.md), wenn Benutzer versuchen, sich mit dem `CUSTOM_AUTH` Authentifizierungsablauf anzumelden, ihr Benutzername jedoch nicht gefunden wird. Das Eingabeereignis enthält einen booleschen Parameter, der `UserNotFound` mit dem Wert für jeden nicht existierenden Benutzer benannt ist. `true` Dieser Parameter erscheint in den Anforderungsereignissen, die Ihr Benutzerpool an die Lambda-Funktionen Create, Define und Verify Auth Challenge sendet, die die benutzerdefinierte Authentifizierungsarchitektur bilden. Wenn Sie diesen Indikator in der Logik Ihrer Lambda-Funktion untersuchen, können Sie benutzerdefinierte Authentifizierungsherausforderungen für einen Benutzer simulieren, der nicht existiert.

**Lambda-Auslöser für die Vorab-Authentifizierung**  
Amazon Cognito ruft den [Vorauthentifizierungs-Trigger](user-pool-lambda-pre-authentication.md) auf, wenn Benutzer versuchen, sich anzumelden, ihr Benutzername jedoch nicht gefunden wird. Das Eingabeereignis enthält einen `UserNotFound` Parameter mit dem Wert `true` für jeden nicht existierenden Benutzer.

In der folgenden Liste werden die Auswirkungen von `PreventUserExistenceErrors` auf die Erstellung von Benutzerkonten beschrieben.Einzelheiten zur Offenlegung der Existenz von Benutzern in Abläufen zur Benutzererstellung

**SignUp**  
Die `SignUp` Operation kehrt immer zurück`UsernameExistsException`, wenn ein Benutzername bereits vergeben ist. Wenn Sie nicht möchten, dass Amazon Cognito bei der Registrierung von Benutzern in Ihrer App einen Fehler `UsernameExistsException` für E-Mail-Adressen und Telefonnummern zurückgibt, verwenden Sie verifizierungsbasierte Aliasattribute. Weitere Informationen zu Aliassen finden Sie unter [Anpassen von Anmeldeattributen](user-pool-settings-attributes.md#user-pool-settings-aliases).  
Ein Beispiel dafür, wie Amazon Cognito die Verwendung von API-Anforderungen `SignUp` zur Erkennung von Benutzern in Ihrem Benutzerpool verhindern kann, finden Sie unter [Vermeiden von Fehlern `UsernameExistsException` in Bezug auf E-Mail-Adressen und Telefonnummern bei der Registrierung](#cognito-user-pool-managing-errors-prevent-userexistence-errors).

**Importierte Benutzer**  
Wenn `PreventUserExistenceErrors` aktiviert ist, wird während der Authentifizierung importierter Benutzer ein allgemeiner `NotAuthorizedException`-Fehler zurückgegeben, der angibt, dass entweder der Benutzername oder das Kennwort falsch war, anstatt `PasswordResetRequiredException` zurückzugeben. Weitere Informationen finden Sie unter [Von importierten Benutzer verlangen, dass sie ihre Passwörter zurücksetzen](cognito-user-pools-using-import-tool.md#cognito-user-pools-using-import-tool-password-reset).

**Lambda-Auslöser für die Benutzermigration.**  
Amazon Cognito gibt eine simulierte Antwort für nicht vorhandene Benutzer zurück, wenn im ursprünglichen Ereigniskontext vom Lambda-Auslöser eine leere Antwort festgelegt wurde. Weitere Informationen finden Sie unter [Importieren von Benutzern mit einem Lambda-Auslöser für die Benutzermigration](cognito-user-pools-import-using-lambda.md). 

### Vermeiden von Fehlern `UsernameExistsException` in Bezug auf E-Mail-Adressen und Telefonnummern bei der Registrierung
<a name="cognito-user-pool-managing-errors-prevent-userexistence-errors"></a>

Das folgende Beispiel zeigt, wie Sie bei der Konfiguration von Aliasattributen in Ihrem Benutzerpool verhindern können, dass doppelte E-Mail-Adressen und Telefonnummern als Antwort auf die API-Anforderung `SignUp` den Fehler `UsernameExistsException` generieren. Sie müssen Ihren Benutzerpool mit einer E-Mail-Adresse oder Telefonnummer als Aliasattribut erstellt haben. Weitere Informationen finden Sie im Abschnitt *Anpassen von Anmeldeattributen* unter [Attribute für den Benutzerpool](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-attributes.html#user-pool-settings-aliases).

1. Jie meldet sich mit einem neuen Benutzernamen an und gibt auch die E-Mail-Adresse `jie@example.com` an. Amazon Cognito sendet einen Code an seine E-Mail-Adresse.

   **Beispiel für einen AWS CLI Befehl**

   ```
   aws cognito-idp sign-up --client-id 1234567890abcdef0 --username jie --password PASSWORD --user-attributes Name="email",Value="jie@example.com"
   ```

   **Beispielantwort**

   ```
   {
       "UserConfirmed": false, 
       "UserSub": "<subId>", 
       "CodeDeliveryDetails": {
           "AttributeName": "email", 
           "Destination": "j****@e****", 
           "DeliveryMedium": "EMAIL"
       }
   }
   ```

1. Jie gibt den Code an, der ihm zur Bestätigung der E-Mail-Adresse zugesendet wurde. Damit ist seine Registrierung als Benutzer abgeschlossen.

   **Beispiel für einen AWS CLI Befehl**

   ```
   aws cognito-idp confirm-sign-up --client-id 1234567890abcdef0 --username=jie --confirmation-code xxxxxx
   ```

1. Shirley registriert ein neues Benutzerkonto und gibt die E-Mail-Adresse `jie@example.com` an. Amazon Cognito gibt keinen Fehler `UsernameExistsException` zurück und sendet einen Bestätigungscode an Jies E-Mail-Adresse.

   **Beispiel für einen AWS CLI Befehl**

   ```
   aws cognito-idp sign-up --client-id 1234567890abcdef0 --username shirley --password PASSWORD --user-attributes Name="email",Value="jie@example.com"
   ```

   **Beispielantwort**

   ```
   {
       "UserConfirmed": false, 
       "UserSub": "<new subId>", 
       "CodeDeliveryDetails": {
           "AttributeName": "email", 
           "Destination": "j****@e****", 
           "DeliveryMedium": "EMAIL"
       }
   }
   ```

1. In einem anderen Szenario ist Shirley Eigentümerin von `jie@example.com`. Shirley ruft den Code ab, den Amazon Cognito an Jies E-Mail-Adresse gesendet hat, und versucht, das Konto zu bestätigen.

   **Beispiel für einen AWS CLI Befehl**

   ```
   aws cognito-idp confirm-sign-up --client-id 1234567890abcdef0 --username=shirley --confirmation-code xxxxxx
   ```

   **Beispielantwort**

   ```
   An error occurred (AliasExistsException) when calling the ConfirmSignUp operation: An account with the email already exists.
   ```

Amazon Cognito gibt keinen Fehler auf Shirleys Anforderung `aws cognito-idp sign-up` zurück, obwohl `jie@example.com` einem vorhandenen Benutzer zugewiesen ist. Shirley muss nachweisen, dass die E-Mail-Adresse ihr gehört, bevor Amazon Cognito eine Fehlerantwort zurückgibt. In einem Benutzerpool mit Aliasattributen verhindert dieses Verhalten die Verwendung der öffentlichen `SignUp`-API, um zu überprüfen, ob ein Benutzer mit einer bestimmten E-Mail-Adresse oder Telefonnummer existiert.

Dieses Verhalten unterscheidet sich von der Antwort, die Amazon Cognito auf eine `SignUp`-Anforderung mit einem vorhandenen Benutzernamen zurückgibt, wie im folgenden Beispiel gezeigt wird. Shirley erfährt zwar aus dieser Antwort, dass ein Benutzer mit dem Benutzernamen `jie` bereits vorhanden ist, sie erfährt jedoch nichts über die mit dem Benutzer verknüpften E-Mail-Adressen oder Telefonnummern.

**CLI-Beispielbefehl**

```
aws cognito-idp sign-up --client-id 1example23456789 --username jie --password PASSWORD
      --user-attributes Name="email",Value="shirley@example.com"
```

**Beispielantwort**

```
An error occurred (UsernameExistsException) when calling the SignUp operation: User already exists
```

## Operationen zum Zurücksetzen des Passworts
<a name="cognito-user-pool-managing-errors-password-reset"></a>

Amazon Cognito gibt die folgenden Antworten auf Vorgänge zum Zurücksetzen von Benutzerpasswörtern zurück, wenn Sie Fehler bei vorhandenen Benutzern verhindern.

**ForgotPassword**  
Wenn ein Benutzer nicht gefunden wird, deaktiviert ist oder keinen verifizierten Übermittlungsmechanismus zum Wiederherstellen seines Kennworts hat, gibt Amazon Cognito `CodeDeliveryDetails` mit einem simulierten Bereitstellungsmedium für einen Benutzer zurück. Das simulierte Bereitstellungsmedium wird durch das Eingabe-Benutzernamensformat und die Verifizierungseinstellungen des Benutzerpools bestimmt.

**ConfirmForgotPassword**  
Amazon Cognito gibt den `CodeMismatchException`-Fehler für Benutzer zurück, die nicht vorhanden oder deaktiviert sind. Wenn bei der Verwendung von `ForgotPassword` kein Code angefordert wird, gibt Amazon Cognito den `ExpiredCodeException`-Fehler zurück.

## Bestätigungsoperationen
<a name="cognito-user-pool-managing-errors-confirmation"></a>

Amazon Cognito gibt die folgenden Antworten auf Vorgänge zum Bestätigen und Verifizieren von Benutzern zurück, wenn Sie Fehler bei vorhandenen Benutzern verhindern.

**ResendConfirmationCode**  
Amazon Cognito gibt `CodeDeliveryDetails` für einen deaktivierten oder einen nicht vorhandenen Benutzer zurück. Amazon Cognito sendet einen Bestätigungscode an die E-Mail- oder Telefonnummer des bestehenden Benutzers.

**ConfirmSignUp**  
 `ExpiredCodeException` gibt zurück, ob ein Code abgelaufen ist. Amazon Cognito gibt `NotAuthorizedException` zurück, wenn ein Benutzer nicht autorisiert ist. Wenn der Code nicht den Erwartungen des Servers entspricht, gibt Amazon Cognito `CodeMismatchException` zurück. 