Skip to main content
通常、ユーザーがログインすると、次の 3 つのセッションレイヤーが作成されます。
  • アプリケーションセッションレイヤー: このレイヤーは、アプリケーション内のセッションです。アプリケーションは Auth0 を使用してユーザーを認証しますが、それとは別に、ユーザーがアプリケーションにログインしていることも管理します。たとえば、従来型の Web アプリケーションでは、この情報を Cookie に保存することで実現します。
  • Auth0 セッションレイヤー: Auth0 は、 上でもユーザーのセッションを維持し、そのユーザー情報を Cookie に保存します。このレイヤーは、次回ユーザーがログインのために Auth0 にリダイレクトされたときに、ユーザー情報を記憶しておくために使用されます。このセッションレイヤーによって、インバウンド SSO 実装での エクスペリエンスが可能になります。
  • セッションレイヤー: ユーザーが Facebook や Google などのアイデンティティプロバイダーを使ってサインインしようとしたとき、選択したプロバイダーですでに有効なサインイン状態になっていれば、通常は再度サインインを求められません。ただし、自分の情報を Auth0、ひいてはアプリケーションと共有する許可を求められる場合があります。

セッションのログアウト

Auth0 の実装における Logout とは、認証済みのセッションを終了することです。不要になったセッションは、不正な第三者による乗っ取りを防ぐために終了させるのが、セキュリティ上のベストプラクティスです。 Auth0 には、ユーザーがログアウトできるようにするためのツールが用意されています。これには、異なるレベルのログアウトを提供するためのオプションや、ログアウト完了後にユーザーの遷移先を指定するためのオプションが含まれます。
  • アプリケーションセッションレイヤーの Logout: ユーザーをアプリケーションからログアウトさせると、通常はアプリケーションセッションがクリアされます。これはアプリケーション側で処理する必要があります。アプリケーションセッションレイヤーについては、セッション終了を行うために Auth0 テナント内で使用しなければならないものはありません。そのため、使用しているアプリケーションセッションの仕組みを使って、セッション関連の情報をすべて削除する必要があります。なお、一部の Auth0 SDK ではアプリケーションセッションに対するサポートも提供されています。ローカルの SDK セッション削除が必要かどうかは、ドキュメントを確認してください。
  • Auth0 セッションレイヤーの Logout: ユーザーを Auth0 セッションレイヤーからログアウトさせるには、Auth0 が SSO Cookie をクリアできるよう、ユーザーを Auth0 の Logout エンドポイントにリダイレクトします。
    通常、Auth0 セッションはユーザーを /logout エンドポイントに誘導することでクリアします。ただし、ユーザーを更新 エンドポイントを呼び出してユーザー属性 (emailemail_verifiedphone_numberpasswordusername の各値を渡す) をリセットした場合、auth0.checkSession はセッションを更新せず、ユーザーは再度ログインする必要があります。
  • IDプロバイダー セッションレイヤーの Logout: このセッションレイヤーからユーザーをログアウトさせる必要はありませんが、必要に応じて Auth0 を使用して Logout を強制できます。

リダイレクト URL

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 を設定できます。

セッションの有効期間とセッションのタイムアウト

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

フェデレーテッドログアウト

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

詳細はこちら