OIDCバックチャネルログアウトイニシエータ

OIDCバックチャネルログアウトイニシエータを使用すると、セッション終了イベントに基づいて、ユーザーをリモートでアプリケーションからログアウトさせることができます。OIDCバックチャネルログアウトイニシエータは、IDプロバイダー(IdP)起点のSAMLログアウト要求など、プロトコルを超えて動作し、サードパーティーのクッキー制限には影響されません。

この機能はOIDCバックチャネルの標準仕様を拡張したものです。この機能を構成すると、パスワードの変更やセッションの期限切れなどの特定のセッション終了イベント、またはすべてのセッション終了イベントに対して、OIDCバックチャネルログアウト要求を開始できるようになります。

管理者はAuth0 Management APIを使って、特定のアプリケーションに対してこの機能を有効にすることができます。

OIDCバックチャネルログアウトイニシエータの仕組み

イニシエータは、OIDCバックチャネルログアウト応答をセッション終了イベントにバインドします。イベントをキャプチャして、対象のセッションに関連付けられているすべてのアプリケーションでOIDCログアウトトークンをトリガーするのに使用します。

下の図は、パスワード変更イベントについて、OIDCバックチャネルログアウトイニシエータの動作をまとめたものです。

OIDCバックチャネルログアウトイニシエータを構成する

OIDCバックチャネルログアウトイニシエータはAuth0 Management APIを使って構成することができます。

Management API

Auth0 Management APIでOIDCバックチャネルログアウトイニシエータを構成するには、クライアント更新エンドポイントを使用します。

  1. update:clientsスコープを持つManagement APIアクセストークンを取得します。

  2. ペイロードに適切な構成データを含めて、クライアント更新エンドポイントを呼び出します。たとえば、パスワード変更イベントの後でアプリケーションからログアウトさせるには、以下を提供します。

    codeblockOld.header.login.configureSnippet
    PATCH /api/v2/clients/{yourClientId}
    {
      ...
      "oidc_logout": {
        "backchannel_logout_urls": ["https://example.com/cb"]
        "backchannel_logout_initiators": {
          "mode":"custom",
          "selected_initiators": ["rp-logout", "idp-logout", "password-changed"]
        }
      }
      ...
    }

    Was this helpful?

    /

プロパティ

backchannel_logout_initiatorsオブジェクトは以下のプロパティをサポートしています。

プロパティ タイプ 必須? 説明 サポートされている値
mode 文字列 必須 イニシエーターを有効にするための構成方法。 customall
selected_initiators 配列 modecustomの場合は必須 有効にするイニシエーターのリスト。 rp-logoutidp-logoutpassword-changedsession-expiredsession-revokedaccount-deletedemail-identifier-changed

modeプロパティ

modeプロパティはイニシエータを有効化するための構成メソッドを定義します。

デフォルトではcustomに設定され、有効化したいイニシエータを指定できるようになっています。IdPセッションの終了後に必ずアプリケーションをログアウトさせたい場合には、allに設定します。

modeプロパティは以下の値をサポートしています。

説明
custom selected_initiators配列にリストされたイニシエーターのみを有効にします。
all 現在および将来のすべてのイニシエーターを自動的に有効にします。

selected_initiatorsプロパティ

selected_initiatorsプロパティには、指定されたアプリケーションに対して有効化するイニシエータのリストが含まれます。

selected_initiatorsプロパティは以下の値をサポートしています。

説明
rp-logout 要求がリライングパーティー(RP)によって開始されました。
idp-logout 要求が外部IDプロバイダー(IdP)によって開始されました。
password-changed 要求がパスワードの変更によって開始されました。
session-expired 要求がセッションの期限切れによって開始されました。
session-revoked 要求がセッションの削除によって開始されました。
account-deleted 要求がアカウントの削除によって開始されました。
email-identifier-changed 要求がメール識別子の変更によって開始されました。

アプリケーションを現在と未来のイニシエータすべてに登録する

codeblockOld.header.login.configureSnippet
PATCH /api/v2/clients/{yourClientId}

{
  ...
  "oidc_logout": {
    "backchannel_logout_urls": ["https://example.com/cb"]
    "backchannel_logout_initiators": {
      "mode":"all"
    }
  }
  ...
}

Was this helpful?

/

アプリケーションをパスワード変更のイニシエータにのみ登録する(rp-logoutとidp-logoutが必要)

codeblockOld.header.login.configureSnippet
PATCH /api/v2/clients/{yourClientId}

{
  ...
  "oidc_logout": {
    "backchannel_logout_urls": ["https://example.com/cb"]
    "backchannel_logout_initiators": {
      "mode":"custom",
      "selected_initiators": ["rp-logout", "idp-logout", "password-changed"]
    }
  }
  ...
}

Was this helpful?

/

すべてのイニシエータを登録解除する(rp-logoutはデフォルトで登録されたままになる)

codeblockOld.header.login.configureSnippet
PATCH /api/v2/clients/{yourClientId}

{
  ...
  "oidc_logout": {
	  "backchannel_logout_urls": ["https://example.com/cb"]
  }
  ...
}

Was this helpful?

/

ダッシュボード

OpenID Connectバックチャネルログアウトは他のアプリケーション設定と並行して構成できます。この機能は、バックチャネルログアウトURIが提供されると、自動的にアクティブ化されます。

Dashboard > Applications > Application Settings

Selected initiators only(選択されたイニシエータのみ)

必要なイニシエータ(rp-logoutidp-logout)のみがデフォルトで登録されます。他の追加のイニシエータは、未来に追加されるものも含めて、前もって選択しておかないと、アプリケーションからログアウトを開始できません。

選択したイニシエータについてのみアプリケーションをログアウトさせたい場合には、このオプションを選択します。

All supported initiators(すべてのサポートされているイニシエータ)

すべてのサポートされているイニシエータが、未来に追加されるものも含めて、デフォルトで登録されます。

IdPセッションの終了時に必ずアプリケーションをログアウトさせたい場合には、このオプションを選択します。