Passa al contenuto principale

3. Identificatori del Tipo di Token

Diversi parametri in questa specifica utilizzano un identificatore come valore per descrivere il token in questione. Nello specifico, sono i parametri requested_token_type, subject_token_type e actor_token_type della richiesta e il membro issued_token_type della risposta. Gli identificatori del tipo di token sono URI. Lo scambio di token può funzionare sia con token emessi da altre parti che con token dal server di autorizzazione specificato. Per i primi, l'identificatore del tipo di token indica la sintassi (ad esempio, JWT o SAML 2.0) in modo che il server di autorizzazione possa analizzarlo; per i secondi, indica per cosa il server di autorizzazione specificato lo ha emesso (ad esempio, access_token o refresh_token).

I seguenti identificatori del tipo di token sono definiti da questa specifica. Altri URI POSSONO essere utilizzati per indicare altri tipi di token.

urn:ietf:params:oauth:token-type:access_token Indica che il token è un token di accesso OAuth 2.0 emesso dal server di autorizzazione specificato.

urn:ietf:params:oauth:token-type:refresh_token Indica che il token è un token di aggiornamento OAuth 2.0 emesso dal server di autorizzazione specificato.

urn:ietf:params:oauth:token-type:id_token Indica che il token è un ID Token come definito nella Sezione 2 di [OpenID.Core].

urn:ietf:params:oauth:token-type:saml1 Indica che il token è un'asserzione SAML 1.1 [OASIS.saml-core-1.1] codificata in base64url.

urn:ietf:params:oauth:token-type:saml2 Indica che il token è un'asserzione SAML 2.0 [OASIS.saml-core-2.0-os] codificata in base64url.

Il valore urn:ietf:params:oauth:token-type:jwt, definito nella Sezione 9 di [JWT], indica che il token è un JWT.

La distinzione tra un token di accesso e un JWT è sottile. Un token di accesso rappresenta una decisione di autorizzazione delegata, mentre JWT è un formato di token. Un token di accesso può essere formattato come un JWT ma non deve necessariamente esserlo. E un JWT potrebbe benissimo essere un token di accesso, ma non tutti i JWT sono token di accesso. L'intento di questa specifica è che urn:ietf:params:oauth:token-type:access_token sia un indicatore che il token è un tipico token di accesso OAuth emesso dal server di autorizzazione in questione, opaco per il client e utilizzabile allo stesso modo di qualsiasi altro token di accesso ottenuto da quel server di autorizzazione. (Potrebbe benissimo essere un JWT, ma il client non è e non ha bisogno di essere a conoscenza di questo fatto.) Mentre, urn:ietf:params:oauth:token-type:jwt serve a indicare specificamente che viene richiesto o inviato un JWT (forse in un caso d'uso interdominio in cui il JWT viene utilizzato come concessione di autorizzazione per ottenere un token di accesso da un server di autorizzazione diverso come facilitato da [RFC7523]).

Si noti che per i token di natura binaria, l'URI utilizzato per trasmetterli deve essere associato alla semantica di una codifica base64 o altra codifica adatta per l'utilizzo con HTTP e OAuth.