メインコンテンツへスキップ
Auth0 は、Okta Workforce Identity との Universal Logout 統合をサポートしています。これにより、管理上またはセキュリティ上のイベントが発生したときに、ユーザーをアプリケーションからログアウトできます。 Universal Logout は、Global Token Revocation 仕様を実装しています。これは、確立された Connect のバックチャネルログアウト標準に加えて、ユーザーセッションだけでなく も失効させます。 この包括的なログアウトソリューションは、リフレッシュトークン、アプリケーションセッション、新しいトークンの取得やユーザーのログイン状態の維持に使われる セッションを組み合わせて利用する従来の Web アプリケーション、シングルページアプリケーション (SPA) 、ネイティブアプリケーションに対応します。 Workforce Identity とフェデレーションするために OktaSAML、または OpenID Connect の接続タイプを使用している場合は、Okta Universal Logout と連携するための グローバルトークン失効 エンドポイントを独自に構築する必要はありません。代わりに、Auth0 の接続固有のエンドポイント URL を Okta Workforce 管理者に提供し、必要に応じて Auth0 の OpenID Connect Back-Channel Logout を使用してアプリケーションセッションを終了できます。

仕組み

Auth0 のグローバルトークン失効エンドポイントは、Build Logout for your app に記載されているプロファイルに従います。ログアウトリクエストでユーザーを識別するために iss_sub 形式を使用し、URL 形式は次のとおりです。 https://{yourDomain}/oauth/global-token-revocation/connection/{yourConnectionName} Auth0 がユーザーのログアウトリクエストを受信すると、Okta Workforce Identity から発行された または アサーションの検証に使用するものと同じ鍵セットで、そのリクエストを検証します。続いて、そのユーザーのすべての Auth0 セッション を終了し、Auth0 が発行した リフレッシュトークン を失効させ、設定されている場合は OpenID Connect Back-Channel Logout をトリガーしてアプリケーションセッションを失効させます。
Universal Logout を使用したユーザーワークフロー
アプリケーションのユーザーがアクセスを失うまでにかかる時間は、アプリケーションの種類と Auth0 との統合方法によって異なります。Auth0 は、OIDC および のアイデンティティ標準と、Auth0 の Quickstarts と SDKs のサポートを通じて、幅広い アプリケーションアーキテクチャ をサポートしています。具体的には、次のようなものがあります。
  • 独自の アプリケーションセッション を作成する従来型の Web アプリケーションは、セキュアなバックエンド経由で API にアクセスするために、リフレッシュトークンと を使用する場合があります。
  • Auth0 セッションレイヤー を活用したり、リフレッシュトークンローテーション のような手法を使用したりして、Web ブラウザー内で API へのアクセスに必要なアクセストークンを取得する、ブラウザーベースの JavaScript アプリケーション。
  • Web ブラウザー上では実行されず、ユーザーのサインイン状態を維持する主な手段としてリフレッシュトークンとアクセストークンを使用する、ネイティブアプリケーションまたはモバイルアプリケーション。

リフレッシュトークンと Auth0 ユーザーセッションを失効させる

リフレッシュトークンを使用しているアプリケーション、または Auth0 セッションを利用しているアプリケーションでは、Universal Logout 統合を有効にすると、次のセキュリティ上のメリットが得られます。
  • Auth0 セッションを利用するブラウザベースのアプリでは、アプリケーションが次回 Auth0 セッションをポーリングするとユーザーはアクセスできなくなり、リダイレクトされると Auth0 によって再度サインインを求められます
  • リフレッシュトークンを使用するアプリでは、現在のアクセストークンの有効期限が切れ次第、ユーザーはアクセスできなくなります。この有効期限は、数秒から Auth0 で設定された アクセストークンの最大有効期間 までの範囲です。

アプリケーションのユーザーセッションを無効化する

Web アプリケーションで作成されたセッションについては、Universal Logout によって Auth0 のユーザーセッションが終了された際に、それらのセッションも終了されるよう、Auth0 の既存の OpenID Connect Back-Channel Logout 機能を使用してください。詳細は、Auth0 SDK の実装例 を参照してください。

Auth0 で Universal Logout を設定する

Auth0 の接続タイプ別に Universal Logout を設定します。

Okta Workforce

  1. Auth0 テナントを Okta Workforce Identity に接続します
  2. Auth0 Dashboard で、Authentication > Enterprise > Okta Workforce に移動します。対象の接続を選択し、Settings をクリックします。
  3. Okta Workforce の管理者に渡す Revocation Endpoint URL をコピーします。

OpenID Connect

