Comprendere il token di accesso - 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à.

Comprendere il token di accesso

Il token di accesso al bacino d'utenza contiene attestazioni relative all'utente autenticato, un elenco dei gruppi dell'utente e un elenco di ambiti. Lo scopo del token di accesso è API autorizzare le operazioni. Il pool di utenti accetta i token di accesso per autorizzare le operazioni self-service degli utenti. Ad esempio, puoi utilizzare il token di accesso per consentire agli utenti di accedere per aggiornare, modificare o eliminare gli attributi utente.

Con gli ambiti OAuth 2.0 in un token di accesso, derivati dagli ambiti personalizzati aggiunti al pool di utenti, puoi autorizzare l'utente a recuperare informazioni da un. API Ad esempio, Amazon API Gateway supporta l'autorizzazione con i token di accesso Amazon Cognito. Puoi compilare un REST API autorizzatore con le informazioni del tuo pool di utenti o utilizzare Amazon Cognito come autorizzatore Web Token JWT () per JSON un. HTTP API Per generare un token di accesso con ambiti personalizzati, è necessario effettuare la richiesta tramite gli endpoint pubblici del pool di utenti.

Il token di accesso dell'utente è l'autorizzazione a richiedere ulteriori informazioni sugli attributi dell'utente all'userInfo endpoint. Inoltre, è anche l'autorizzazione a leggere e scrivere gli attributi dell'utente. Il livello di accesso agli attributi autorizzato dal token di accesso dipende dalle autorizzazioni assegnate al client dell'app e dagli ambiti forniti nel token.

Il token di accesso è un JSONWeb Token (). JWT L'intestazione per il token di accesso ha la stessa struttura del token ID. Amazon Cognito firma i token di accesso con una chiave diversa da quella usata per la firma dei token ID. Il valore di un'attestazione ID chiave di accesso (kid) non corrisponde al valore dell'attestazione kid di un token ID nella stessa sessione utente. Verifica nel codice dell'app i token ID e di accesso in modo indipendente. Non considerare attendibili le attestazioni contenute in un token di accesso finché non verifichi la firma. Per ulteriori informazioni, consulta Verifica di un token Web JSON. È possibile configurare il periodo di scadenza del token di accesso su qualsiasi valore compreso tra 5 minuti e 1 giorno. Puoi configurare questo valore per il client dell'app.

Importante

Per i token ID e di accesso non specificare un valore minimo inferiore a un'ora se utilizzi l'interfaccia utente ospitata. Amazon Cognito HostedUI utilizza cookie validi per un'ora. Inserendo un minimo di meno di un'ora, non si otterrà un tempo di scadenza inferiore.

Intestazione del token di accesso

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

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

L'ID della chiave . Il suo valore indica la chiave utilizzata per proteggere la firma JSON Web (JWS) del token. È possibile visualizzare la chiave IDs di firma del pool di utenti sull'jwks_uriendpoint.

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 pool di utenti utilizzano un algoritmo RS256 crittografico, che è una RSA firma con SHA -256.

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

Payload predefinito del token di accesso

Questo è un esempio di payload di un token di accesso. Per ulteriori informazioni, consulta la sezione JWTreclami. Puoi aggiungere rivendicazioni personalizzate con unTrigger Lambda di pre-generazione del token.

<header>. { "sub":"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee", "device_key": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee", "cognito:groups":[ "testgroup" ], "iss":"https://cognito-idp.us-west-2.amazonaws.com/us-west-2_example", "version":2, "client_id":"xxxxxxxxxxxxexample", "origin_jti":"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee", "event_id":"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee", "token_use":"access", "scope":"phone openid profile resourceserver.1/appclient2 email", "auth_time":1676313851, "exp":1676317451, "iat":1676313851, "jti":"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee", "username":"my-test-user" } .<token signature>
sub

Un identificatore univoco (UUID), o oggetto, per l'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.

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>

client_id

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

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'operazione. RevokeTokenAPI Quando revochi un token, Amazon Cognito invalida tutti i token di accesso e ID con lo stesso valore origin_jti.

token_use

Lo scopo previsto del token. In un token di accesso, il valore è access.

scope

Un elenco di ambiti OAuth 2.0 che definiscono l'accesso fornito dal token. Un token dell'Endpoint Token può contenere tutti gli ambiti supportati dal client dell'app. Un token di API accesso ad Amazon Cognito contiene solo l'ambito. aws.cognito.signin.user.admin

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 di. JWT

username

Il nome utente nel pool di utenti.

Firma del token di accesso

La firma del token di accesso viene calcolata in base all'intestazione e al payload del token. JWT Se utilizzata al di fuori di un'applicazione sul WebAPIs, è sempre necessario verificare questa firma prima di accettare il token. Per ulteriori informazioni, consulta Verifica di un token Web JSON.