トークンインスペクション (Token introspection) とは?
トークンインスペクション (Token introspection) は、 RFC 7662 に定義されている OAuth 2.0 の拡張機能であり、 クライアント (clients) が 認可サーバー (authorization server) にアクセスできるトークンを照会して検証し、それに関するメタデータを取得できるようにします。この拡張は以下の場合に便利です:
- クライアントがアクセスできるトークンをリアルタイムで検証したい場合。
- オペークトークン (opaque token) (自己包含されていない)であり、認可サーバーに検証を求める必要がある場合。
トークンインスペクション (Token introspection) はどのように機能しますか?
以下は、トークンインスペクション (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
token_type_hint
パラメーターはオプションで、インスペクションするトークンのタイプに設定されるべきです。アクセスできるトークンが有効であれば、認可サーバーはトークンのメタデータで応答します:
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
}
すべての認可サーバーがトークンインスペクション (Token introspection) をサポートするわけではなく、すべてのトークンがインスペクションされるわけではないことを注意してください。 認可サーバー (authorization server) はさまざまな要因に基づいてトークンインスペクションの使用を制限する場合があります。例えば、いくつかの認可サーバーは JWTs のインスペクションをサポートしないかもしれません。
トークンインスペクション (Token introspection) リクエストの主要パラメーター
ここに、トークンインスペクション (Token introspection) リクエストの主要な 2 つのパラメーターがあります:
token
: インスペクションするトークン。token_type_hint
: インスペクションするトークンのタイプ。それはaccess_token
またはrefresh_token
になることができます。