Refresh Token Flow

アクセストークンの期限切れ後、ユーザーを再認証させずに新しいトークンを取得する継続セッションのフローです。

PurposeRenew access
RotationRecommended
ChannelBack-channel

このフローで、
何をするの?

このフローのゴール

短時間で期限切れになるアクセストークンを、安全に更新します。

01まず全体像

API用のアクセストークンが期限切れになったら、外部へ出さず保管していたrefresh tokenをToken Endpointへ送り、新しいトークンへ交換します。

02身近な例で考える

期限の短い入館証を、厳重に保管した更新券で新しい入館証へ交換するイメージです。

03最後にどうなる?

ユーザーに毎回ログインを求めず、権限やセッションが有効な間だけ利用を継続できます。

登場人物

図では、縦の列ごとに担当者やシステムを分けています。

O
Operator

処理を開始する人や運用システムです。フローによっては途中から登場しません。

C
Client

ユーザーに代わって認可を依頼し、許可されたAPIを呼び出すアプリです。

A
Authorization

ログイン、同意、コードやトークンの発行を担当する信頼できるサーバーです。

R
Resource

アクセストークンを確認して、許可されたデータや機能を提供するAPIです。

図の読み方: 光る丸が今説明している通信です。自動再生を止めたいときは「Pause」を押し、気になる矢印を選んでください。

Interactive sequence
OOperatorResource Owner
CClientApplication
AAuthorizationToken Service
RResourceProtected API
01

Client Resource

期限切れを検知

このステップで行うこと

API応答またはexp claimからアクセストークンの期限切れを検知します。

なぜ必要?

期限切れトークンを繰り返し送信しません。

このあと

次は「更新を要求」へ進みます。

REQUEST / RESPONSE EXAMPLEProtocol operation
REQUEST
401 invalid_token
Content-Type: application/json
Accept: application/json
レスポンス
HTTP/1.1 200 OK
Content-Type: application/json
Accept: application/json

{ "status": "accepted" }

※ トークン、challenge、Credential IDなどは説明用に短縮したサンプル値です。

同じ仕様のフローを、続けて理解する。