> ## Documentation Index
> Fetch the complete documentation index at: https://translations.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> 長期的なアクセスと取り消しへの応答性のバランスを取るために、Auth0 のリフレッシュトークンの絶対有効期限と非アクティブ時の有効期限を設定する方法を説明します。

# Refresh Token Expirationを設定する

<Tooltip tip="Refresh Token: ユーザーに再度ログインを求めることなく、新しいアクセストークンを取得するために使用されるトークンです。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=Refresh+tokens">
  リフレッシュトークン
</Tooltip>

は、漏えいすると新しい

<Tooltip tip="Refresh Token: ユーザーに再度ログインを求めることなく、新しいアクセストークンを取得するために使用されるトークンです。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=access+tokens">
  アクセストークン
</Tooltip>

の取得に悪用されるおそれがあります。このリスクを軽減するため、Auth0 では Automatic Reuse Detection と

<Tooltip tip="Access Token: API へのアクセスに使用される、opaque string または JWT 形式の認可資格情報です。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=Refresh+Token+Rotation">
  リフレッシュトークンローテーション
</Tooltip>

の使用を推奨しています。リフレッシュトークンローテーション では、あらかじめ設定した有効期間が過ぎると失効するリフレッシュトークンが発行されます。失効後、ユーザーには同じファミリー内の新しいリフレッシュトークン (同じファミリー ID を共有するリフレッシュトークン) 、
または新しいアクセストークンとリフレッシュトークンのペアが発行されます。詳しくは、[リフレッシュトークンローテーション](/docs/ja-jp/secure/tokens/refresh-tokens/refresh-token-rotation) を参照してください。

最大有効期限とアイドル有効期限という 2 つのリフレッシュトークンの有効期限設定は、<Tooltip tip="Auth0 Dashboard: サービスを設定するための Auth0 の主要プロダクトです。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=Auth0+Dashboard">Auth0 Dashboard</Tooltip> または Auth0 の <Tooltip tip="Auth0 Dashboard: サービスを設定するための Auth0 の主要プロダクトです。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=Management+API">Management API</Tooltip> のいずれかを使用して有効化および設定できます。最大有効期限とアイドル有効期限を組み合わせることで、セキュリティとユーザー体験のバランスを取りながら、ビジネスニーズに合った設定にできます。

* **最大有効期間**: ユーザーが新しいアクセストークンを発行される前に再認証が必要になるまでの、リフレッシュトークンまたはリフレッシュトークンファミリーの有効期間を設定します。この設定を無効にすると、最大有効期間は無期限になります。
* **アイドル有効期間**: 指定した期間中にユーザーがアプリケーションで操作しなかった場合に失効するよう、発行されたリフレッシュトークンのアイドル有効期間を設定します。

<div id="use-the-dashboard">
  ## Auth0 Dashboard を使用する
</div>

