Skip to main content
Auth0 は、エンドユーザーのログアウト向けに Connect の RP-Initiated Logout 1.0 を実装しています。この標準は、OpenID Connect の 最終仕様群の一部です。

仕組み

RP-Initiated Logout は、 (ユーザー) が OpenID プロバイダー (Auth0) にログアウトを要求するシナリオです。
  1. ユーザーがアプリケーションでログアウトを開始します。
  2. アプリケーションがユーザーを Auth0 Authentication API の OIDC Logout エンドポイントにリダイレクトします。
  3. Auth0 は、指定された OIDC Logout エンドポイントパラメーター に基づいて、ユーザーを適切な宛先にリダイレクトします。

RP-Initiated Logout を設定する

RP-Initiated Logout を設定するには、アプリケーションが Auth0 テナントのディスカバリー メタデータ ドキュメントend_session_endpoint パラメーターを確認でき、必要なパラメーターを指定して OIDC Logout エンドポイントを呼び出せるようにする必要があります。

エンドポイントの検出を有効にする

2023年11月14日以降に作成されたAuth0テナントでは、RP-Initiated Logout End Session Endpoint Discovery はデフォルトで有効です。
または Auth0 の RP-Initiated Logout End Session Endpoint Discovery を有効にできます。
Dashboard で RP-Initiated Logout End Session Endpoint Discovery を有効にするには、次の手順を実行します。
  1. Dashboard > Settings > Advanced に移動します。
  2. Login and Logout セクションを探します。
  3. RP-Initiated Logout End Session Endpoint Discovery のトグルを有効にします。

OIDC Logout エンドポイントを呼び出す

Auth0 の SDK ライブラリ のほとんどは OIDC に準拠しており、RP-Initiated Logout を標準でサポートしています。
OIDC Logout エンドポイントを呼び出す際、Auth0 では id_token_hint パラメーターを指定することを推奨しています。 アプリケーションで を安全に保存できない場合は、代わりに logout_hint パラメーターと client_id パラメーターを指定できます。
OIDC Logout エンドポイントは、重複する情報を含めて呼び出すこともできます。たとえば、id_token_hint パラメーターと logout_hint パラメーター、または id_token_hint パラメーターと client_id パラメーターを送信できます。いずれの場合も、Auth0 はユーザーとセッションのデータに整合性があるかを確認し、不一致がある場合はエラーを返します。

OIDC Logout エンドポイントのパラメーター

Authentication API の OIDC Logout エンドポイントは、次のパラメーターをサポートします。

id_token_hint パラメーター

Auth0 では、OIDC Logout エンドポイントを呼び出す際に id_token_hint パラメーターを使用することを推奨しています。
id_token_hint パラメーターの値には、ユーザーの認証後に Auth0 が発行した IDトークン を指定する必要があります。 IDトークン には、検証に使用される登録済みクレームの発行者 (iss) 、 (aud) 、および Auth0 セッション ID (sid) が含まれます。IDトークン のクレームの詳細については、ID Token Structure を参照してください。

logout_hint パラメーター

logout_hint パラメーターの値には、ユーザーの現在の Auth0 セッションのセッション ID (sid) を指定する必要があります。 セッション ID (sid) は、ユーザーの認証後に Auth0 が発行した IDトークンに、登録済みクレームとして含まれています。
現在のセッションの開始時に Auth0 が発行した IDトークンに関連付けられたセッション ID (sid) を使用する必要があります。Auth0 は、ランダムな値や現在のセッション データを反映していない値を含むリクエストを無視します。

post_logout_redirect_uri パラメーター

post_logout_redirect_uri パラメーターの値は、有効でエンコード済みの URL であり、次のいずれかの Allowed Logout URLs リストに登録されている必要があります。
  1. Application settings: id_token_hint パラメーター、または logout_hint パラメーターと client_id パラメーターを指定する場合。
  2. Tenant settings: logout_hint パラメーターのみを指定する場合。
