Wie erhalte ich von einem Identitätsanbieter ausgestellte OIDC oder Social Identity Token für Amazon-Cognito-Benutzerpools?
Ich möchte erfahren, wie ich die vom Identitätsanbieter (IdP), den ich zu Autorisierungs- oder Fehlerbehebungszwecken in Amazon-Cognito-Benutzerpools integriert habe, ausgestellten Zugriffs- und ID Token abrufen kann.
Kurzbeschreibung
Der IdP-Authentifizierungsablauf von OpenID Connect (OIDC) ermöglicht es dem Benutzer oder der Anwendung nicht, die IdP-seitigen Token zu sehen. Für Autorisierungs- oder Fehlerbehebungszwecke benötigen einige Anwendungsfälle die tatsächlich vom IdP ausgestellten Token in der Anwendung.
Wichtig: Bei der folgenden Lösung wird davon ausgegangen, dass Sie OIDC IdP oder Social IdP in Amazon-Cognito-Benutzerpools integriert haben. Wenn Sie keinen IdP in Ihren Benutzerpool integriert haben, fügen Sie eine Benutzerpool-Anmeldung über einen Drittanbieter hinzu.
Behebung
Ein benutzerdefiniertes Attribut in einem Benutzerpool erstellen
Gehen Sie wie folgt vor, um ein benutzerdefiniertes Attribut in einem Benutzerpool zu erstellen:
- Öffnen Sie die neue Amazon-Cognito-Konsole und wählen Sie dann in im Benutzerpool die Registerkarte Sign-up Experience.
- Wählen Sie im Abschnitt Benutzerdefinierte Attribute die Option Benutzerdefinierte Attribute hinzufügen aus.
- Um ein benutzerdefiniertes Attribut für ein Zugriffstoken zu erstellen, geben Sie die folgenden Werte ein:
**Name: **access_token
Typ: String
**Max:**2.048
Veränderbar: Markieren Sie dieses Kontrollkästchen - Wählen Sie Speichern.
- Um ein benutzerdefiniertes Attribut für ein ID-Token zu erstellen, geben Sie die folgenden Werte ein:
Name: id_token
Typ: String
**Max:**2.048
Veränderbar: Markieren Sie dieses Kontrollkästchen - Wählen Sie Speichern.
Die Attributzuordnung zwischen Amazon Cognito und Ihrem IdP konfigurieren
Gehen Sie wie folgt vor, um die Attributzuordnung zu IdP-Attributen zu konfigurieren:
- Öffnen Sie die neue Amazon-Cognito-Konsole und wählen Sie dann in Ihrem Benutzerpool die Registerkarte Sign-In Experience.
- Wählen Sie im Anmeldebereich für den Federated Identity Provider Ihren IdP aus der Liste aus.
- Wählen Sie im Abschnitt Informationen zum Identitätsanbieter die Option Bearbeiten aus. Vergewissern Sie sich, dass sich die folgenden Bereiche im Abschnitt Autorisierte Bereiche befinden:
Facebook: public_profile, email
Google: profile email openid
Mit Amazon anmelden: profile postal_code
Mit Apple anmelden: email name
Alle anderen OIDC-Anbieter: profile email openid - Wählen Sie auf der Seite Identitätsanbieter im Abschnitt Attributzuordnung die Option Bearbeiten aus.
- Wählen Sie in der Spalte Benutzerpool-Attribut Ihr benutzerdefiniertes Attribut aus.
- Wählen Sie in der Spalte OpenID-Connect-Attribut access_token oder id_token aus.
- Wählen Sie Speichern.
Im Folgenden sind die Ergebnisse der Konfiguration der Attributzuordnung aufgeführt:
- Benutzerpoolattribut: custom:id_token
- OpenID-Connect-Attribut: id_token
- Benutzerpoolattribut: custom:access_token
- OpenID-Connect-Attribut: access_token
Aktivieren der Lese- und Schreibberechtigungen für Attribute in Ihrem Amazon Cognito App Client
Wenn sich ein Benutzer bei der Anwendung anmeldet, aktualisiert Amazon Cognito die zugewiesenen Attribute. Damit Amazon Cognito die zugewiesenen Benutzerpool-Attribute aktualisieren kann, müssen die zugewiesenen Attribute in den App-Client-Einstellungen Ihrer Anwendung beschreibbar sein. Damit Amazon Cognito das ID-Token des Benutzers aktualisiert, müssen die Attribute in den App-Client-Einstellungen Ihrer Anwendung lesbar sein.
Gehen Sie wie folgt vor, um Lese- und Schreibberechtigungen zu aktivieren:
- Öffnen Sie die neue Amazon-Cognito-Konsole und wählen Sie dann die Registerkarte App-Integration in Ihrem Benutzerpool.
- Wählen Sie Ihren App Client aus.
- Wählen Sie im Abschnitt Lese- und Schreibberechtigungen für Attribute die Option Bearbeiten aus.
- Aktivieren Sie auf der Seite Lese- und Schreibberechtigungen für Attribute bearbeiten die Kontrollkästchen zum Lesen und Schreiben für Ihre benutzerdefinierten Attribute.
- Wählen Sie Speichern.
Wiederholen Sie diese Schritte für jeden App Client, der das benutzerdefinierte Attribut verwendet.
Weitere Informationen finden Sie unter Attributberechtigungen und Gültigkeitsbereiche.
Den OIDC-Drittanbieter oder Social IdP zum Anmelden verwenden
Wenn Sie eine neue IdP-Authentifizierung über die Amazon Cognito Hosted UI durchführen, können Sie die IdP-Token in den benutzerdefinierten Attributen sehen. Wählen Sie einen Endbenutzer aus, um die IdP-Token in seinen Attributen zu sehen. Wenn Sie das ID-Token dekodieren, sehen Sie auch die benutzerdefinierten Attribute, die IdP-Token enthalten.
Beispiel für einen Payload-Abschnitt des ID-Tokens, der an den Endbenutzer ausgegeben wird:
{ "custom:access_token": "ya29.a0AeTM1ic9iv_FqpDQeIN......w1OPKdFEbR_Tea", "iss": "https://cognito-idp.example_region.amazonaws.com/example_user_pool_id", "custom:id_token": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjhjMjdkYjRkMTN............saDMuZ29vZ2xldXNlcmNv" }
Wichtig:
- Die maximale Länge für ein benutzerdefiniertes Attribut beträgt 2.048 Zeichen. Wenn ein IdP-Token 2.048 Zeichen überschreitet, erhalten Sie die folgende Fehlermeldung: „String attributes cannot have a length of more than 2048“.
- Sie können ein benutzerdefiniertes Attribut nicht entfernen oder ändern, nachdem Sie es erstellt haben.
- Wenn das benutzerdefinierte Attribut bei nachfolgenden Anmeldungen nicht aktualisiert wird, überprüfen Sie die Veränderbarkeit des benutzerdefinierten Attributs. Dieses Problem wird erwartet, nachdem Sie beim Erstellen des Attributs das Kontrollkästchen Veränderbar deaktiviert haben. Weitere Informationen finden Sie unter Benutzerdefinierte Attribute.
Hinweis: Wenn Sie immer noch kein IdP-Token erhalten können, wenden Sie sich an Ihren IdP. Prüfen Sie, ob der IdP die Weitergabe von Tokens mit Attributen an Amazon Cognito unterstützt. Wenden Sie sich dann an den AWS Support, um weitere Problemlösungen zu erhalten.
Ähnliche Informationen
Wie richte ich Auth0 als OIDC-Anbieter in einem Amazon-Cognito-Benutzerpool ein?
How do I set up LinkedIn as a social identity provider in an Amazon Cognito user pool?
How do I set up Okta as an OpenID Connect identity provider in an Amazon Cognito user pool?
Wie richte ich Google als Verbundidentitätsanbieter in einem Amazon-Cognito-Benutzerpool ein?
How to view a SAML response in your browser for troubleshooting
Relevanter Inhalt
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor einem Jahr
- AWS OFFICIALAktualisiert vor 3 Jahren
- AWS OFFICIALAktualisiert vor 2 Jahren