メインコンテンツへスキップ
は、漏えいすると新しい の取得に悪用される可能性があるため、攻撃の標的になり得ます。このリスクを軽減するため、Auth0 では Automatic Reuse Detection と の使用を推奨しています。リフレッシュトークンのローテーションでは、あらかじめ設定したライフタイムの経過後に期限切れとなるリフレッシュトークンが発行されます。有効期限が切れると、ユーザーは同じファミリー、つまり同じファミリー ID を共有するリフレッシュトークン群に属する新しいリフレッシュトークン、 または新しいアクセストークンとリフレッシュトークンのペアを取得します。詳細については、リフレッシュトークンのローテーション を参照してください。 最大有効期限とアイドル有効期限という 2 つのリフレッシュトークンのライフタイム設定は、 または Auth0 を使用して有効化および設定できます。最大有効期限とアイドル有効期限を組み合わせることで、ビジネスニーズに合ったセキュリティとユーザー体験のバランスを取ることができます。
  • 最大ライフタイム: 新しいアクセストークンが発行される前にユーザーが再認証を求められるまでの、リフレッシュトークンまたはリフレッシュトークンファミリーのライフタイムを設定します。この設定を無効にすると、最大ライフタイムは無期限になります。
  • アイドルライフタイム: 指定した期間中にユーザーがアプリケーション内でアクティブでない場合に、発行済みのリフレッシュトークンが期限切れになるよう、アイドルライフタイムを設定します。

Dashboard を使用する

  1. Dashboard > Applications に移動します。
  2. 設定するアプリケーションを選択します。
  3. Settings タブを開きます。
  4. リフレッシュトークン Expiration で、Set Idle リフレッシュトークン Lifetime を有効にします。有効にすると、リフレッシュトークンはアイドルリフレッシュトークンの有効期間に基づいて期限切れとなり、その後は使用できなくなります。ローテーションが有効な場合は、有効期間を設定する必要があります。
    Dashboard Applications Applications Settings Tab Refresh Token Expiration
  5. Idle リフレッシュトークン Lifetime を秒単位で入力します。指定した期間が経過するとリフレッシュトークンは期限切れとなり、新しいアクセストークンの取得には使用できなくなります。ローテーションが有効な場合、アイドルリフレッシュトークンの有効期間は、新しいトークンを取得できる期間にも適用されます。
    LifetimeValue
    既定値2,592,000 秒 (30 日)
    最小値1 秒
    最大値31,557,600 秒 (1 年)
    • Idle リフレッシュトークン LifetimeMaximum リフレッシュトークン Lifetime を超えることはできません。
    • 1 年は、うるう年を考慮して 365.25 日として計算されます。
  6. Set Maximum リフレッシュトークン Lifetime を有効にします。有効にすると、リフレッシュトークンは指定した最大リフレッシュトークン有効期間に基づいて期限切れとなり、その後は使用できなくなります。
  7. Maximum リフレッシュトークン Lifetime を秒単位で入力します。指定した期間内にリフレッシュトークンが交換されない場合、そのリフレッシュトークンは期限切れとなり、新しいアクセストークンの取得には使用できなくなります。アイドルリフレッシュトークンの有効期間は、指定した期間内にリフレッシュトークンが新しいアクセストークンに交換されるたびに更新されます。
    LifetimeValue
    最小値1 秒
    最大値31,557,600 秒 (1 年)
  8. Save Changes を選択します。

Management API を使用する

Management API エンドポイント /api/v2/clients/ のペイロード内で、最大有効期間とアイドル時の有効期間を設定できます。以下は、ローテーションしないリフレッシュトークンの有効期限を設定する例です。
PATCH /api/v2/clients/{id}
{
  "refresh_token": {
      "rotation_type": "non-rotating",
      "expiration_type": "expiring",
      "token_lifetime": 2592000,
      "infinite_token_lifetime": false,
      "idle_token_lifetime": 604800,
      "infinite_idle_token_lifetime": false
  }
}

サポートと制限事項

  • 最大リフレッシュトークン有効期間は発行時に決定され、その後は有効期間中ずっと固定されます。アプリケーションの最大リフレッシュトークン有効期間を更新しても変わりません。ただし、Actions を使用したセッションを使うことで、発行時に最大リフレッシュトークン有効期間を明示的に上書きできます。これは、リフレッシュトークン交換が成功した場合も含まれます。
  • アイドルリフレッシュトークン有効期間は現在のアプリケーション設定を反映し、リフレッシュトークン交換が成功するたびに更新されます。
  • アプリケーションに Maximum リフレッシュトークン Lifetime を設定すると、そのアプリケーションが発行した有効期限のないリフレッシュトークンは、リフレッシュトークン の交換が成功した時点で有効期限付きのリフレッシュトークンになります。
  • 有効期限のないリフレッシュトークンが有効期限付きのリフレッシュトークンになると、有効期限のないリフレッシュトークンに戻すことはできません。
  • リフレッシュトークンの有効期限機能はオプトインで使用できます。特別な対応は必要ありません。既存のリフレッシュトークンには影響しません。
  • リフレッシュトークンの有効期限は、次のフローで機能します。
  • すべての Auth0 SDK でリフレッシュトークンの有効期限がサポートされています。
  • リフレッシュトークンの有効期限機能は、OAuth 2.0 Security BCP recommendations に準拠しています。
OAuth BCP では、ブラウザーベースのアプリケーション向けに発行されるリフレッシュトークンには有効期限が必要であり、さらに sender-constraint を適用するか、リクエストごとにトークンをローテーションする必要があるとされています。そのため、SPA ではデフォルトでローテーションが有効になり、有効期限のないリフレッシュトークンはサポートされません

詳しく見る