新しい OpenID Connect 統合には、専用の Okta Workforce 接続タイプを使用することを強く推奨します。ただし、古い統合でも、Auth0 Dashboard の OpenID Connect Settings で汎用の OpenID Connect 接続タイプを使用すれば、引き続き Universal Logout を有効にできます。
  1. Auth0 Dashboard で、Authentication > Enterprise > OpenID Connect. に移動します。対象の接続を選択し、Settings を選択します。
  2. Okta Workforce 管理者に提供する Revocation Endpoint URL をコピーします。

SAML

  1. Okta を SAML IDプロバイダーとして設定する
  2. Auth0 Dashboard で Authentication > Enterprise > SAML に移動します。対象の接続を選択し、Settings をクリックします。
  3. Subject には、Okta Workforce Identity に登録された SAML アプリケーションの Application ID を入力します。例: 0oagcc12354688xxxx。詳細については、How to Obtain an Application ID を参照してください。
  4. Issuer には、Okta Workforce Identity の組織で登録された SAML アプリケーションに移動し、issuer URI をコピーします。
    この値を取得するには、WIC 管理者は Okta ポータルの Applications > Applications > [Application] > Authentication > Sign-on settings > Sign-on methods > SAML 2.0 > More details に移動します。
  5. Revocation Endpoint URL をコピーします。この URL は Okta Workforce の管理者に提供します。

Okta Workforce Identity で Universal Logout を設定する

Okta Workforce Identity で Universal Logout を設定して、Auth0 接続を介してアプリケーションにログアウトシグナルを送信します。この操作は Okta 管理者が実行する必要があります。

前提条件

以下が必要です。

Okta を設定する

Auth0 の接続について、Okta Workforce 組織 で Universal Logout を有効にします。
  1. Okta ポータルで、Applications > Applications を選択します。
  2. Auth0 連携用に登録したアプリケーションを選択します。
  3. General タブで、Logout > Edit を選択します。
    Universal Logout を設定する Okta Dashboard の画像
  4. Okta system or admin initiates logout を選択します。
  5. Auth0 からコピーした URL を Logout Endpoint URL に入力します。
  6. Subject FormatIssuer and Subject Identifier を選択します。
  7. Save を選択します。

Universal Logout をテストする

選択したユーザーのセッションを無効化して、Okta Workforce Identity で Universal Logout をテストします。
  1. Okta ポータルで、Directory > People を選択します。
  2. Auth0 アプリケーションにサインインしているユーザーを選択します。
  3. More Actions > Clear User Sessions を選択します。
    Okta Dashboard で Universal Logout をテストする
  4. ダイアログで、Also include logout enabled apps and Okta API tokens を選択します。
  5. Clear and Revoke を選択します。

ログと通知

Auth0テナントの管理者は、Auth0 が受信した各 Universal Logout リクエストのステータスと詳細を、Auth0 Dashboard > Monitoring > Logs で確認できます。Universal Logout で出力されるログイベントタイプについては、Log Event Type Codes を参照してください。 また、Custom Log Streams と連携して、Universal Logout イベントが発生したときに外部システムへ通知することもできます。

Management API

Management API を使用して、Universal Logout をプログラムで設定することもできます。これは、設定を自動化する場合や、 の外部で独自の設定を構築する場合に便利です。 Okta Workforce および OpenID 接続では、Okta Workforce の管理者に提示する必要があるのは Auth0 のグローバル トークン失効エンドポイントのみであるため、 への入力は不要です。 SAML 接続の場合、エンドポイント URL の共有に加えて、connection オブジェクトに次の属性を設定して Universal Logout を構成する必要があります。
  • options.global_token_revocation_jwt_iss - Okta Workforce Identity に登録された SAML アプリケーションのissuer ID。値の例: http://www.okta.com/exkhwkmkwhZUnuA6xxxx
  • options.global_token_revocation_jwt_sub - Okta Workforce Identity に登録された SAML アプリケーションのApplication ID。値の例: 0oagcc12354688xxxx
これらの属性は、Management API 呼び出しで SAML 接続を更新または作成する際に使用できます。リクエストを作成するには、次の JSON 例を参照してください。
JSON
{
	"strategy": "samlp",
  	"name": "CONNECTION_NAME",
  	"options": {
    	"global_token_revocation_jwt_iss": "ISS_VALUE", 
     	"global_token_revocation_jwt_sub":  "SUB_VALUE",
    	"signInEndpoint": "SIGN_IN_ENDPOINT_URL",
    	"signOutEndpoint": "SIGN_OUT_ENDPOINT_URL",
    	"signatureAlgorithm": "rsa-sha256",
    	"digestAlgorithm": "sha256",
    	"fieldsMap": {
     		...
    	},
    	"signingCert": "BASE64_SIGNING_CERT"
  	}
}
詳細は、Management API を使用してエンタープライズ接続を作成するを参照してください。