

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.

# Einrichtung eines OIDC-Anbieters als Identitätspool-IdP
<a name="open-id"></a>

[OpenID Connect](http://openid.net/connect/) ist ein offener Standard für die Authentifizierung, der von einer Reihe von Anmeldungsanbietern unterstützt wird. Mit Amazon Cognito können Sie Identitäten mit OpenID Connect-Anbietern verknüpfen, über die Sie die Konfiguration vornehmen. [AWS Identity and Access Management](https://aws.amazon.com/iam/)

**Hinzufügen eines OpenID-Connect-Anbieters**

Weitere Informationen darüber, wie Sie einen OpenID-Connect-Anbieter erstellen, finden Sie unter [Erstellen von OpenID-Connect (IDC)-Identitätsanbietern](https://docs.aws.amazon.com/IAM/latest/UserGuide/identity-providers-oidc.html) in der *AWS Identity and Access Management -Benutzeranleitung*.

**Zuordnen eines Anbieters mit Amazon Cognito**

**So fügen Sie einen OIDC-Identitätsanbieter (IdP) hinzu**

1. Wählen Sie **Identitätspools** in der [Amazon-Cognito-Konsole](https://console.aws.amazon.com/cognito/home) aus. Wählen Sie einen Identitätspool.

1. Wählen Sie die Registerkarte **Datenzugriff** aus.

1. Wählen Sie **Identitätsanbieter hinzufügen** aus.

1. Wählen Sie **OpenID Connect (OIDC)** aus.

1. Wählen Sie einen **OIDC-Identitätsanbieter** aus dem IAM in Ihrem. IdPs AWS-Konto Wenn Sie einen neuen SAML-Anbieter hinzufügen möchten, wählen Sie **Neuen Anbieter erstellen**, um zur IAM-Konsole zu navigieren.

1. Um die Rolle festzulegen, die Amazon Cognito bei der Ausgabe von Anmeldeinformationen an Benutzer anfordert, die sich bei diesem Anbieter authentifiziert haben, konfigurieren Sie die **Rolleneinstellungen**.

   1. Sie können Benutzern dieses IdPs die **Standardrolle** zuweisen, die Sie bei der Konfiguration Ihrer **authentifizierten Rolle** eingerichtet haben, oder die **Rolle mit Regeln wählen**.

     1. Wenn Sie **Rolle mit Regeln wählen** ausgewählt haben, geben Sie die Quell-**Anforderung** aus der Benutzerauthentifizierung, den **Operator**, mit dem Sie die Anforderung vergleichen möchten, den **Wert**, der zu einer Übereinstimmung mit dieser Rollenauswahl führt, und die **Rolle** ein, die Sie zuweisen möchten, wenn die **Rollenzuweisung** übereinstimmt. Wählen Sie **Weitere hinzufügen** aus, um eine zusätzliche Regel zu erstellen, die auf einer anderen Bedingung basiert.

     1. Wählen Sie eine **Rollenauflösung**. Wenn die Anforderungen Ihres Benutzers nicht Ihren Regeln entsprechen, können Sie Anmeldeinformationen verweigern oder Anmeldeinformationen für Ihre **Authentifizierte Rolle** ausgeben.

1. Um die Prinzipal-Tags zu ändern, die Amazon Cognito Benutzern zuweist, wenn es Anmeldeinformationen an Benutzer ausgibt, die sich bei diesem Anbieter authentifiziert haben, konfigurieren Sie die **Attribute für die Zugriffskontrolle**.

   1. Um keine Prinzipal-Tags anzuwenden, wählen Sie **Inaktiv** aus.

   1. Wählen Sie **Standardzuordnungen verwenden**, um Prinzipal-Tags auf der Grundlage von `sub`- und `aud`-Anforderungen anzuwenden.

   1. Um Ihr eigenes benutzerdefiniertes Schema von Attributen für Prinzipal-Tags zu erstellen, wählen Sie **Benutzerdefinierte Zuordnungen verwenden**. Geben Sie dann einen **Tag-Schlüssel** ein, den Sie aus jeder **Anforderung** beziehen möchten, die Sie in einem Tag repräsentieren möchten.

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

Sie können mehrere OpenID Connect-Anbieter einem einzigen Identitätspool zuordnen.

**Verwenden von OpenID Connect**

In der Dokumentation Ihres Anbieters finden Sie Informationen dazu, wie Sie sich anmelden und ein ID-Token erhalten.

Nachdem Sie ein Token erhalten haben, fügen Sie es der Anmeldezuordnung hinzu. Verwenden Sie den URI Ihres Anbieters als Schlüssel.

**Überprüfen eines OpenID-Connect-Tokens**

Bei der ersten Integration in Amazon Cognito erhalten Sie möglicherweise eine `InvalidToken`-Ausnahme. Es ist wichtig zu verstehen, wie Amazon Cognito OpenID Connect (OIDC)-Token überprüft.

**Anmerkung**  
Wie hier ([https://tools.ietf.org/html/rfc7523](https://tools.ietf.org/html/rfc7523)) angegeben, bietet Amazon Cognito eine Übergangszeit von 5 Minuten, um jegliche Zeitversetzung zwischen den Systemen zu bewältigen.

1. Der Parameter `iss` muss dem Schlüssel in der Anmeldezuordnung (z. B. login.provider.com) entsprechen.

1. Die Signatur muss gültig sein. Die Signatur müssen über einen öffentlichen RSA-Schlüssel verifizierbar sein.
**Anmerkung**  
Identitätspools verwalten für einen kurzen Zeitraum einen Cache mit dem OIDC-IdP-Signaturschlüssel. Wenn Ihr Anbieter seinen Signaturschlüssel ändert, gibt Amazon Cognito möglicherweise einen `NoKeyFound` Fehler zurück, bis dieser Cache aktualisiert wird. Wenn dieser Fehler auftritt, warten Sie etwa zehn Minuten, bis Ihr Identitätspool den Signaturschlüssel aktualisiert hat.

1. Der Fingerabdruck des öffentlichen Schlüssels des Zertifikats stimmt mit dem Fingerabdruck überein, den Sie bei der Erstellung Ihres OIDC-Anbieters in IAM festgelegt haben.

1. Wenn der `azp` Parameter vorhanden ist, überprüfen Sie diesen Wert anhand des aufgelisteten Clients IDs in Ihrem OIDC-Anbieter.

1. Wenn der `azp` Parameter nicht vorhanden ist, vergleichen Sie den `aud` Parameter mit dem aufgelisteten Client IDs in Ihrem OIDC-Anbieter.

Die Website [jwt.io](http://jwt.io/) ist eine wertvolle Ressource zum Decodieren von Token und Überprüfen dieser Werte.

## Android
<a name="set-up-open-id-1.android"></a>

```
Map<String, String> logins = new HashMap<String, String>();
logins.put("login.provider.com", token);
credentialsProvider.setLogins(logins);
```

## iOS – Objective-C
<a name="set-up-open-id-1.ios-objc"></a>

```
credentialsProvider.logins = @{ "login.provider.com": token }
```

## JavaScript
<a name="set-up-open-id-1.javascript"></a>

```
AWS.config.credentials = new AWS.CognitoIdentityCredentials({
 IdentityPoolId: 'IDENTITY_POOL_ID',
 Logins: {
    'login.provider.com': token
 }
});
```