- リフレッシュトークンのローテーションが有効な場合 :
ローテーションしないリフレッシュトークンを交換すると新しいリフレッシュトークンが発行され、同じ
client_id
、リソースサーバー、ユーザー、およびテナントに対して発行されたローテーションしないトークンがすべて削除されます。 - リフレッシュトークンのローテーションが無効な場合 :
ローテーションするリフレッシュトークンを交換するとローテーションしないリフレッシュトークンが発行され、同じ
client_id
、リソースサーバー、ユーザー、およびテナントに対して発行されたローテーションするリフレッシュトークンファミリーが失効します。
Dashboardで構成する
- [Dashboard]>[Applications(アプリケーション)]に移動します。
- 構成したいアプリケーションを選択します。
- [Settings(設定)] タブに移動します。
-
[Refresh Token Rotation(リフレッシュトークンのローテーション)] で、[Allow Refresh Token Rotation(リフレッシュトークンのローテーションを許可する)] を有効にします。.
- 自動再利用検出をトリガーする前に、要求と応答の間に時間の余裕を持たせるために、リフレッシュトークンに対して、[Rotation Overlap Period(ローテーションのオーバーラップ期間)] を秒単位で入力します。このオーバーラップ期間は、指定された時間枠内でローテーションするリフレッシュトークンを複数回にわたって交換するときに、同時実行の問題を回避するのに役立ちます。この期間中、侵害検出機能は適用されず、ローテーションする新しいリフレッシュトークンが発行されます。再利用できるのは直前のトークンのみです。最後から2番目のトークンが交換されると、侵害検出がトリガーされます。
- [Save Changes(変更の保存)] を選択します。
リフレッシュトークンのローテーションは、リフレッシュトークンの付与タイプが有効化されているOIDC準拠のアプリケーションにのみ使用できます。
Auth0 SPA SDKで構成する
Auth0 SPA SDKを使用して、リフレッシュトークンのローテーションを有効にすることができます。オフラインアクセスを有効にして、クライアントSDKでオフラインアクセスのスコープを要求しなければなりません。-
最新バージョンの
auth0-spa-js
SDKをインストールします:npm install @auth0/auth0-spa-js
-
SDKで機能を有効にするには、
offline_access
スコープの送信を開始するようにuseRefreshTokens: true
を設定します。 codeblockOld.header.login.logInButton codeblockOld.header.login.configureSnippet - リフレッシュトークンのローテーション設定を構成します。例:
属性 | 説明 |
---|---|
rotation_type | テキスト文字列:rotatingまたはnon-rotating |
expiration_type | テキスト文字列:expiringまたはnon-expiring |
token_lifetime | リフレッシュトークンのローテーションが有効化されている場合、リフレッシュトークンのデフォルトの有効期限は30日(2,592,000秒)です。1年(31,557,600秒)までを構成することができます。トークンがローテーションされても、ライフタイムは延長されません。 |
leeway | 潜在的なネットワークの同時並行で、クライアントが同じリフレッシュトークンを使って再試行をした際にトークンが無効となり、動作不能になることを考慮して、指定の時間内に同じリフレッシュトークンが使用されることを許容します。デフォルトでは無効に設定されています。この余裕時間は秒単位で構成します。 |
リフレッシュトークンのローテーションは、リフレッシュトークンの付与タイプが有効化されているOIDC準拠のアプリケーションにのみ使用できます。