O que é a introspecção de token (token introspection)?
A introspecção de token (token introspection) é uma extensão do OAuth 2.0 definida no RFC 7662 que permite que clientes consultem o Servidor de autorização para validar tokens de acesso (access tokens) e recuperar metadados sobre eles. Esta extensão é útil quando:
- O cliente deseja verificar a validade de um token de acesso (access token) em tempo real.
- O token de acesso (access token) é opaco (não auto-contido) e requer que o servidor de autorização (authorization server) o valide.
Como funciona a introspecção de token (token introspection)?
Aqui está um exemplo não normativo de uma solicitação de introspecção de 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
O parâmetro token_type_hint
é opcional e deve ser definido para o tipo de token que está sendo introspectado. Se o token de acesso (access token) for válido, o servidor de autorização (authorization server) responde com os metadados do 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 a pena notar que nem todos os servidores de autorização (authorization servers) suportam a introspecção de token (token introspection) e nem todos os tokens são introspectáveis. O Servidor de autorização pode limitar o uso da introspecção de token (token introspection) com base em vários fatores, por exemplo, alguns servidores de autorização (authorization servers) podem não suportar introspecção para JWTs .
Parâmetros chave em uma solicitação de introspecção de token
Aqui estão dois parâmetros chave em uma solicitação de introspecção de token:
token
: O token a ser introspectado.token_type_hint
: O tipo de token que está sendo introspectado. Pode seraccess_token
ourefresh_token
.