トークンの有効期間のクライアント単位での制御

はじめに


本記事では、アクセス (リフレッシュ) トークンの有効期間をクライアント単位で設定する方法について解説します。トークンの有効期間の詳細については「トークンの有効期間の計算ロジック」をご覧ください。


設定



以下の手順に従い、クライアント単位でアクセス (リフレッシュ) トークンの有効期間を設定します。

  1. クライアント管理コンソールにアクセスし、サービス管理者として(すなわち、クレデンシャルとして、サービスの API キーとシークレットを利用して) ログインします。
  2. 対象のクライアントの編集画面を開き、「拡張」タブ内の「アクセストークン有効期間秒数」、「リフレッシュトークン有効期間秒数」を設定します。

実行例


ここでは、ある 1 つのサービスに 2 つのクライアントが登録されている環境において、アクセストークンの有効期間が以下の通り設定されているものとします。
エンティティ
アクセストークンの有効期間(秒)
サービス
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?