Che cos’è l’introspezione del token (Token introspection)?
L’introspezione del token è un’estensione di OAuth 2.0 definita in RFC 7662 che consente ai client di interrogare il Server di autorizzazione per convalidare i token di accesso e recuperare i metadati su di essi. Questa estensione è utile quando:
- Il client vuole verificare la validità di un token di accesso in tempo reale.
- Il token di accesso è opaco (non autonomo) e richiede che il server di autorizzazione lo convalidi.
Come funziona l’introspezione del token (Token introspection)?
Ecco un esempio non normativo di una richiesta di introspezione del token:
POST /introspect HTTP/1.1
Host: authorization-server.example.com
Content-Type: application/x-www-form-urlencoded
token=random-token-value
&token_type_hint=access_token
Il parametro token_type_hint
è opzionale e dovrebbe essere impostato sul tipo di token che viene introspezionato. Se il token di accesso è valido, il server di autorizzazione risponde con i metadati del token:
HTTP/1.1 200 OK
Content-Type: application/json
{
"active": true,
"scope": "read write",
"client_id": "client-id",
"username": "johndoe",
"token_type": "Bearer",
"exp": 1634020800,
"iat": 1634017200
}
Vale la pena notare che non tutti i server di autorizzazione supportano l’introspezione del token e non tutti i token sono introspezionabili. Il Server di autorizzazione può limitare l’uso dell’introspezione del token in base a vari fattori, ad esempio, alcuni server di autorizzazione potrebbero non supportare l’introspezione per i JWT .
Parametri chiave in una richiesta di introspezione del token
Ecco due parametri chiave in una richiesta di introspezione del token:
token
: Il token da introspezionare.token_type_hint
: Il tipo di token che viene introspezionato. Può essereaccess_token
orefresh_token
.