Verwenden des ID-Tokens - Amazon Cognito

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.

Verwenden des ID-Tokens

Das ID-Token ist ein JSONWeb-Token (JWT), das Behauptungen über die Identität des authentifizierten Benutzers enthält, z. B. nameemail, und. phone_number Sie können diese Identitätsinformationen in Ihrer Anwendung verwenden. Das ID-Token kann ebenfalls verwendet werden, um Benutzer mithilfe Ihrer Ressourcenserver oder Serveranwendungen zu authentifizieren. Sie können ein ID-Token auch außerhalb der Anwendung für Ihre API Weboperationen verwenden. In diesen Fällen müssen Sie die Signatur des ID-Tokens überprüfen, bevor Sie Ansprüchen innerhalb des ID-Tokens vertrauen können. Siehe Überprüfen eines JSON Web-Tokens.

Sie können den Ablauf des ID-Tokens auf einen beliebigen Wert zwischen 5 Minuten und 1 Tag festlegen. Sie können diesen Wert pro App-Client festlegen.

Wichtig

Wenn sich Ihr Benutzer bei der gehosteten Benutzeroberfläche oder einem Verbundidentitätsanbieter (IdP) anmeldet, setzt Amazon Cognito Sitzungscookies, die 1 Stunde lang gültig sind. Wenn Sie die gehostete Benutzeroberfläche oder den Verbund verwenden und eine Mindestdauer von weniger als 1 Stunde für Ihre Zugriffs- und ID-Token angeben, ist die Sitzung Ihrer Benutzer weiterhin bis zum Ablauf des Cookies gültig. Wenn der Benutzer Token hat, die in der einstündigen Sitzung ablaufen, kann der Benutzer seine Token aktualisieren, ohne sich erneut authentifizieren zu müssen.

ID-Token-Header

Der Header enthält zwei verschiedene Informationen: die Schlüssel-ID (kid) und den Algorithmus (alg).

{ "kid" : "1234example=", "alg" : "RS256" }
kid

Die Schlüssel-ID. Sein Wert gibt den Schlüssel an, mit dem die JSON Websignatur (JWS) des Tokens gesichert wurde. Sie können Ihren Benutzerpool-Signaturschlüssel IDs auf dem jwks_uri Endpunkt einsehen.

Weitere Informationen über den kid-Parameter finden Sie unter dem Schlüssel-ID-(kid)-Header-Parameter.

alg

Der kryptografische Algorithmus, mit dem Amazon Cognito das Zugriffstoken sichert. Benutzerpools verwenden einen RS256 kryptografischen Algorithmus, bei dem es sich um eine RSA Signatur mit SHA -256 handelt.

Weitere Informationen über den alg-Parameter finden Sie unter dem Algorithmus-(alg)-Header-Parameter.

Standard-Payload für ID-Token

Dies ist ein Beispiel für eine Payload aus einem ID-Token. Es enthält Ansprüche bezüglich des authentifizierten Benutzers. Weitere Informationen zu OpenID Connect (OIDC) -Standardansprüchen finden Sie in der Liste der OIDCStandardansprüche. Sie können Ansprüche Ihres eigenen Designs mit einem Lambda-Auslöser für die Vorab-Generierung von Token hinzufügen.

