トークンの有効期間のクライアント単位での制御
はじめに
設定
以下の手順に従い、クライアント単位でアクセス (リフレッシュ) トークンの有効期間を設定します。
- クライアント管理コンソールにアクセスし、サービス管理者として(すなわち、クレデンシャルとして、サービスの API キーとシークレットを利用して) ログインします。
- 対象のクライアントの編集画面を開き、「拡張」タブ内の「アクセストークン有効期間秒数」、「リフレッシュトークン有効期間秒数」を設定します。
実行例
ここでは、ある 1 つのサービスに 2 つのクライアントが登録されている環境において、アクセストークンの有効期間が以下の通り設定されているものとします。
この状況において、各クライアントから送信された「インプリシットグラントフローの認可リクエスト」に対し、Authlete の /auth/authorization/issue API は以下のレスポンスを返却します。
1. クライアント 1 からリクエストされた場合
エンティティ |
アクセストークンの有効期間(秒) |
サービス |
86,400 |
クライアント 1 |
(設定なし) |
クライアント 2 |
3,000 |
この状況において、各クライアントから送信された「インプリシットグラントフローの認可リクエスト」に対し、Authlete の /auth/authorization/issue API は以下のレスポンスを返却します。
1. クライアント 1 からリクエストされた場合
{ "type":"authorizationIssueResponse", "accessTokenDuration":86400, "responseContent":"https://client.example.org/cb/example.com #access_token=1zT0XRynwLryWYRKCYSDjrwku5sD-WQTCtC1tnfExZE &token_type=Bearer &expires_in=86400 &scope=openid" }
=> サービスに設定されたアクセストークン有効期間秒数が利用されていることがわかる。
2. クライアント 2 からリクエストされた場合
{ "type":"authorizationIssueResponse", "accessTokenDuration":3000, "responseContent":"https://client.example.org/cb/example.com #access_token=xg79MJucCq8f8QPA2_o9_q5nfzgbRQycgVwYSvMSWTY &token_type=Bearer &expires_in=3000 &scope=openid" }
=> クライアント 2 に設定されたアクセストークン有効期間秒数が利用されていることがわかる。
How did we do with this article?