Wie komme ich nach der Integration des Identitätsanbieters in Amazon Cognito an von OIDC oder Social Identity Provider ausgestellte Token?

Lesedauer: 5 Minute
0

Ich möchte die Zugangs- und ID-Token erhalten, die von meinem Identitätsanbieter (IdP) ausgestellt wurden, der in die Amazon-Cognito-Benutzerpools integriert ist.

Kurzbeschreibung

Im IdP-Authentifizierungsablauf von OpenID Connect (OIDC) tauscht Amazon Cognito den vom IdP ausgegebenen Autorisierungscode gegen IdP-Token aus. Amazon Cognito bereitet dann seinen eigenen Tokensatz vor und gibt ihn nach erfolgreicher Verbindung an den Endbenutzer zurück. Dieser Prozess ermöglicht es dem Benutzer oder der Anwendung jedoch nicht, die tatsächlichen IdP-Side-Token zu sehen. In einigen Anwendungsfällen sind möglicherweise die tatsächlich vom IdP ausgestellten Token in der Anwendung für Autorisierungs- oder Fehlerbehebungszwecke erforderlich. Folgen Sie den Schritten im Abschnitt Lösung, um IDP-vergebene Zugriffs- und ID-Token zu erfassen und zu speichern, wenn Sie sich mit Amazon-Cognito-Benutzerpools verbinden.

Wichtig: Bei den Schritten in diesem Artikel wird davon ausgegangen, dass Sie OIDC IdP oder Social-IdP bereits in Amazon-Cognito-Benutzerpools integriert haben. Wenn Sie keinen IdP in Ihren Benutzerpool integriert haben, folgen Sie den Schritten zum Hinzufügen einer Benutzerpool-Anmeldung über einen Drittanbieter.

Lösung

Benutzerdefiniertes Attribut in einem Benutzerpool erstellen

Gehen Sie wie folgt vor, um ein benutzerdefiniertes Attribut in Ihrem Benutzerpool zu erstellen:

1.    Öffnen Sie die neue Amazon-Cognito-Konsole und wählen Sie dann in Ihrem Benutzerpool die Registerkarte Sign-up Experience.

2.    Wählen Sie im Abschnitt Benutzerdefinierte Attribute die Schaltfläche Benutzerdefinierte Attribute hinzufügen aus.

3.    Um ein benutzerdefiniertes Attribut für ein Zugriffstoken zu erstellen, geben Sie die folgenden Werte ein, und speichern Sie dann die Änderungen.

  • Bezeichnung: access_token
  • Typ: Zeichenkette
  • Max: 2 048
  • Mutable: Kontrollkästchen aktivieren

4.    Um ein benutzerdefiniertes Attribut für ein ID-Token zu erstellen, geben Sie die folgenden Werte ein, und speichern Sie dann die Änderungen.

  • Name: id_token
  • Typ: Zeichenkette
  • Max: 2.048
  • Mutable: Kontrollkästchen aktivieren

Attributzuordnung zwischen Amazon Cognito und Ihrem IdP konfigurieren

Gehen Sie wie folgt vor, um die Attributzuordnung zu IdP-Attributen zu konfigurieren:

1.    Öffnen Sie die neue Amazon-Cognito-Konsole und wählen Sie dann in Ihrem Benutzerpool die Registerkarte Sign-in Experience.

2.    Wählen Sie im Anmeldebereich des Verbundsidentitätsanbieter Ihren IdP aus der Liste aus.

3.    Wählen Sie die Option Bearbeiten in der Nähe des Abschnitts Informationen zum Identitätsanbieter. Stellen Sie sicher, dass die folgenden Bereiche im Abschnitt Autorisierte Bereiche vorhanden sind:

  • Facebook-Beispielbereiche: public_profile, email
  • Google-Beispielbereiche: profile email openid
  • Anmeldung mit Amazon-Beispielbereichen: profile postal_code
  • Anmeldung mit Apple-Beispielbereichen: email name
  • Alle anderen OIDC-Anbieter-Beispielbereiche: profile email openid

4.    Gehen Sie einen Schritt zurück zur Identitätsanbieter-Seite. Wählen Sie in der Nähe des Abschnitts Attributzuordnung die Option Bearbeiten aus.

5.    Wählen Sie in der Spalte Benutzerpoolattribut das benutzerdefinierte Attribut aus, das Sie zu Beginn erstellt haben.

