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 エンドポイントを呼び出すことを確認する必要があります。

endpoint discovery を有効にする

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

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

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

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

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

id_token_hint パラメーター

Auth0 では、OIDC Logout エンドポイントを呼び出す際に id_token_hint パラメーターを使用することを推奨しています。
id_token_hint パラメーターの値には、ユーザーが認証された後に Auth0 が発行した ID トークンを指定する必要があります。 ID トークンには、検証に使用する登録済みクレームの issuer (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. アプリケーション設定: id_token_hint パラメーター、または logout_hint パラメーターと client_id パラメーターを指定する場合。
  2. テナント設定: logout_hint パラメーターのみを指定する場合。
アプリケーションの Allowed Logout URLs を更新する
Auth0 Dashboard または Auth0 Management API を使用して、アプリケーションの Allowed Logout URLs のリストに URL を登録できます。
Auth0 Dashboard でアプリケーションの Allowed Logout URLs のリストに URL を登録するには、次の手順に従います。
  1. Auth0 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. Auth0 Dashboard > 設定 > 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 を含める必要があります。そうしないと、logout request は拒否されます。URL は、すべてのクエリパラメータ名と値を含めて、完全に一致している必要があります。 たとえば、https://example.com/logout?myParam=1234post_logout_redirect_uri パラメーターに渡す場合 (https%3A%2F%2Fexample.com%2Flogout%3FmyParam%3D1234 としてエンコードされます) 、完全な URL https://example.com/logout?myParam=1234Allowed Logout URLs に含める必要があります。
動的なクエリパラメータ値はサポートされていません。クエリパラメータ名と値の組み合わせごとに、Allowed Logout URLs に個別のエントリとして登録する必要があります。

ui_locales パラメーター

ui_locales パラメーターの値は、スペース区切りの サポートされているロケール のリストである必要があります。 リストの最初の値は、テナントのデフォルト言語設定 と一致している必要があります。

federated パラメーター

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

詳細はこちら