- アプリケーションセッションレイヤー: このレイヤーは、アプリケーション内のセッションです。アプリケーションは Auth0 を使用してユーザーを認証しますが、同時に、ユーザーがアプリケーションにログイン済みであることも管理します。たとえば、従来の Web アプリケーションでは、この情報を cookie に保存することで実現します。
- Auth0 セッションレイヤー: Auth0 は、ユーザーの 上でもセッションを維持し、ユーザー情報を cookie に保存します。このレイヤーは、次回ユーザーがログインのために Auth0 にリダイレクトされたときに、ユーザー情報を記憶しておくために使用されます。このセッションレイヤーにより、インバウンド SSO の実装で エクスペリエンスが可能になります。
- セッションレイヤー: ユーザーが Facebook や Google などの IDプロバイダーを使用してサインインしようとした際、選択したプロバイダーですでに有効なサインイン状態であれば、再度サインインを求められることはありません。ただし、自分の情報を Auth0 に、ひいてはアプリケーションに共有する許可を求められる場合があります。
セッションのログアウト
- アプリケーションセッションレイヤーのログアウト: 通常、ユーザーをアプリケーションからログアウトすると、アプリケーションのセッションはクリアされます。これはアプリケーション側で処理する必要があります。アプリケーションセッションレイヤーについては、セッション終了を行うために Auth0 テナント内で使用するものはありません。そのため、使用しているアプリケーションのセッション管理の仕組みを使って、セッション関連の情報を削除する必要があります。なお、一部の Auth0 SDK ではアプリケーションセッションに対するサポートも提供されています。ローカルの SDK セッション削除が必要かどうかについては、ドキュメントを確認してください。
-
Auth0 セッションレイヤーのログアウト: ユーザーを Auth0 のログアウトエンドポイントにリダイレクトすることで、Auth0 セッションレイヤーからログアウトさせることができます。これにより、Auth0 が SSO クッキーをクリアします。
通常、Auth0 セッションをクリアするには、ユーザーを
/logoutエンドポイントにリダイレクトします。ただし、Update a User エンドポイントを呼び出してユーザーの属性 (email、email_verified、phone_number、password、usernameの値を渡す) をリセットした場合、auth0.checkSessionはセッションを更新せず、ユーザーは再度ログインする必要があります。 - IDプロバイダー セッションレイヤーのログアウト: このセッションレイヤーからユーザーをログアウトさせる必要はありませんが、必要に応じて Auth0 を使用してログアウトを強制できます。
リダイレクト URL
https://{yourCNAME} または {yourTenant}.auth0.com/oidc/logout にリダイレクトする必要があります。通常は、お使いの技術スタックに対応する Auth0 SDK の適切なメソッドを使用してこれを行います。これにより、Auth0 セッションがクリアされます。また、このリクエストには id_token_hint というクエリパラメーターも追加する必要があります。このパラメーターには事前登録済みの URL を含める必要があり、オープンリダイレクト攻撃の防止に役立ちます。
Auth0 は、ログアウト後に許可リストに登録された URL にのみリダイレクトします。これを設定できる場所は 2 か所あります。1 つ目は Auth0 テナント レベルで、すべてのアプリケーションで共有するログアウト URL のセットを設定できます。2 つ目はアプリケーション設定です。アプリケーションごとに異なるリダイレクト先が必要な場合は、アプリケーション設定で URL を許可リストに登録できます。これにより、アプリケーション固有のコンテキストでログアウト URL を設定できます。
セッションの有効期間とタイムアウト
フェデレーテッドログアウト
/oidc/logout へのリダイレクトに federated クエリパラメーターを追加することで、この動作を Auth0 で実現できます。これにより、ユーザーはIDプロバイダーにリダイレクトされ、そこでのセッションからもログアウトされます。フェデレーテッドログアウトの詳細については、Log Users Out of Identity Providers を参照してください。