> ## 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.

> ユーザーのログイン時に作成されるレイヤーについて説明します。

# セッションレイヤー

通常、ユーザーがログインすると、次の 3 つのセッションレイヤーが作成されます。

* **アプリケーションセッションレイヤー**: このレイヤーは、アプリケーション内のセッションです。アプリケーションは Auth0 を使用してユーザーを認証しますが、同時に、ユーザーがアプリケーションにログイン済みであることも管理します。たとえば、従来の Web アプリケーションでは、この情報を cookie に保存することで実現します。
* **Auth0 セッションレイヤー**: Auth0 は、ユーザーの <Tooltip tip="認可サーバー: ユーザーのアクセス境界の定義に寄与する集中管理型サーバーです。たとえば、認可サーバーはユーザーが利用できるデータ、タスク、機能を制御できます。" cta="用語集を見る" href="/ja/docs/glossary?term=Authorization+Server">認可サーバー</Tooltip> 上でもセッションを維持し、ユーザー情報を cookie に保存します。このレイヤーは、次回ユーザーがログインのために Auth0 にリダイレクトされたときに、ユーザー情報を記憶しておくために使用されます。このセッションレイヤーにより、インバウンド SSO の実装で <Tooltip tip="シングルサインオン（SSO）: ユーザーが 1 つのアプリケーションにログインすると、他のアプリケーションにも自動的にログインできるようにするサービスです。" cta="用語集を見る" href="/ja/docs/glossary?term=SSO">SSO</Tooltip> エクスペリエンスが可能になります。
* **<Tooltip tip="IDプロバイダー（IdP）: デジタルアイデンティティを保存および管理するサービスです。" cta="用語集を見る" href="/ja/docs/glossary?term=Identity+Provider">IDプロバイダー</Tooltip> セッションレイヤー**: ユーザーが Facebook や Google などの IDプロバイダーを使用してサインインしようとした際、選択したプロバイダーですでに有効なサインイン状態であれば、再度サインインを求められることはありません。ただし、自分の情報を Auth0 に、ひいてはアプリケーションに共有する許可を求められる場合があります。

<div id="session-logout">
  ### セッションのログアウト
</div>

Auth0 実装におけるログアウトとは、認証済みセッションを終了することです。不要になったセッションは、権限のない第三者に乗っ取られる可能性を避けるため、終了することがセキュリティのベストプラクティスです。

Auth0 には、ユーザーにログアウト機能を提供するための手段が用意されています。これには、異なるレベルのログアウトを提供するためのオプションや、ログアウト完了後にユーザーをどこへ遷移させるかを決めるためのオプションが含まれます。

* **アプリケーションセッションレイヤーのログアウト**: 通常、ユーザーをアプリケーションからログアウトすると、アプリケーションのセッションはクリアされます。これはアプリケーション側で処理する必要があります。アプリケーションセッションレイヤーについては、セッション終了を行うために Auth0 テナント内で使用するものはありません。そのため、使用しているアプリケーションのセッション管理の仕組みを使って、セッション関連の情報を削除する必要があります。なお、一部の Auth0 SDK ではアプリケーションセッションに対するサポートも提供されています。ローカルの SDK セッション削除が必要かどうかについては、ドキュメントを確認してください。
* **Auth0 セッションレイヤーのログアウト**: ユーザーを Auth0 のログアウトエンドポイントにリダイレクトすることで、Auth0 セッションレイヤーからログアウトさせることができます。これにより、Auth0 が SSO クッキーをクリアします。

  <Callout icon="file-lines" color="#0EA5E9" iconType="regular">
    通常、Auth0 セッションをクリアするには、ユーザーを `/logout` エンドポイントにリダイレクトします。ただし、[Update a User](https://auth0.com/docs/api/management/v2/#!/Users/patch_users_by_id) エンドポイントを呼び出してユーザーの属性 (`email`、`email_verified`、`phone_number`、`password`、`username` の値を渡す) をリセットした場合、`auth0.checkSession` はセッションを更新せず、ユーザーは再度ログインする必要があります。
  </Callout>
* **IDプロバイダー セッションレイヤーのログアウト**: このセッションレイヤーからユーザーをログアウトさせる必要はありませんが、必要に応じて Auth0 を使用してログアウトを強制できます。

<div id="redirect-urls">
  #### リダイレクト URL
</div>

Auth0 のセッションレイヤーからログアウトするには、ユーザーを `https://{yourCNAME}` または `{yourTenant}.auth0.com/oidc/logout` にリダイレクトする必要があります。通常は、お使いの技術スタックに対応する Auth0 SDK の適切なメソッドを使用してこれを行います。これにより、Auth0 セッションがクリアされます。また、このリクエストには `id_token_hint` というクエリパラメーターも追加する必要があります。このパラメーターには事前登録済みの URL を含める必要があり、オープンリダイレクト攻撃の防止に役立ちます。

Auth0 は、ログアウト後に許可リストに登録された URL にのみリダイレクトします。これを設定できる場所は 2 か所あります。1 つ目は Auth0 テナント レベルで、すべてのアプリケーションで共有するログアウト URL のセットを設定できます。2 つ目はアプリケーション設定です。アプリケーションごとに異なるリダイレクト先が必要な場合は、アプリケーション設定で URL を許可リストに登録できます。これにより、アプリケーション固有のコンテキストでログアウト URL を設定できます。

<div id="session-lifetime-and-session-timeout">
  #### セッションの有効期間とタイムアウト
</div>

ユーザーがアプリケーションから明示的にログアウトしない場合の動作を設定できます。Auth0 では、このような場合の Auth0 セッションの終了に対応するため、[セッションの有効期間](/ja/docs/manage-users/sessions/session-lifetime-limits) の制限が提供されています。

<div id="federated-logout">
  #### フェデレーテッドログアウト
</div>

IDプロバイダーのセッションレイヤーからもユーザーをログアウトさせることができます。これは推奨されませんが、多くのプロバイダーでは、`/oidc/logout` へのリダイレクトに `federated` クエリパラメーターを追加することで、この動作を Auth0 で実現できます。これにより、ユーザーはIDプロバイダーにリダイレクトされ、そこでのセッションからもログアウトされます。フェデレーテッドログアウトの詳細については、[Log Users Out of Identity Providers](/ja/docs/authenticate/login/logout/log-users-out-of-idps) を参照してください。

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

* [セッションの有効期間制限](/ja/docs/manage-users/sessions/session-lifetime-limits)
