> ## Documentation Index
> Fetch the complete documentation index at: https://docs-dev-docs-event-stream-action-templates.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# ユニバーサルログアウト

> Auth0の接続にグローバルなトークンの取り消しを構成する方法について説明します。

Auth0はOkta Workforce Identity Cloudとのユニバーサルログアウト統合に対応しています。この機能は管理イベントやセキュリティイベントが発生したときに、ユーザーをアプリケーションからログアウトさせます。

ユニバーサルログアウトは[Global Token Revocation](https://www.ietf.org/archive/id/draft-parecki-oauth-global-token-revocation-02.html)仕様を実装しています。これは、ユーザーセッションに加えてリフレッシュトークンを取り消すことにより、確立されている<Tooltip data-tooltip-id="react-containers-DefinitionTooltip-0" href="/docs/ja-jp/glossary?term=openid" tip="OpenID: アプリケーションがログイン情報を収集および保存することなくにユーザーのIDを検証できるようにする認証用のオープン標準。" cta="用語集の表示">OpenID</Tooltip> Connectのバックチャネルログアウト標準よりも優れた機能性を提供します。このログアウトソリューションは、リフレッシュトークン、アプリケーションセッションとIDプロバイダーセッションを組み合わせることによって新しいトークンを取得し、ユーザーのログインを維持しようとする従来型のWebアプリケーションとシングルページアプリケーション（SPA）、そしてネイティブアプリケーションを包括的に扱います。

[Okta](/docs/ja-jp/authenticate/identity-providers/enterprise-identity-providers/okta)、[SAML](/docs/ja-jp/authenticate/identity-providers/enterprise-identity-providers/saml)や[OpenID Connect](/docs/ja-jp/authenticate/identity-providers/enterprise-identity-providers/oidc)の接続タイプでWorkforce Identity Cloudとフェデレーションを行っている場合は、[グローバルトークン取り消し](https://developer.okta.com/docs/guides/oin-universal-logout-overview/)エンドポイントを構築してOktaのユニバーサルログアウトと動作させる必要はありません。その代わりに、Auth0接続に特有のエンドポイントのURLをOkta Workforce管理者に提供すれば、Auth0の[OpenID Connectバックチャネルログアウト](/docs/ja-jp/authenticate/login/logout/back-channel-logout)を使用してアプリケーションセッションを必要に応じて終了させることができます。

## 仕組み

Auth0のグローバルトークン取り消しエンドポイントは、[アプリにログアウトを構築する](https://developer.okta.com/docs/guides/oin-universal-logout-overview/)ドキュメントに記載のプロファイルに従っています。ログアウト要求内でユーザーを特定するために`iss_sub`の形式と、次のURL形式を使用します：

`https://{yourDomain}/oauth/global-token-revocation/connection/{yourConnectionName}`

Auth0がユーザーログアウトの要求を受け取ると、Okta Workforce Identity Cloudが発行したIDトークンや<Tooltip data-tooltip-id="react-containers-DefinitionTooltip-1" href="/docs/ja-jp/glossary?term=security-assertion-markup-language" tip="Security Assertion Markup Language（SAML）: パスワードなしに二者間で認証情報を交換できる標準化プロトコル。" cta="用語集の表示">SAML</Tooltip>アサーションの検証に使用するのと同じキーセットで要求を検証します。そして、そのユーザーの[Auth0セッション](/docs/ja-jp/manage-users/sessions/session-layers)をすべて終了し、Auth0が発行した[リフレッシュトークン](/docs/ja-jp/secure/tokens/refresh-tokens)を取り消して、構成されている場合には[OpenID Connectのバックチャネルログアウト](/docs/ja-jp/authenticate/login/logout/back-channel-logout)をトリガーしてアプリケーションセッションを失効させます。

<Frame>
  <img src="https://mintcdn.com/docs-dev-docs-event-stream-action-templates/oCq_HmOgBHEv-wbr/docs/images/ja-jp/cdy7uua7fh8z/4tcRn1VmydyBGORCHlKuvt/725b95df1cddae8ed3b2d36f0c3495bb/universal_logout_flow_diagram.png?fit=max&auto=format&n=oCq_HmOgBHEv-wbr&q=85&s=ecf279f125a5416fc9aaf900596650a5" alt="User workflow using Universal Logout" width="2546" height="1376" data-path="docs/images/ja-jp/cdy7uua7fh8z/4tcRn1VmydyBGORCHlKuvt/725b95df1cddae8ed3b2d36f0c3495bb/universal_logout_flow_diagram.png" />
</Frame>

アプリケーションのユーザーがアクセスを失うまでにかかる時間は、アプリケーションの種類とAuth0との統合方法によって異なります。OIDCや<Tooltip data-tooltip-id="react-containers-DefinitionTooltip-1" href="/docs/ja-jp/glossary?term=oath2" tip="OAuth 2.0: 認可プロトコルとワークフローを定義する認可フレームワーク。" cta="用語集の表示">OAuth 2.0</Tooltip>のアイデンティティ標準への対応、そして、Auth0の[クイックスタートとSDK](https://auth0.com/docs/quickstarts)を通して、Auth0は以下を含む[アプリケーションのアーキテクチャ](/docs/ja-jp/get-started/applications)に幅広く対応しています。

* 従来型のWebアプリケーション：独自の[アプリケーションセッション](/docs/ja-jp/manage-users/sessions/session-layers)を作成し、リフレッシュトークンとアクセストークンを使ってセキュリティ保護されたバックエンドでAPIにアクセスします。
* ブラウザーベースのJavaScriptアプリケーション：[Auth0のセッションレイヤー](/docs/ja-jp/authenticate/login/configure-silent-authentication)を活用するか、[リフレッシュトークンのローテーション](/docs/ja-jp/secure/tokens/refresh-tokens/refresh-token-rotation)などの技術を使用して、Webブラウザー内でAPIへのアクセスに必要なアクセストークンを取得します。
* ネイティブやモバイルのアプリケーション：Webブラウザー内で実行されないため、ユーザーをサインインしたまま維持するための主な方法として、リフレッシュトークンとアクセストークンを使用します。

### リフレッシュトークンとAuth0のユーザーセッションを取り消す

ユニバーサルログアウト統合を有効化すると、アプリケーションがリフレッシュトークンやAuth0セッションを利用する場合にセキュリティの面でメリットがあります。

* [Auth0セッション](/docs/ja-jp/authenticate/login/configure-silent-authentication)を利用するブラウザーベースのアプリでは、アプリケーションが次回に[Auth0セッションをポーリング](https://auth0.com/docs/authenticate/login/configure-silent-authentication#poll-with-checksession-)するとユーザーがアクセスを失ってしまうため、Auth0はリダイレクト時にユーザーに再度認証を求めます。
* リフレッシュトークンを使用するアプリでは、現在のアクセストークンの有効期限が切れると、ユーザーがアクセスを失います。この際の有効期限は、Auth0で構成される[アクセストークンの最大ライフタイム](/docs/ja-jp/secure/tokens/access-tokens/update-access-token-lifetime)や数秒に至るまで大きな幅があります。

### アプリケーションのユーザーセッションを取り消す

Webアプリケーションが作成したセッションについては、Auth0に既存の[OpenID Connectのバックチャネルログアウト](/docs/ja-jp/authenticate/login/logout/back-channel-logout/configure-back-channel-logout)機能を使用して、ユニバーサルログアウトがAuth0のユーザーセッションを終了したときに終了します。詳細については、「[Auth0 SDK実装の例](https://auth0.com/docs/authenticate/login/logout/back-channel-logout#auth0-sdks)」をお読みください。

## Auth0でユニバーサルログアウトを構成する

ユニバーサルログアウトはAuth0の接続タイプごとに構成します。

### Okta Workforce

1. [Auth0テナントをOkta Workforce Identity Cloudに接続します](/docs/ja-jp/authenticate/identity-providers/enterprise-identity-providers/okta)。
2. Auth0 Dashboardで[**［Authentication（認証）］>［Enterprise（エンタープライズ）］>［Okta Workforce］** ](https://manage.auth0.com/#/connections/enterprise/okta)に移動します。使用している接続を選択してから、 **［Settings（設定）］** を選択します。
3. Okta Workforce管理者に提供する **［Revocation Endpoint URL（取り消しエンドポイントのURL）］** をコピーします。

### OpenID Connect

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  新しいOpenID Connect統合にはブランディングした **Okta Workforce** 接続の使用を強くお勧めします。ただし、Auth0 DashboardのOpenID Connect **設定** で汎用のOpenID Connect接続を使用した旧式の統合でも、ユニバーサルログアウトは引き続き有効です。
</Callout>

1. Auth0 Dashboardで[**［Authentication（認証）］>［Enterprise（エンタープライズ）］>［OpenID Connect］** ](/docs/ja-jp/%24manage_url#/connections/enterprise/oidc)に移動します。使用している接続を選択してから、 **［Settings（設定）］** を選択します。
2. Okta Workforce管理者に提供する **［Revocation Endpoint URL（取り消しエンドポイントのURL）］** をコピーします。

### SAML

1. [OktaをSAML IDプロバイダーとして構成します](/docs/ja-jp/authenticate/protocols/saml/saml-sso-integrations/configure-auth0-saml-service-provider/configure-okta-as-saml-identity-provider)。

2. Auth0 Dashboardで[**［Authentication（認証）］>［Enterprise（エンタープライズ）］>［SAML］** ](https://manage.auth0.com/#/connections/enterprise/samlp)に移動します。使用している接続を選択してから、 **［Settings（設定）］** を選択します。

3. Okta Workforce Identity Cloudに登録されているSAMLアプリケーションのアプリケーションIDを **［Subject（サブジェクト）］** に入力します（例：`0oagcc12354688xxxx`）。詳細については、「[アプリケーションIDを取得する方法](https://support.okta.com/help/s/article/How-to-obtain-an-application-ID?language=en_US)」をお読みください。

4. **［Issuer（発行者）］** については、Okta Workforce Identity Cloudの組織に登録されているSAMLアプリケーションに移動して、[発行者のURI](https://developer.okta.com/docs/guides/oin-universal-logout-overview/#endpoint-authentication)をコピーします。

   <Callout icon="file-lines" color="#0EA5E9" iconType="regular">
     この値を取得するには、WIC管理者はOktaポータルで **［Applications（アプリケーション）］** > **［Applications（アプリケーション）］>［アプリケーション］>［Authentication（認証）］>［Sign-on settings（サインオンの設定）］>［Sign-on methods（サインオンの方法）］>［SAML 2.0］>［More details（詳細表示）］** セクションに移動します。
   </Callout>

5. Okta Workforce管理者に提供する **［Revocation Endpoint URL（取り消しエンドポイントのURL）］** をコピーします。

## Okta Workforce Identity Cloudでユニバーサルログアウトを構成する

Okta Workforce Identity Cloudでユニバーサルログアウトを構成して、Auth0の接続を使用しているアプリケーションにログアウト信号が送信できるようにします。これはOkta管理者が実行する必要があります。

### 前提条件

以下が必要です。

* [Identity Threat Protection](https://www.okta.com/products/identity-threat-protection/)が有効化されたOkta Workforce Identity Cloudの組織、または[無料トライアル版](https://www.okta.com/free-trial/)が必要です。
* 汎用のSAMLやOIDCアプリ向けに提供されているユニバーサルログアウトの早期アクセス版は、Okta Workforce Identity Cloudのorganizationに対して有効化する必要があります。詳細については、「[対応するアプリにユニバーサルログアウトを構成する](https://help.okta.com/oie/en-us/content/topics/itp/config-universal-logout.htm)」をお読みください。

### Oktaを構成する

[Okta Workforceの組織](/docs/ja-jp/authenticate/identity-providers/enterprise-identity-providers/okta)でユニバーサルログアウトをAuth0接続に有効化します。

1. Oktaポータルで **［Applications（アプリケーション）］** > **［Applications（アプリケーション）］** を選択します。

2. Auth0統合に登録済みのアプリケーションを選択します。

3. **［General（一般設定）］** タブの下で **［Logout（ログアウト）］>［Edit（編集）］** を選択します。

   <Frame>
     <img src="https://mintcdn.com/docs-dev-docs-event-stream-action-templates/9Vac8_IYDB9MGlmx/docs/images/ja-jp/cdy7uua7fh8z/M957prYUhjyMxXgpdA8pB/224812ce3a76ac9d032abe50c4be3a1d/2025-01-23_13-03-21.png?fit=max&auto=format&n=9Vac8_IYDB9MGlmx&q=85&s=92f13fe6f0a0829efbc777a050757a8d" alt="Okta Dashboard image for Universal Logout configuration" width="1508" height="1256" data-path="docs/images/ja-jp/cdy7uua7fh8z/M957prYUhjyMxXgpdA8pB/224812ce3a76ac9d032abe50c4be3a1d/2025-01-23_13-03-21.png" />
   </Frame>

4. **［Okta system or admin initiates logout（Oktasのシステムまたは管理者がログアウトを開始する］** を選択します。

5. Auth0からコピーしたURLを **［Logout Endpoint URL（ログアウトエンドポイントのURL）］** に入力します。

6. **［Subject Format（サブジェクトの形式）］** に **［Issuer and Subject Identifier（発行者とサブジェクトの識別子）］** 選択します。

7. **［Save（保存）］** を選択します。

### ユニバーサルログアウトをテストする

選択したユーザーのセッションを取り消して、Okta Workforce Identity Cloudでユニバーサルログアウトをテストします。

1. Oktaポータルで **［Directory（ディレクトリ）］>［People（ユーザー）］** を選択します。

2. Auth0アプリケーションにサインイン済みのユーザーを選択します。

3. **［More Actions（その他のアクション）］>［Clear User Sessions（ユーザーセッションの消去）］** を選択します。

   <Frame>
     <img src="https://mintcdn.com/docs-dev-docs-event-stream-action-templates/9Vac8_IYDB9MGlmx/docs/images/ja-jp/cdy7uua7fh8z/Z8an5lN6WAlSAdgiBkKLa/fde264f71615c5eb7e07e0c48d8426bf/2025-01-23_13-08-29.png?fit=max&auto=format&n=9Vac8_IYDB9MGlmx&q=85&s=87645d97430688a75f599f7d1785313a" alt="Test Universal Logout in Okta Dashboard" width="1518" height="1326" data-path="docs/images/ja-jp/cdy7uua7fh8z/Z8an5lN6WAlSAdgiBkKLa/fde264f71615c5eb7e07e0c48d8426bf/2025-01-23_13-08-29.png" />
   </Frame>

4. ダイアログで **［Also include logout enabled apps and Okta API tokens（ログアウトが有効なアプリとOkta APIも含める）］** を選択します。

5. **［Clear and Revoke（消去して取り消す）］** を選択します。

## ログと通知

Auth0テナントの管理者はAuth0が受信したユニバーサルログアウト要求のステータスや詳細を確認することができます。これを行うには、[［Auth0 Dashboard］>［Monitoring（モニタリング）］>［Logs（ログ）］](https://manage.auth0.com/#/*/logs)に移動します。ユニバーサルログアウトで出力されるログイベントの種類は、「[ログインベントタイプのコード](/docs/ja-jp/deploy-monitor/logs/log-event-type-codes)」に記載されています。

また、[カスタムログストリーム](/docs/ja-jp/customize/log-streams)で統合して、発生したユニバーサルログアウトのイベントを外部システムに通知することもできます。

## Management API

[Management API](https://auth0.com/docs/api/management/v2)を使用して、ユニバーサルログアウトをプログラムで構成することもできます。これは、構成の自動化や、<Tooltip data-tooltip-id="react-containers-DefinitionTooltip-0" href="/docs/ja-jp/glossary?term=auth0-dashboard" tip="Auth0 Dashboard: サービスを構成するためのAuth0の主製品。" cta="用語集の表示">Auth0 Dashboard</Tooltip>の外部で独自の構成を構築する場合に役立ちます。

Okta WorkforceやOpenID Connectの接続では、<Tooltip data-tooltip-id="react-containers-DefinitionTooltip-0" href="/docs/ja-jp/glossary?term=management-api" tip="Management API: 顧客が管理タスクを実行できるようにするための製品。" cta="用語集の表示">Management API</Tooltip>への入力は必要ありません。Auth0のグローバルトークン取り消しエンドポイントをOkta Workforce管理者に提供するだけで済みます。

SAML接続ではエンドポイントのURLを共有する他にも、以下の属性を`connection`オブジェクに設定してユニバーサルログアウトを構成する必要があります。

* **options.global\_token\_revocation\_jwt\_iss** - Okta Workforce Identity Cloudに登録されているSAMLアプリケーションの[発行者ID](https://developer.okta.com/docs/guides/oin-universal-logout-overview/#endpoint-authentication)です。値の例：`http://www.okta.com/exkhwkmkwhZUnuA6xxxx`
* **options.global\_token\_revocation\_jwt\_sub** - Okta Workforce Identity Cloudに登録されているSAMLアプリケーションの[アプリケーションID](https://support.okta.com/help/s/article/How-to-obtain-an-application-ID?language=en_US)です。値の例：`0oagcc12354688xxxx`

これらの属性を含めてManagement APIを呼び出し、SAML接続を[更新](https://auth0.com/docs/api/management/v2#!/Connections/patch_connections_by_id)または[作成](https://auth0.com/docs/api/management/v2/connections/post-connections)します。要求を作成する際には、以下のJSONの例を参考にしてください。

```json JSON lines theme={null}
{
	"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を使用してエンタープライズ接続を作成する](https://auth0.com/docs/authenticate/identity-providers/enterprise-identity-providers/saml#create-an-enterprise-connection-using-the-management-api)」をお読みください。
