> ## 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 では、セッション有効期間について次の 2 つの設定を構成できます。

* **Idle Session Lifetime**: ユーザーの <Tooltip tip="セッション Cookie: これが存在すると、ユーザーは認証済みと見なされます。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=session+cookie">セッション Cookie</Tooltip> が <Tooltip tip="セッション Cookie: これが存在すると、ユーザーは認証済みと見なされます。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=Authorization+Server">認可サーバー</Tooltip> とやり取りしない状態が続いた場合に、セッションの有効期限が切れるまでの期間です。セルフサービスプランで 3 日、Enterprise plan で 100 日を超える場合は、システムの上限が適用されます。
* **Maximum Session Lifetime**: ユーザーのアクティビティに関係なく、再度ログインが必要になるまでの期間です。セルフサービスプランで 30 日、Enterprise plan で 365 日を超える場合は、システムの上限が適用されます。

これらの設定はテナント単位で構成され、[Auth0 Dashboard](/docs/ja-jp/manage-users/sessions/configure-session-lifetime-settings) または <Tooltip tip="Management API: 顧客が管理タスクを実行できるようにする製品。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=Management+API">Management API</Tooltip> を使用して設定できます。

ユーザーが新たに通常のログインを行うと、ログインセッションはリセットされます。例を示します。

1. **Idle Session Lifetime** の上限を 3 日、**Require log in after** の上限を 30 日に設定します。
2. ユーザーがログインすると、入力した値がそのユーザーのセッションに設定されます。

   1. ユーザーが 3 日間の **Idle Session Lifetime** 内にアクティブであれば、セッションの有効期間はさらに 3 日延長されます。以後も 3 日ごとにユーザーがアクティブである限り、**Maximum Session Lifetime** の上限に達するまで、セッションの有効期間はさらに 3 日ずつ延長されます。この時点で、ユーザーは再度ログインする必要があります。
   2. ユーザーが 3 日間アクティビティのない状態だと、自動的にログアウトされます。
3. ユーザーのログイン中に既存のセッション有効期間の上限を延長した場合、新しい設定は既存のセッションが終了し、ユーザーが再度ログインするまで反映されません。
4. ユーザーのログイン中に既存の有効期間の上限を短縮した場合、新しい設定はユーザーの次回のアクティビティ時にただちに反映されます。これにより、セキュリティ上の目的でセッション有効期間を短縮できます。

<div id="application-specific-logout-urls">
  ### アプリケーション固有のログアウト URL
</div>

アプリケーション固有のログアウト URL を使用する際は、重要な注意点が 2 つあります。

* `/oidc/logout` エンドポイントを呼び出すときは、**必ず** `client_id` をクエリパラメータとして送信する必要があります。また、`id_token_hint` URL は、そのアプリケーションで許可されているログアウト URL の一覧に含まれている必要があります。
* これにより、`client_id` に対応するアプリケーションだけでなく、定義されているすべてのアプリケーションについて、テナント全体の Auth0 セッションが終了します。`client_id` を渡すのは、/`logout` エンドポイントに対して、ログアウト URL のホワイトリストをどこで参照するかを示すためです。

ユーザーのログアウト後、Auth0 がリダイレクトするのは、この一覧に定義されている URL のみです。

ログアウト後にユーザーをアプリケーションへリダイレクトし、そのアプリケーションが、そのユーザーの認証済みセッションがまだ残っている<Tooltip tip="IDプロバイダー（IdP）: デジタルアイデンティティを保存および管理するサービス。" cta="用語集を表示" href="/docs/ja-jp/glossary?term=identity+provider">アイデンティティプロバイダー</Tooltip>にリダイレクトする場合、ユーザーは自動的に再度アプリケーションへログインされ、ログアウトが機能しなかったように見えることがあります。このような場合は、アプリケーションに専用のログアウト後ランディングページを用意し、正常にログアウトしたことをユーザーに伝えることをお勧めします。必要に応じて、アイデンティティプロバイダーにはまだログインしたままの可能性があることも案内できます。

ユーザーが Auth0 セッションを更新するような操作を何も行っていない場合は、セッションを明示的に継続するかどうかをユーザーが選べるようにしておくことをお勧めします。この方法の目的は、ユーザーがその場にいなくなった場合はセッションを非アクティブにできるようにしつつ、そうでない場合はサイレントトークン更新をトリガーする手段を提供し、資格情報の入力を再度求められることなくセッションを継続できるようにすることです。

* **非アクティブタイマー**: Auth0 セッションの最大アイドル時間に合わせて、React SDK ラッパーにローリングタイマーを追加します。トークンがアプリケーションに返されるたびに、タイマーをリセットします。
* **タイムアウトモーダル**: タイマーが有効期限の 60 秒前になったら、ユーザーにログアウトするかセッションを継続するかの選択を求めるタイムアウトモーダルをレンダリングする必要があります。

  * **セッションを継続する**: ユーザーがセッションの継続を選択した場合は、`getTokenSilently()` メソッドを使用して、現在操作しているページからリダイレクトすることなく新しいトークンを要求します。
  * **ログアウトする**: ユーザーがログアウトを選択した場合は、Auth0 セッションも確実に終了するよう、`logout()` メソッドを呼び出す必要があります。
  * **アイドルタイムアウト**: アイドルタイムアウトに達した場合でも、直ちに何らかのアクションを行う必要はありません。ユーザーが別のタブではまだアクティブである可能性があるため、この場合の動作はユーザーをログアウトさせること**ではありません**。
  * その他の方法としては、モーダルにログインボタンを追加する、window\.onfocus イベントを使って `getTokenSilently()` をトリガーする、またはユーザーをランディングページにリダイレクトすることなどがあります。

<div id="learn-more">
  ## 詳細はこちら
</div>

* [セッションの有効期間設定を行う](/docs/ja-jp/manage-users/sessions/configure-session-lifetime-settings)
* [アクセストークンの有効期間を更新する](/docs/ja-jp/secure/tokens/access-tokens/update-access-token-lifetime)
* [ID トークンの有効期間を更新する](/docs/ja-jp/secure/tokens/id-tokens/update-id-token-lifetime)
