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

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

はじめに

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

本機能は Authlete 2.1 以降でのみ利用可能になります。

設定

本機能の設定は、サービス管理者のみが行うことができます。

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

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

実行例

ここでは、ある 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 に設定されたアクセストークン有効期間秒数が利用されていることがわかる。