トークン無効化ポリシー
概要
Authlete では、/auth/revocation API を使って特定のアクセストークン(またはリフレッシュトークン)を削除した場合、そのアクセストークンに紐づくリフレッシュトークン(またはそのリフレッシュトークンに紐づくアクセストークン)も同時に削除します。
詳細
クライアントからリボケーションリクエストを受け取った認可サーバーは、そのリクエストの内容を "parameters" パラメーターに格納し、Authlete の /auth/revocation API を呼びだすことになります。
RFC 7009 で定義されているように、クライアントからのリボケーションリクエストは下記のパラメーターから構成されます。
パラメーター |
条件 |
値 |
token |
REQUIRED |
無効化しようとしているアクセストークンまたはリフレッシュトークンの値。 |
token_type_hint |
OPTIONAL |
無効化しようとしているトークンの種類のヒント。access_token または refresh_token。 |
/auth/revocation API が呼び出されたとき、Authlete は token_type_hint の値からトークンの種類を推定し、最初にその種類を対象にトークンデータベースを検索します。もし見つからなかった場合には、次に別の種類についても検索を行います。
つまり Authlete は、token_type_hint をレコードの検索順を決定するために利用します。アクセストークンまたはリフレッシュトークンの一方のみを削除する、といった動作にはなりません。
以下に動作の詳細を示します。
token_type_hint |
検索順 |
削除されるトークン |
なし |
アクセストークンのレコードを検索した後、リフレッシュトークンのレコードを検索。token の値に一致するレコードがあった場合、当該トークンを削除。 |
アクセストークンおよびリフレッシュトークン |
access_token |
同上 |
同上 |
refresh_token |
リフレッシュトークンのレコードを検索した後、アクセストークンのレコードを検索。token の値に一致するレコードがあった場合、当該トークンを削除。 |
同上 |
How did we do with this article?