Logo Logo
GitHub Designed by Logto

Qu’est-ce que l’introspection de jeton (Token introspection) ?

L’introspection de jeton (Token introspection) est une extension OAuth 2.0 définie dans RFC 7662 qui permet aux clients de demander au Serveur d'autorisation (Authorization server) de valider les jetons d’accès (access tokens) et de récupérer des métadonnées à leur sujet. Cette extension est utile lorsque :

  • Le client souhaite vérifier la validité d’un jeton d’accès (access token) en temps réel.
  • Le jeton d’accès (access token) est opaque (non autonome) et nécessite que le serveur d’autorisation le valide.

Comment fonctionne l’introspection de jeton (Token introspection) ?

Voici un exemple non normatif d’une requête d’introspection de jeton (token introspection) :

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

Le paramètre token_type_hint est optionnel et doit être défini sur le type de jeton examiné. Si le jeton d’accès (access token) est valide, le serveur d’autorisation répond avec les métadonnées du jeton :

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
}

Il est à noter que tous les serveurs d’autorisation ne prennent pas en charge l’introspection de jeton (token introspection) et que tous les jetons ne sont pas introspectables. Le Serveur d'autorisation (Authorization server) peut limiter l’utilisation de l’introspection de jeton en fonction de divers facteurs, par exemple, certains serveurs d’autorisation peuvent ne pas prendre en charge l’introspection pour les JWTs .

Paramètres clés dans une requête d’introspection de jeton (token introspection)

Voici deux paramètres clés dans une requête d’introspection de jeton (token introspection) :

  • token: Le jeton à introspecter.
  • token_type_hint: Le type de jeton examiné. Il peut s’agir de access_token ou de refresh_token.

Voir aussi