> ## 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="セッションクッキー: 存在すると、ユーザーが認証済みと見なされるようにする実体。" cta="用語集を見る" href="/ja/docs/glossary?term=session+cookie">session cookie</Tooltip> が <Tooltip tip="セッションクッキー: 存在すると、ユーザーが認証済みと見なされるようにする実体。" cta="用語集を見る" href="/ja/docs/glossary?term=Authorization+Server">Authorization Server</Tooltip> とやり取りしない場合に、セッションが期限切れになるまでの期間です。セルフサービスプランでは 3 日、エンタープライズプランでは 100 日を超えると、システムの制限が優先されます。
* **Maximum Session Lifetime**: ユーザーのアクティビティに関係なく、再度ログインが必要になるまでの期間です。セルフサービスプランでは 30 日、エンタープライズプランでは 365 日を超えると、システムの制限が優先されます。

これらの設定はテナント単位で構成します。[Auth0 Dashboard](/ja/docs/manage-users/sessions/configure-session-lifetime-settings) または <Tooltip tip="Management API: 顧客が管理タスクを実行できるようにする製品。" cta="用語集を見る" href="/ja/docs/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 の一覧に含まれている必要があります。
* これにより、そのテナント全体の Auth0 セッション、つまり `client_id` で指定したアプリケーションだけでなく、定義済みのすべてのアプリケーションのセッションが終了します。`client_id` を渡すのは、/`logout` エンドポイントに、ログアウト URL の許可リストをどこで参照すべきかを示すためです。

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

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

ユーザーが Auth0 セッションの更新を伴う操作を何も行っていない場合は、セッションを明示的に継続するかどうかをユーザーに選ばせるよう案内することをお勧めします。このアプローチの目的は、ユーザーがその場を離れた場合にはセッションを非アクティブにできるようにしつつ、引き続き利用中であればサイレントなトークン更新を実行する手段を提供し、認証情報の再入力を求められることなくセッションを継続できるようにすることです。

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

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

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

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