メインコンテンツへスキップ
Dashboard または Auth0 SPA SDK を使用して、各アプリケーションの ローテーションを設定します。を有効にすると、ユーザーに影響を与えることなく移行できます。アプリケーションは、従来の有効期限内の非ローテーション型リフレッシュトークンを使用し、それをローテーション型リフレッシュトークンに交換します。 移行シナリオでは、非ローテーション型リフレッシュトークンからローテーション型リフレッシュトークンへの移行時と、その逆方向への移行時に、トークンの自動失効に対応しています。
  • リフレッシュトークンローテーションが有効な場合: 非ローテーション型リフレッシュトークンを交換すると、新しいローテーション型リフレッシュトークンが発行され、同じ client_id、ユーザー、テナントに対して発行されたすべての非ローテーション型トークンが削除されます。
  • リフレッシュトークンローテーションが無効な場合: ローテーション型リフレッシュトークンを交換すると、非ローテーション型リフレッシュトークンが発行され、同じ client_id、リソースサーバー、ユーザー、テナントに対して発行されたローテーション型リフレッシュトークンファミリーが失効します。

Dashboard で設定する

  1. Dashboard > Applications に移動します。
  2. 設定するアプリケーションを選択します。
  3. Settings タブに移動します。
  4. リフレッシュトークンローテーション で、Allow Refresh Token Rotation を有効にします。
    Dashboard Applications Applications Settings Tab Refresh Token Rotation
  5. 自動再利用検知がトリガーされる前に、リクエストとレスポンスの間の猶予時間を考慮できるよう、リフレッシュトークンの Rotation Overlap Period (秒) を入力します。 このオーバーラップ期間により、一定時間内にローテーションされるリフレッシュトークンを複数回交換する際の同時実行に関する問題を回避しやすくなります。猶予期間中は侵害検知機能は適用されず、新しいローテーションされたリフレッシュトークンが発行されます。再利用できるのは直前のトークンのみです。ひとつ前よりさらに前のトークンを交換すると、侵害検知がトリガーされます。
  6. Save Changes を選択します。
リフレッシュトークンローテーションは、リフレッシュトークンのグラントタイプが有効な OIDC 準拠アプリケーションでのみサポートされています。

Auth0 SPA SDK で設定する

Auth0 SPA SDK を使用して、リフレッシュトークンローテーションを有効にできます。クライアント SDK でオフラインアクセスを有効にし、offline_access スコープを要求する必要があります。
  1. 最新版の auth0-spa-js SDK をインストールします。 npm install @auth0/auth0-spa-js
  2. SDK で useRefreshTokens: true を設定してこの機能を有効にし、offline_access スコープの送信を開始します。
  3. リフレッシュトークンローテーションの設定を構成します。例:
    PATCH /api/v2/clients/{client_id}
    {
      "refresh_token": {
        "rotation_type": "rotating",
        "expiration_type": "expiring",
        "token_lifetime": "2592000",
        "leeway": 3
      }
    }
    
    属性説明
    rotation_type文字列: “rotating” または “non-rotating”
    expiration_type文字列: “expiring” または “non-expiring”
    token_lifetimeリフレッシュトークンローテーション が有効な場合、リフレッシュトークンのデフォルトの有効期間は 30 日 (2,592,000 秒) です。最大 1 年 (31,557,600 秒) まで設定できます。トークンがローテーションされても有効期間は延長されません。
    leewayクライアントが同じリフレッシュトークンで再試行した際に、ネットワークの同時実行による問題でトークンが無効にならないよう、一定時間内であれば同じリフレッシュトークンの使用を許可します。デフォルトでは leeway は無効です。秒単位で設定できます。
リフレッシュトークンローテーションは、リフレッシュトークン グラントタイプが有効な OIDC 準拠アプリケーションでのみサポートされます。

自動再利用検出

以前に無効化されたトークンが使用されると、その無効化されたトークンの発行以降に発行されたすべてのリフレッシュトークンは、グラントとともに直ちに失効し、ユーザーは再認証が必要になります。

詳しく見る