1. [Auth0 Dashboard > Applications](https://manage.auth0.com/#/applications) に移動します。
2. 設定するアプリケーションを選択します。
3. **Settings** タブに移動します。
4. **Refresh Token Expiration** で、**Set Idle Refresh Token Lifetime** を有効にします。有効にすると、リフレッシュトークンはアイドル時のリフレッシュトークンの有効期間に基づいて期限切れとなり、それ以降は使用できなくなります。ローテーションが有効になっている場合は、有効期限を設定する必要があります。

   <Frame>
     <img src="https://mintcdn.com/translations/Dcx0M11uuptU53TX/docs/images/cdy7uua7fh8z/2EnpIEc4kBxjnS3T67xPzC/22fdb95e2a2f31cee6f01e02d0a709c2/Refresh_Token_Expiration_-_English.png?fit=max&auto=format&n=Dcx0M11uuptU53TX&q=85&s=e3365765c3348db9b2cfc782ee47017e" alt="Auth0 Dashboard の Applications の Applications Settings タブの Refresh Token Expiration" width="1202" height="594" data-path="docs/images/cdy7uua7fh8z/2EnpIEc4kBxjnS3T67xPzC/22fdb95e2a2f31cee6f01e02d0a709c2/Refresh_Token_Expiration_-_English.png" />
   </Frame>
5. **Idle Refresh Token Lifetime** を秒単位で入力します。リフレッシュトークンは、指定した時間が経過すると期限切れになり、新しいアクセストークンの取得には使用できなくなります。ローテーションが有効になっている場合、アイドル時のリフレッシュトークンの有効期間は、新しいトークンを取得できる期間にも適用されます。

   | 期間    | 値                  |
   | ----- | ------------------ |
   | デフォルト | 2,592,000 秒 (30 日) |
   | 最小    | 1 秒                |
   | 最大    | 31,557,600 秒 (1 年) |

   <Callout icon="file-lines" color="#0EA5E9" iconType="regular">
     * **Idle Refresh Token Lifetime** は **Maximum Refresh Token Lifetime** を超えることはできません。
     * 1 年は、うるう年を考慮して 365.25 日として計算されます。
   </Callout>
6. **Set Maximum Refresh Token Lifetime** を有効にします。有効にすると、リフレッシュトークンは指定した最大有効期間に基づいて期限切れとなり、それ以降は使用できなくなります。
7. **Maximum Refresh Token Lifetime** を秒単位で入力します。リフレッシュトークンが指定した期間内に交換されない場合、そのリフレッシュトークンは期限切れとなり、新しいアクセストークンの取得には使用できなくなります。アイドル時のリフレッシュトークンの有効期限は、指定した期間内にリフレッシュトークンが新しいアクセストークンに交換されるたびに更新されます。

   | 期間 | 値                  |
   | -- | ------------------ |
   | 最小 | 1 秒                |
   | 最大 | 31,557,600 秒 (1 年) |
8. **Save Changes** を選択します。

<div id="use-the-management-api">
  ## Management API を使用する
</div>

Management API の [/api/v2/clients/{id}](https://auth0.com/docs/api/management/v2#!/Clients/patch_clients_by_id) エンドポイントでは、ペイロードで最大有効期間とアイドル時の有効期間を設定できます。以下は、ローテーションしないリフレッシュトークンの有効期限を設定する例です。

```json lines theme={null}
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
  }
}
```

<div id="support-and-limitations">
  ## サポートと制限事項
</div>

* **最大リフレッシュトークン有効期間**は発行時に決定され、その後は、アプリケーションの最大リフレッシュトークン有効期間が更新されても変わりません。ただし、[Actions を使用したセッション](/docs/ja-jp/manage-users/sessions/manage-sessions-actions)を使用すると、発行時に最大リフレッシュトークン有効期間を明示的に上書きできます。これには、リフレッシュトークン交換が成功した場合も含まれます。
* **アイドルリフレッシュトークン有効期間**は現在のアプリケーション設定を反映し、リフレッシュトークン交換が成功するたびに更新されます。
* アプリケーションに Maximum Refresh Token Lifetime を設定すると、そのアプリケーションが発行した有効期限のないリフレッシュトークンは、リフレッシュトークン交換が成功した後、有効期限付きのリフレッシュトークンになります。
* 有効期限のないリフレッシュトークンが有効期限付きのリフレッシュトークンになると、再び有効期限のないリフレッシュトークンに戻すことはできません。
* リフレッシュトークンの有効期限機能は、必要に応じて利用するよう選択できます。特に対応は必要ありません。既存のリフレッシュトークンには影響しません。
* リフレッシュトークンの有効期限は、次のフローで機能します。

  * [認可コードフロー](/docs/ja-jp/get-started/authentication-and-authorization-flow/authorization-code-flow)
  * [Authorization Code Flow with Proof Key for Code Exchange](/docs/ja-jp/get-started/authentication-and-authorization-flow/authorization-code-flow-with-pkce)
  * [Device Authorization Flow](/docs/ja-jp/get-started/authentication-and-authorization-flow/device-authorization-flow)
  * [Resource Owner Password Flow](/docs/ja-jp/get-started/authentication-and-authorization-flow/resource-owner-password-flow)
* すべての Auth0 SDK でリフレッシュトークンの有効期限がサポートされています。
* リフレッシュトークンの有効期限機能は、[OAuth 2.0 Security BCP recommendations](https://www.ietf.org/archive/id/draft-ietf-oauth-security-topics-16.html#section-4.13.2) に準拠しています。

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  OAuth BCP では、ブラウザベースのアプリケーション向けに発行されるリフレッシュトークンには有効期限が必要であり、さらに送信者制約を強制するか、リクエストごとにトークンをローテーションする必要があるとされています。したがって、SPA ではデフォルトでローテーションが有効になり、有効期限のないリフレッシュトークンは**サポートされません**。
</Callout>

<div id="learn-more">
  ## 詳しく見る
</div>

* [リフレッシュトークンを取得する](/docs/ja-jp/secure/tokens/refresh-tokens/get-refresh-tokens)
* [リフレッシュトークンローテーション](/docs/ja-jp/secure/tokens/refresh-tokens/refresh-token-rotation)
* [リフレッシュトークンローテーションを設定する](/docs/ja-jp/secure/tokens/refresh-tokens/configure-refresh-token-rotation)
* [リフレッシュトークンを無効化する](/docs/ja-jp/secure/tokens/refresh-tokens/revoke-refresh-tokens)
