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à.
Comprensione del 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 è autorizzare le operazioni API. 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
Con il piano di funzionalità Essentials o Plus, puoi anche implementare un trigger Lambda prima della generazione di token che aggiunge ambiti ai token di accesso in fase di esecuzione. Per ulteriori informazioni, consulta Trigger Lambda di pre-generazione del token.
Il token di accesso di un utente con lo openid
scopo è l'autorizzazione a richiedere ulteriori informazioni sugli attributi dell'utente al. Endpoint UserInfo La quantità di informazioni dall'userInfo
endpoint deriva dagli ambiti aggiuntivi del token di accesso: ad esempio, per tutti i dati dell'utente, profile
per il relativo indirizzo email
e-mail.
Il token di accesso di un utente con lo aws.cognito.signin.user.admin
scopo è l'autorizzazione a leggere e scrivere gli attributi utente, elencare i fattori di autenticazione, configurare le preferenze di autenticazione a più fattori (MFA) e gestire i dispositivi ricordati. Il livello di accesso agli attributi che il token di accesso concede a questo ambito corrisponde alle autorizzazioni di lettura/scrittura degli attributi che assegni al client dell'app.
Il token di accesso è un token Web JSON (JWT)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 dei 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 di accesso e ID, non specificare un periodo minimo inferiore a un'ora se utilizzi l'accesso gestito. L'accesso gestito imposta i cookie del browser che sono validi per un'ora. Se si configura una durata del token di accesso inferiore a un'ora, ciò non ha alcun effetto sulla validità del cookie di accesso gestito e sulla capacità degli utenti di riautenticarsi senza credenziali aggiuntive per un'ora dopo l'accesso iniziale.
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 valore indica quale chiave è utilizzata per proteggere la firma JWS (JSON Web Signature) del token. È possibile visualizzare la chiave di firma del pool di utenti sull'endpoint. IDs
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 pool di utenti utilizzano un algoritmo RS256 crittografico, che è 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 di accesso
Questo è un esempio di payload di un token di accesso. Per ulteriori informazioni, consultare la sezione relativa alle attestazioni JWT
<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.
us-east-1
.amazonaws.com/us-east-1_EXAMPLE
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_jti
affermazione quando verifica se hai revocato il token dell'utente con l'operazione Endpoint Revoke o l'RevokeTokenAPI. Quando revochi un token, Amazon Cognito non convalida più 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 rilasciato all'utente che ha effettuato l'accesso. Gli ambiti definiscono l'accesso che il token fornisce alle operazioni self-service esterne APIs degli utenti e ai dati degli utenti sull'endpoint.
userInfo
Un token dell'Endpoint Token può contenere tutti gli ambiti supportati dal client dell'app. Un token dell'accesso API di Amazon Cognito contiene solo l'ambitoaws.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 del JWT.
username
-
Il nome utente dell'utente nel pool di utenti.
Firma del token di accesso
La firma del token di accesso, firmata con la chiave pubblicizzata sull'.well-known/jwks.json
endpoint, convalida l'integrità dell'intestazione e del payload del token. Quando utilizzi i token di accesso per autorizzare l'accesso a utenti esterni APIs, configura sempre l'autorizzatore dell'API per verificare questa firma rispetto alla chiave che l'ha firmata. Per ulteriori informazioni, consulta Verifica dei token web JSON.