Utilizzo di token ID - Amazon Cognito

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Utilizzo di token ID

Il token ID è un token web JSON che contiene richieste relative all'identità dell'utente autenticato, ad esempio name, email e phone_number. Puoi utilizzare queste informazioni sull'identità all'interno dell'applicazione. Il token ID può essere utilizzato anche per autenticare utenti in relazione al server di risorse o alle applicazioni server. È inoltre possibile utilizzare un token ID al di fuori dell'applicazione con le operazioni dell'API Web. In questi casi, prima di poter considerare attendibile qualsiasi attestazione all'interno del token ID, devi verificare la firma del token ID. Consulta Verifica di un JSON Web Token.

Puoi configurare il periodo di scadenza del token ID su qualsiasi valore compreso tra 5 minuti e 1 giorno. Puoi configurare questo valore per il client dell'app.

Importante

Quando l'utente accede con l'interfaccia utente ospitata o un provider di identità federato (IdP), Amazon Cognito imposta cookie di sessione validi per 1 ora. Se utilizzi l'interfaccia utente o la federazione ospitata e specifichi una durata minima inferiore a 1 ora per i token di accesso e ID, la sessione rimarrà valida per gli utenti comunque fino alla scadenza del cookie. Se l'utente dispone di token che scadono durante la sessione di un'ora, può aggiornare i token senza dover eseguire nuovamente l'autenticazione.

Intestazione del token ID

L'intestazione contiene due informazioni: l'ID della chiave (kid) e l'algoritmo (alg).

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

L'ID della chiave . Il valore indica quale chiave è utilizzata per proteggere la firma JWS (JSON Web Signature) del token. È possibile visualizzare gli ID delle chiavi di firma del pool di utenti nell'endpoint jwks_uri.

Per ulteriori informazioni sul kid parametro, consulta la sezione parametro di intestazione dell'ID della chiave (kid).

alg

L'algoritmo di crittografia utilizzato da Amazon Cognito per proteggere il token di accesso. I bacini d'utenza utilizzano un algoritmo crittografico RS256, ovvero una firma RSA con SHA-256.

Per ulteriori informazioni sul alg parametro, consultare la sezione relativa al parametro di intestazione dell'algoritmo (alg).

Payload predefinito del token ID

Questo è un esempio di payload derivante da un token ID. Contiene attestazioni relative all'utente autenticato. Per ulteriori informazioni sulle attestazioni standard OpenID Connect (OIDC), consulta l'elenco delle attestazioni standard OIDC. Puoi aggiungere rivendicazioni di tua progettazione con un. Trigger Lambda di pre-generazione del token

<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

L'identificatore univoco (UUID), o soggetto, dell'utente autenticato. Il nome utente potrebbe non essere univoco nel pool di utenti. l'attestazione sub è il modo migliore per identificare un determinato utente.

cognito:groups

Una serie di nomi di gruppi del pool di utenti che includono l'utente come membro. I gruppi possono essere un identificatore da presentare all'app oppure possono generare una richiesta per un ruolo IAM preferito da un pool di identità.

cognito:preferred_role

L'ARN del ruolo IAM associato al gruppo dell'utente con la priorità più alta nel pool di utenti. Per ulteriori informazioni su come il pool di utenti seleziona questa attestazione ruolo, consulta Assegnazione dei valori di priorità ai gruppi.

iss

Il provider di identità che ha emesso il token. L'attestazione ha il seguente formato.

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

cognito:username

Il nome utente nel pool di utenti.

nonce

L'attestazione nonce proviene da un parametro con lo stesso nome che puoi aggiungere alle richieste al tuo endpoint OAuth 2.0 authorize. Quando si aggiunge il parametro, l'attestazione nonce è inclusa nel token ID emesso da Amazon Cognito e puoi usarla per proteggerti dagli attacchi di tipo replay. Se non fornisci un valore nonce nella tua richiesta, Amazon Cognito genera e convalida automaticamente un nonce quando esegui l'autenticazione tramite un provider di identità di terze parti, quindi lo aggiunge come attestazione nonce al token ID. L'implementazione dell'attestazione nonce in Amazon Cognito si basa su standard OIDC.

origin_jti

Un identificatore di revoca del token associato al token di aggiornamento dell'utente. Amazon Cognito fa riferimento all'origin_jtiaffermazione quando verifica se hai revocato il token dell'utente con l'operazione Endpoint Revoke o l'RevokeTokenAPI. Quando revochi un token, Amazon Cognito invalida tutti i token di accesso e ID con lo stesso valore origin_jti.

cognito:roles

Una serie di nomi di ruoli IAM associati ai gruppi dell'utente. A ogni gruppo di pool di utenti può essere associato un ruolo IAM. Questo array rappresenta tutti i ruoli IAM per i gruppi degli utenti, a prescindere dalla precedenza. Per ulteriori informazioni, consulta Aggiunta di gruppi a un bacino d'utenza.

aud

Il client dell'app del pool di utenti che ha autenticato l'utente. Amazon Cognito restituisce lo stesso valore nell'attestazione client_id del token di accesso.

identities

Il contenuto dell'attributo identities dell'utente. L'attributo contiene informazioni su ogni profilo di gestore dell'identità digitale di terze parti collegato a un utente, tramite accesso federato o collegando un utente federato a un profilo locale. Queste informazioni contengono il nome del gestore, il relativo ID univoco e altri metadati.

token_use

Lo scopo previsto del token. In un token ID, il valore è id.

auth_time

L'ora di fine dell'autenticazione dell'utente, in formato Unix.

exp

L'ora di scadenza del token dell'utente, in formato Unix.

iat

L'ora di emissione del token dell'utente da parte di Amazon Cognito, in formato Unix.

jti

L'identificatore univoco del JWT.

Il token ID può contenere le attestazioni standard OIDC definite nelle attestazioni standard OIDC. Il token ID può contenere inoltre gli attributi personalizzati definiti nel bacino d'utenza. Amazon Cognito scrive i valori degli attributi personalizzati nel token ID come stringhe indipendentemente dal tipo di attributo.

Nota

Gli attributi personalizzati del pool di utenti hanno sempre il prefisso. custom:

Firma del token ID

La firma del token ID viene calcolata in base all'intestazione e al payload del token JWT. Verifica la firma del token prima di accettare le attestazioni in qualsiasi token ID ricevuto dall'app. Per ulteriori informazioni, consulta Verifica di un JSON Web Token.