アプリケーションの Allowed Logout URLs を更新
Auth0 Dashboard または Management API を使用して、アプリケーションの Allowed Logout URLs 一覧に URL を登録できます。
Dashboard でアプリケーションの Allowed Logout URLs 一覧に URL を登録するには、次の手順に従います。
  1. Dashboard > Applications > Applications に移動します。
  2. 対象のアプリケーションを選択します。
  3. Application URIs セクションを見つけます。
  4. ガイドラインに従って、Allowed Logout URLs を更新します。
テナントの Allowed Logout URLs を更新する
Auth0 Dashboard または Auth0 Management API を使用して、テナントの Allowed Logout URLs リストに URL を登録できます。
Auth0 Dashboard でテナントの Allowed Logout URLs リストに URL を登録するには、次の手順に従います。
  1. Dashboard > Settings > Advanced に移動します。
  2. Login and Logout セクションを見つけます。
  3. ガイドライン に従って Allowed Logout URLs を更新します。
Allowed Logout URLs のガイドライン
検証エラーを避けるため、Allowed Logout URLs を更新する際は、次のガイドラインに従ってください。
  • 複数の URL 値はコンマ (,) で区切ります。
  • URL スキーム (たとえば https://) を含めます。
サブドメインのワイルドカードとしてアスタリスク (*) を使用できます (例: https://*.example.com) 。ただし、本番環境ではワイルドカードを使用しないことを推奨します。詳細については、Subdomain URL Placeholders を参照してください。
post_logout_redirect_uri にクエリ文字列パラメーターを追加する
OIDC Logout エンドポイントは、post_logout_redirect_uri パラメーターで指定された URL に含まれるクエリ文字列パラメーターを解析します。 Allowed Logout URLs には、クエリ文字列パラメーターを含む完全一致の URL を追加する必要があります。追加しない場合、ログアウトリクエストは拒否されます。URL は、すべてのクエリパラメーター名と値を含めて完全に一致している必要があります。 たとえば、post_logout_redirect_uri パラメーターに https://example.com/logout?myParam=1234 (https%3A%2F%2Fexample.com%2Flogout%3FmyParam%3D1234 としてエンコード) を渡す場合は、完全な URL https://example.com/logout?myParam=1234Allowed Logout URLs に追加する必要があります。
動的なクエリパラメーター値はサポートされていません。クエリパラメーター名と値の組み合わせごとに、一意の値を Allowed Logout URLs に個別のエントリとして登録する必要があります。

ui_locales パラメーター

ui_locales パラメーターの値は、サポートされているロケールをスペース区切りで並べたリストである必要があります。 リストの先頭に指定する値は、テナントの Default Language 設定と一致している必要があります。

federated パラメーター

federated パラメーターに値は必要ありません。 OIDC Logout エンドポイントの呼び出し時に federated パラメーターを含めると、Auth0 はユーザーをその IDプロバイダーからログアウトさせることを試みます。 OIDC 標準では、OpenID プロバイダーがそのリクエストがユーザー本人によるものだと確認できない場合、ログアウトフローを中断して、ユーザーに同意を求めるプロンプトを表示する必要があると定義されています。 Auth0 は、次のいずれかの条件を検出すると、ログアウト同意プロンプトを表示してこの動作を実施します。
  • id_token_hint パラメーターと logout_hint パラメーターのどちらも指定されていない。
  • IDトークンの sid クレームが、リクエスト内のブラウザーセッションに対応していない。
  • logout_hint パラメーターの値が、現在のセッションデータと一致しない。
ユーザーがログアウトリクエストを確認すると、Auth0 はログアウトフローを続行します。 ログアウト同意プロンプトは無効にできます。無効にすると、Auth0 は異常な動作の検出を行わず、ログアウトリクエストを自動的に受け付けます。 Dashboard でログアウト同意プロンプトを無効にするには、次の手順に従います。
  1. Dashboard > Settings > Advanced に移動します。
  2. Show RP-Initiated Logout End-User Confirmation トグルを無効にします。

詳細