6.    Wählen Sie in der OpenID-Connect-Attributspalte****access_token oder id_token aus, abhängig vom Typ des zuzuordnenden Tokens. Speichern Sie dann Ihre Änderungen.

Beispielergebnisse der Konfiguration der Attributzuordnung:

Benutzerpool-Attribut: custom:id_token
OpenID-Connect-Attribut: id_token

Benutzerpool-Attribut: custom:access_token
OpenID-Connect-Attribut: access_token

Aktivieren Sie die Lese- und Schreibberechtigungen für Attribute in Ihrem Amazon-Cognito-App-Client

Wenn sich ein Benutzer bei der Anwendung anmeldet, aktualisiert Amazon Cognito die zugeordneten Attribute. Damit Amazon Cognito die zugeordneten Benutzerpool-Attribute aktualisieren kann, müssen die zugeordneten Attribute in den App-Client-Einstellungen Ihrer Anwendung beschreibbar sein. Damit Amazon Cognito das ID-Token des Benutzers aktualisieren kann, müssen die Attribute in den App-Client-Einstellungen Ihrer Anwendung lesbar sein.

1.    Öffnen Sie die neue Amazon-Cognito-Konsole und wählen Sie dann die Registerkarte App-Integration in Ihrem Benutzerpool.

2.    Wählen Sie Ihren App-Client aus der Liste der App-Clients aus.

3.    Wählen Sie im Abschnitt Lese- und Schreibberechtigungen für Attribute die Option Bearbeiten aus.

4.    Aktivieren Sie auf der Seite Lese- und Schreibberechtigungen für das Attribut bearbeiten die Kontrollkästchen Lese- und Schreibzugriff für Ihre benutzerdefinierten Attribute.

5.    Speichern Sie die Änderungen.

Wiederholen Sie diese Schritte für jeden App-Client, der das benutzerdefinierte Attribut verwendet.

Weitere Informationen finden Sie unter Benutzerpool-Attribute und wechseln Sie zur Registerkarte Attributberechtigungen und -bereiche.

Melden Sie sich mit dem OIDC-Drittanbieter oder dem sozialen IdP an

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 geeigneten Benutzer aus, um die IdP-Token in seinen Attributen zu sehen. Durch die Dekodierung des ID-Tokens erhalten Sie auch die benutzerdefinierten Attribute, die IdP-Token enthalten.

Beispiel für einen Nutzlastabschnitt des an den Endbenutzer ausgegebenen ID-Tokens:

{
    "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"
}

Beachten Sie beim Erstellen von benutzerdefinierten Attributen die folgenden Punkte:

  • Die maximale Länge für jedes benutzerdefinierte Attribut beträgt 2.048 Zeichen. Wenn ein IdP-Token 2.048 Zeichen überschreitet, erhalten Sie die folgende Fehlermeldung: „Zeichenkettenattribute können keine Länge von mehr als 2048 haben“.
  • Sie können ein benutzerdefiniertes Attribut nach seiner Erstellung nicht entfernen oder ändern.
  • Wenn das benutzerdefinierte Attribut bei nachfolgenden Anmeldungen nicht aktualisiert wird, überprüfen Sie die Veränderlichkeit des benutzerdefinierten Attributs. Dieses Problem wird erwartet, nachdem Sie beim Erstellen des Attributs das Kontrollkästchen Mutable deaktiviert haben. Weitere Informationen finden Sie unter Benutzerpool-Attribute und wechseln Sie zur Registerkarte Benutzerdefinierte Attribute.

Hinweis: Wenn Sie nach den vorherigen Schritten immer noch kein IdP-Token erhalten können, wenden Sie sich an Ihren IdP. Fragen Sie, ob der IdP die Weitergabe der Token innerhalb von Attributen an Amazon Cognito unterstützt. Nach Ihrer Bestätigung können Sie sich für weitere Problembehebungen an den AWS Support wenden.


Ähnliche Informationen

Wie richte ich Auth0 als ein OIDC-Anbieter in einem Amazon-Cognito-Benutzerpool ein?

Wie richte ich LinkedIn als sozialen Identitätsanbieter mit einem Amazon-Cognito-Benutzerpool ein?

Wie richte ich Okta als OpenID-Connect-Identitätsanbieter mit einem Amazon-Cognito-Benutzerpool ein?

Wie richte ich Google als sozialen Identitätsanbieter mit einem Amazon-Cognito-Benutzerpool ein?

AWS OFFICIAL
AWS OFFICIALAktualisiert vor einem Jahr