- アプリケーションセッションレイヤー: このレイヤーは、アプリケーション内のセッションです。アプリケーションは Auth0 を使用してユーザーを認証しますが、それとは別に、ユーザーがアプリケーションにログインしていることも管理します。たとえば、従来型の Web アプリケーションでは、この情報を Cookie に保存することで実現します。
- Auth0 セッションレイヤー: Auth0 は、 上でもユーザーのセッションを維持し、そのユーザー情報を Cookie に保存します。このレイヤーは、次回ユーザーがログインのために Auth0 にリダイレクトされたときに、ユーザー情報を記憶しておくために使用されます。このセッションレイヤーによって、インバウンド SSO 実装での エクスペリエンスが可能になります。
- セッションレイヤー: ユーザーが Facebook や Google などのアイデンティティプロバイダーを使ってサインインしようとしたとき、選択したプロバイダーですでに有効なサインイン状態になっていれば、通常は再度サインインを求められません。ただし、自分の情報を Auth0、ひいてはアプリケーションと共有する許可を求められる場合があります。
セッションのログアウト
- アプリケーションセッションレイヤーの Logout: ユーザーをアプリケーションからログアウトさせると、通常はアプリケーションセッションがクリアされます。これはアプリケーション側で処理する必要があります。アプリケーションセッションレイヤーについては、セッション終了を行うために Auth0 テナント内で使用しなければならないものはありません。そのため、使用しているアプリケーションセッションの仕組みを使って、セッション関連の情報をすべて削除する必要があります。なお、一部の Auth0 SDK ではアプリケーションセッションに対するサポートも提供されています。ローカルの SDK セッション削除が必要かどうかは、ドキュメントを確認してください。
-
Auth0 セッションレイヤーの Logout: ユーザーを Auth0 セッションレイヤーからログアウトさせるには、Auth0 が SSO Cookie をクリアできるよう、ユーザーを Auth0 の Logout エンドポイントにリダイレクトします。
通常、Auth0 セッションはユーザーを
/logoutエンドポイントに誘導することでクリアします。ただし、ユーザーを更新 エンドポイントを呼び出してユーザー属性 (email、email_verified、phone_number、password、usernameの各値を渡す) をリセットした場合、auth0.checkSessionはセッションを更新せず、ユーザーは再度ログインする必要があります。 - IDプロバイダー セッションレイヤーの Logout: このセッションレイヤーからユーザーをログアウトさせる必要はありませんが、必要に応じて Auth0 を使用して Logout を強制できます。
リダイレクト URL
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 を設定できます。
セッションの有効期間とセッションのタイムアウト
フェデレーテッドログアウト
/oidc/logout へのリダイレクトに federated クエリパラメータを追加することで、Auth0 はこの動作を提供しています。これにより、ユーザーはアイデンティティプロバイダーにリダイレクトされ、そこでログアウトされます。フェデレーテッドログアウトの詳細については、Log Users Out of Identity Providers を参照してください。