> ## 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 セッションレイヤー、アプリケーションセッション、Auth0 セッション、IdP セッションレイヤーについて説明します。

# セッションレイヤー

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

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

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

Auth0 の実装における Logout とは、認証済みのセッションを終了することです。不要になったセッションは、不正な第三者による乗っ取りを防ぐために終了させるのが、セキュリティ上のベストプラクティスです。

Auth0 には、ユーザーがログアウトできるようにするためのツールが用意されています。これには、異なるレベルのログアウトを提供するためのオプションや、ログアウト完了後にユーザーの遷移先を指定するためのオプションが含まれます。

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

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

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

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

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

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

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

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

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

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

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