<header>.{ "sub": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee", "cognito:groups": [ "test-group-a", "test-group-b", "test-group-c" ], "email_verified": true, "cognito:preferred_role": "arn:aws:iam::111122223333:role/my-test-role", "iss": "https://cognito-idp.us-west-2.amazonaws.com/us-west-2_example", "cognito:username": "my-test-user", "middle_name": "Jane", "nonce": "abcdefg", "origin_jti": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee", "cognito:roles": [ "arn:aws:iam::111122223333:role/my-test-role" ], "aud": "xxxxxxxxxxxxexample", "identities": [ { "userId": "amzn1.account.EXAMPLE", "providerName": "LoginWithAmazon", "providerType": "LoginWithAmazon", "issuer": null, "primary": "true", "dateCreated": "1642699117273" } ], "event_id": "64f513be-32db-42b0-b78e-b02127b4f463", "token_use": "id", "auth_time": 1676312777, "exp": 1676316377, "iat": 1676312777, "jti": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee", "email": "my-test-user@example.com" } .<token signature>
sub

Eine eindeutige Kennung (UUID) oder ein Betreff für den authentifizierten Benutzer. Möglicherweise ist der Benutzername in Ihrem Benutzerpool nicht eindeutig. Der sub-Anspruch ist der beste Weg, um einen bestimmten Benutzer zu identifizieren.

cognito:groups

Ein Array mit den Namen von Benutzerpoolgruppen, zu denen Ihr Benutzer gehört. Gruppen können eine Kennung sein, die Sie Ihrer App präsentieren, oder sie können eine Anfrage für eine bevorzugte IAM Rolle aus einem Identitätspool generieren.

cognito:preferred_role

Die IAM Rolle, die Sie ARN der Benutzerpoolgruppe mit der höchsten Priorität Ihres Benutzers zugeordnet haben. Weitere Informationen darüber, wie Ihr Benutzerpool diesen Rollenanspruch auswählt, finden Sie unter Zuweisen von Prioritätswerten zu Gruppen.

iss

Der Identitätsanbieter, der das Token ausgegeben hat. Der Anspruch hat das folgende Format:

https://cognito-idp.<Region>.amazonaws.com/<your user pool ID>

cognito:username

Der Benutzername Ihres Benutzers in Ihrem Benutzerpool.

nonce

Der nonce Anspruch stammt aus einem gleichnamigen Parameter, den Sie zu Anfragen an Ihren OAuth authorize 2.0-Endpunkt hinzufügen können. Wenn Sie den Parameter hinzufügen, wird der nonce-Anspruch in das ID-Token eingeschlossen, das Amazon Cognito ausgibt, und Sie können ihn zum Schutz vor Wiederholungsangriffen verwenden. Wenn Sie in Ihrer Anfrage keinen nonce-Wert angeben, generiert und validiert Amazon Cognito automatisch eine Nonce, wenn Sie sich über eine Drittanbieter-Identität authentifizieren, und fügt sie dann als nonce-Anspruch zum ID-Token hinzu. Die Umsetzung des nonce Claims in Amazon Cognito basiert auf OIDCStandards.

origin_jti

Eine Token-Widerrufs-ID, die dem Aktualisierungstoken Ihres Benutzers zugeordnet ist. Amazon Cognito verweist auf den origin_jti Anspruch, wenn geprüft wird, ob Sie das Token Ihres Benutzers mit der Operation Widerrufen des Endpunkts oder der RevokeTokenAPIOperation gesperrt haben. Wenn Sie ein Token widerrufen, macht Amazon Cognito alle Zugriffs- und ID-Token mit demselben origin_jti-Wert ungültig.

cognito:roles

Eine Reihe von Namen der IAM Rollen, die den Gruppen Ihres Benutzers zugeordnet sind. Jeder Benutzerpoolgruppe kann eine IAM Rolle zugeordnet werden. Dieses Array stellt alle IAM Rollen für Ihre Benutzergruppen dar, unabhängig von ihrer Rangfolge. Weitere Informationen finden Sie unter Hinzufügen von Gruppen zu einem Benutzerpool.

aud

Der Benutzerpool-App-Client, der Ihren Benutzer authentifiziert hat. Amazon Cognito gibt den gleichen Wert im Zugriffstoken-Anspruch client_id wieder.

identities

Der Inhalt des Benutzerattributs identities. Das Attribut enthält Informationen über jedes Profil eines externen Identitätsanbieters, das Sie mit einem Benutzer verknüpft haben, entweder durch Verbundanmeldung oder durch Verknüpfen eines Verbundbenutzers mit einem lokalen Profil. Diese Informationen enthalten ihren Anbieternamen, ihre eindeutige Anbieter-ID und andere Metadaten.

token_use

Der vorgesehene Zweck des Tokens. In einem ID-Token ist der Wert id.

auth_time

Der Authentifizierungszeitpunkt im Unix-Zeitformat, an dem Ihr Benutzer die Authentifizierung abgeschlossen hat.

exp

Der Ablaufzeitpunkt im Unix-Zeitformat, an dem das Token Ihres Benutzers abläuft.

iat

Der Zeitpunkt, an dem Amazon Cognito das Token Ihres Benutzers ausgegeben hat, im Unix-Zeitformat.

jti

Der eindeutige Bezeichner von. JWT

Das ID-Token kann OIDC Standardansprüche enthalten, die in OIDCStandardansprüchen definiert sind. Das ID-Token kann auch benutzerdefinierte Attribute enthalten, die Sie in Ihrem Benutzerpool definieren. Amazon Cognito schreibt benutzerdefinierte Attributwerte unabhängig vom Attributtyp als Strings in das ID-Token.

Anmerkung

Den benutzerdefinierten Attributen des Benutzerpools wird immer ein Präfix custom: vorangestellt.

ID-Token-Signatur

Die Signatur des ID-Tokens wird auf der Grundlage des Headers und der Nutzlast des JWT Tokens berechnet. Bevor Sie die Ansprüche in einem von Ihrer App empfangenen ID-Token akzeptieren, überprüfen Sie die Signatur des Tokens. Weitere Informationen finden Sie unter Überprüfen eines JSON Web-Tokens. Überprüfen eines JSON Web-Tokens.