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

セッションのログアウト

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

リダイレクト URL

Auth0 のセッションレイヤーからログアウトするには、ユーザーを https://{yourCNAME} または {yourTenant}.auth0.com/oidc/logout にリダイレクトする必要があります。通常は、お使いの技術スタックに対応する Auth0 SDK の適切なメソッドを使用してこれを行います。これにより、Auth0 セッションがクリアされます。また、このリクエストには id_token_hint というクエリパラメーターも追加する必要があります。このパラメーターには事前登録済みの URL を含める必要があり、オープンリダイレクト攻撃の防止に役立ちます。 Auth0 は、ログアウト後に許可リストに登録された URL にのみリダイレクトします。これを設定できる場所は 2 か所あります。1 つ目は Auth0 テナント レベルで、すべてのアプリケーションで共有するログアウト URL のセットを設定できます。2 つ目はアプリケーション設定です。アプリケーションごとに異なるリダイレクト先が必要な場合は、アプリケーション設定で URL を許可リストに登録できます。これにより、アプリケーション固有のコンテキストでログアウト URL を設定できます。

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

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

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

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

詳しく見る