> ## Documentation Index
> Fetch the complete documentation index at: https://translations.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Auth0 サービスで OIDC バックチャネルログアウトを設定する方法を説明します。

# OIDC バックチャネルログアウトを設定する

<Card title="始める前に">
  バックチャネルログアウトを使用するには、アプリケーションが次の要件を満たしている必要があります。

  * OIDC バックチャネルログアウト URI エンドポイントは、Auth0 テナントからアクセスできるようインターネット上に公開されている必要があります。
  * 本番運用向けのアプリケーションでは TLS を使用する必要があります。詳しくは、[TLS (SSL) Versions and Ciphers](/docs/ja-jp/customize/custom-domains/self-managed-certificates/tls-ssl) を参照してください。
  * アプリケーションは、提供されるセッション識別子 (`sid`) を保存し、作成したユーザーセッションに関連付けられる必要があります。本番運用のアプリケーションでは、永続的なセッションストレージを使用することを推奨します。
  * アプリケーションは、ログアウト処理中に `sid` を使用して、クライアントサイドの Cookie を使わずに既存のセッションを取得できる必要があります。Cookie はブラウザー内に保存されるため、ログアウトのコールバックエンドポイントからはアクセスできません。
</Card>

<div id="availability">
  ## 提供状況
</div>

OIDC バックチャネルログアウトは、Enterprise planをご利用のすべてのお客様に提供されています。ご利用のアプリケーションが要件を満たしているかどうかを確認するには、OIDC標準のメタデータエンドポイント `/.well-known/*` をご確認ください。

```json lines theme={null}
GET https://acme.eu.auth0.com/.well-known/openid-configuration

HTTP 200
{ ..., "backchannel_logout_supported": true, 
  "backchannel_logout_session_supported": true }
```

<div id="back-channel-logout-restrictions">
  ## バックチャネルログアウトの制限
</div>

バックチャネルログアウト URL は公開されているエンドポイントに対して呼び出されるため、以下の制限に従う必要があります。

1. HTTPS を使用する必要があります。暗号化されていない HTTP やその他のプロトコルは使用できません。
2. Auth0 のサブドメインは使用できません。Auth0 のサブドメインには、次のようなものがあります。

   * auth0.com
   * auth0app.com
   * webtask.io
   * webtask.run
3. ドメイン名のない IP アドレスの使用は推奨されません。バックチャネルログアウトで使用する IP アドレスは、パブリック IP である必要があります。内部、予約済み、またはループバックの範囲にある IP アドレスは使用できません。

<div id="configure-auth0">
  ## Auth0 を設定する
</div>

<Tooltip tip="Auth0 Dashboard: サービスを設定するための Auth0 の主要プロダクト。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=Auth0+Dashboard">Auth0 Dashboard</Tooltip> または <Tooltip tip="Auth0 Dashboard: サービスを設定するための Auth0 の主要プロダクト。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=Management+API">Management API</Tooltip> で、ログアウトトークンを受け取るアプリケーションを登録します。

<Tabs>
  <Tab title="Auth0 Dashboard">
    #### アプリケーションを登録する

    1. [**Auth0 Dashboard > Applications**](https://manage.auth0.com/#/applications) に移動します。
    2. 登録するアプリケーションを選択します。
    3. **設定** タブを選択します。
    4. **OpenID Connect Back-Channel Logout > Back-Channel Logout URI** で、`logout_tokens` を受け取るアプリケーションのログアウト URI を追加します。
    5. 完了したら、**変更を保存** を選択します。

           <Frame>
             <img src="https://mintcdn.com/translations/raZlN0BXDjNonwyb/docs/images/cdy7uua7fh8z/19uQRkVswdmaO8gHTVTXCc/0564bfeda05bc7df90af9e8ee852047f/Screenshot_2024-11-05_at_13.31.54.png?fit=max&auto=format&n=raZlN0BXDjNonwyb&q=85&s=6538e592994c10bdc8dd65536c4c6f2c" alt="Auth0 Dashboard > Applications > Settings" data-og-width="1404" width="1404" data-og-height="247" height="247" data-path="docs/images/cdy7uua7fh8z/19uQRkVswdmaO8gHTVTXCc/0564bfeda05bc7df90af9e8ee852047f/Screenshot_2024-11-05_at_13.31.54.png" data-optimize="true" data-opv="3" srcset="https://mintcdn.com/translations/raZlN0BXDjNonwyb/docs/images/cdy7uua7fh8z/19uQRkVswdmaO8gHTVTXCc/0564bfeda05bc7df90af9e8ee852047f/Screenshot_2024-11-05_at_13.31.54.png?w=280&fit=max&auto=format&n=raZlN0BXDjNonwyb&q=85&s=423109d4a9384fbf7108efb34da57d64 280w, https://mintcdn.com/translations/raZlN0BXDjNonwyb/docs/images/cdy7uua7fh8z/19uQRkVswdmaO8gHTVTXCc/0564bfeda05bc7df90af9e8ee852047f/Screenshot_2024-11-05_at_13.31.54.png?w=560&fit=max&auto=format&n=raZlN0BXDjNonwyb&q=85&s=8d6c0c7e568b4e0eaed96e42607eb44e 560w, https://mintcdn.com/translations/raZlN0BXDjNonwyb/docs/images/cdy7uua7fh8z/19uQRkVswdmaO8gHTVTXCc/0564bfeda05bc7df90af9e8ee852047f/Screenshot_2024-11-05_at_13.31.54.png?w=840&fit=max&auto=format&n=raZlN0BXDjNonwyb&q=85&s=3eb8d56af67a9f7e485cf33d064541bb 840w, https://mintcdn.com/translations/raZlN0BXDjNonwyb/docs/images/cdy7uua7fh8z/19uQRkVswdmaO8gHTVTXCc/0564bfeda05bc7df90af9e8ee852047f/Screenshot_2024-11-05_at_13.31.54.png?w=1100&fit=max&auto=format&n=raZlN0BXDjNonwyb&q=85&s=9a23291fc2b7c78ce2fc662cd51d4feb 1100w, https://mintcdn.com/translations/raZlN0BXDjNonwyb/docs/images/cdy7uua7fh8z/19uQRkVswdmaO8gHTVTXCc/0564bfeda05bc7df90af9e8ee852047f/Screenshot_2024-11-05_at_13.31.54.png?w=1650&fit=max&auto=format&n=raZlN0BXDjNonwyb&q=85&s=5f8a486ee4c06170dd4c89e0396b62f1 1650w, https://mintcdn.com/translations/raZlN0BXDjNonwyb/docs/images/cdy7uua7fh8z/19uQRkVswdmaO8gHTVTXCc/0564bfeda05bc7df90af9e8ee852047f/Screenshot_2024-11-05_at_13.31.54.png?w=2500&fit=max&auto=format&n=raZlN0BXDjNonwyb&q=85&s=bee42fb945264d2ae006f7a43e224229 2500w" />
           </Frame>

    #### アプリケーションの登録を解除する

    アプリケーションの登録を解除すると、サービスは新しいログインの追跡とログアウトイベントの送信を停止します。登録解除後、サービスは保留中のログアウトイベントを破棄します。

    アプリケーションの登録を解除するには、バックチャネルログアウト URL を削除します。

    1. [Auth0 Dashboard > Applications](http://manage.auth0.com/#/applications) に移動します。
    2. 登録を解除するアプリケーションを選択します。
    3. **設定** タブを選択します。
    4. **OpenID Connect Back-Channel Logout > Back-Channel Logout URI** で
    5. バックチャネル URL を削除します。
    6. 完了したら、**変更を保存** を選択します。

           <Frame>
             <img src="https://mintcdn.com/translations/MV7tE-x71x8RWRES/docs/images/cdy7uua7fh8z/5SlrBhwrNbJx0Wdw2kQ19t/9b69eb926e44c35b426daa76a851a5db/Screenshot_2024-11-05_at_13.31.54.png?fit=max&auto=format&n=MV7tE-x71x8RWRES&q=85&s=92847024160803c3903aac1374d68d4b" alt="Auth0 Dashboard > Applications > Settings" data-og-width="1404" width="1404" data-og-height="247" height="247" data-path="docs/images/cdy7uua7fh8z/5SlrBhwrNbJx0Wdw2kQ19t/9b69eb926e44c35b426daa76a851a5db/Screenshot_2024-11-05_at_13.31.54.png" data-optimize="true" data-opv="3" srcset="https://mintcdn.com/translations/MV7tE-x71x8RWRES/docs/images/cdy7uua7fh8z/5SlrBhwrNbJx0Wdw2kQ19t/9b69eb926e44c35b426daa76a851a5db/Screenshot_2024-11-05_at_13.31.54.png?w=280&fit=max&auto=format&n=MV7tE-x71x8RWRES&q=85&s=3558746e6e5c4aef5a563c91ae898029 280w, https://mintcdn.com/translations/MV7tE-x71x8RWRES/docs/images/cdy7uua7fh8z/5SlrBhwrNbJx0Wdw2kQ19t/9b69eb926e44c35b426daa76a851a5db/Screenshot_2024-11-05_at_13.31.54.png?w=560&fit=max&auto=format&n=MV7tE-x71x8RWRES&q=85&s=27ccd261ba6f0d22fe1d68d3913f00b9 560w, https://mintcdn.com/translations/MV7tE-x71x8RWRES/docs/images/cdy7uua7fh8z/5SlrBhwrNbJx0Wdw2kQ19t/9b69eb926e44c35b426daa76a851a5db/Screenshot_2024-11-05_at_13.31.54.png?w=840&fit=max&auto=format&n=MV7tE-x71x8RWRES&q=85&s=823303dba74ee17801e1bf3e59139aff 840w, https://mintcdn.com/translations/MV7tE-x71x8RWRES/docs/images/cdy7uua7fh8z/5SlrBhwrNbJx0Wdw2kQ19t/9b69eb926e44c35b426daa76a851a5db/Screenshot_2024-11-05_at_13.31.54.png?w=1100&fit=max&auto=format&n=MV7tE-x71x8RWRES&q=85&s=364fd215f62322f037fdcab550b87e8b 1100w, https://mintcdn.com/translations/MV7tE-x71x8RWRES/docs/images/cdy7uua7fh8z/5SlrBhwrNbJx0Wdw2kQ19t/9b69eb926e44c35b426daa76a851a5db/Screenshot_2024-11-05_at_13.31.54.png?w=1650&fit=max&auto=format&n=MV7tE-x71x8RWRES&q=85&s=55ae12758acf431f1779c4c4c027b96c 1650w, https://mintcdn.com/translations/MV7tE-x71x8RWRES/docs/images/cdy7uua7fh8z/5SlrBhwrNbJx0Wdw2kQ19t/9b69eb926e44c35b426daa76a851a5db/Screenshot_2024-11-05_at_13.31.54.png?w=2500&fit=max&auto=format&n=MV7tE-x71x8RWRES&q=85&s=9abd3fdb9df0409503f66761a7730603 2500w" />
           </Frame>

    監査のため、サービスはバックチャネルログアウト URL の登録・登録解除を、常に Auth0 テナントログに `API Operation Event` として記録します。詳しくは、[ログ](/docs/ja-jp/deploy-monitor/logs) を参照してください。
  </Tab>

  <Tab title="Management API">
    #### アプリケーションを登録する

    Management API でクライアントに `PATCH` リクエストを送信する際に、`oidc_logout` プロパティを追加します。

    ```bash cURL lines theme={null}
    PATCH /api/v2/clients/{id}
    "oidc_logout": {
      "backchannel_logout_urls": ["http://acme.eu.auth0.com/events"]
    }
    ```

    <Callout icon="file-lines" color="#0EA5E9" iconType="regular">
      このリクエストには、他のアプリケーションパラメーターを含めることもできます。
    </Callout>

    #### アプリケーションの登録を解除する

    `oidc_logout` パラメーターを削除します。

    ```bash cURL lines theme={null}
    PATCH https://acme.eu.auth0.com/api/v2/clients/{id}
    {
      "oidc_logout": {
        "backchannel_logout_urls": []
      }
    }
    ```
  </Tab>
</Tabs>

<div id="configure-your-application">
  ## アプリケーションを設定する
</div>

Auth0 Dashboard または Management API でバックチャネルログアウトを設定したら、使用している技術やフレームワークに応じて、このサービスを利用するようアプリケーションを設定します。

1. アプリケーションの種類に応じて、エンドユーザーの認証を実装します。

   1. エンドユーザーがアプリケーションにログインでき、セッションが作成される必要があります。
   2. Auth0 から ID トークンが発行され、後続の処理のためにアプリケーションのバックエンドで参照できる必要があります。
2. ログインプロセスを拡張し、ID トークンの検証後に `sid` と、必要に応じて `sub` クレームを保存します。

   1. これらのクレームは、現在のアプリケーションセッションに関連付けて保存する必要があります。
   2. セッション管理機能は、`sid` の値を使って特定のセッションを取得できる必要があります。
3. バックチャネルログアウトエンドポイントを設定します。

   1. エンドポイントは `HTTP POST` リクエストのみを処理する必要があります。
   2. `logout_token` パラメーターを取り出し、仕様に従って通常の JWT として検証します。
   3. トークンに、JSON オブジェクト値を持つ `events` クレームと、`http://schemas.openid.net/event/backchannel-logout` という名前のメンバーが含まれていることを確認します。
   4. トークンに `sid` クレームおよび/または `sub` クレームが含まれていることを確認します。
   5. トークンに `nonce` クレームが含まれていないことを確認します。これは、ログアウトトークンを ID トークンと区別して悪用を防ぐために必要です。
   6. トークンを検証したら、受信した `sid` および/または `sub` の値に対応するセッションを取得し、終了します。アプリケーションセッションを終了する具体的な方法は、実装の詳細によって異なります。たとえば、このイベントをフロントエンドに通知する必要がある場合があります。

<div id="oidc-back-channel-logout-request-example">
  ## OIDC バックチャネルログアウト リクエストの例
</div>

コード化されたトークンのペイロード:

```bash cURL lines theme={null}
POST /backchannel-logout HTTP/1.1
Host: rp.example.org
Content-Type: application/x-www-form-urlencoded

logout_token=eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImdwY3ZFT0FPREE2T3pXRmw3ODVxbCJ9.eyJpc3MiOiJodHRwczovL2FydGV4LWRldi5ldS5hdXRoMC5jb20vIiwic3ViIjoiYXV0aDB8NjAyZTkzZGI4M2ZhNmYwMDc0OWEyM2U2IiwiYXVkIjoiVHVoTkx2N3VsWEQzUmZ5TGxTTWJPdnN6endKSkZQcE8iLCJpYXQiOjE2OTgxNjA5MjgsImV4cCI6MTY5ODE2MTA0OCwianRpIjoiNDRhOTEyMTUtZGZiNC00ZGZlLWExZWItZmNhZmE5MTFkZWJhIiwiZXZlbnRzIjp7Imh0dHA6Ly9zY2hlbWFzLm9wZW5pZC5uZXQvZXZlbnQvYmFja2NoYW5uZWwtbG9nb3V0Ijp7fX0sInRyYWNlX2lkIjoiODFiMzM2YTk0YTRhNTcwNyIsInNpZCI6IjM3NVVJcF9JRDVtQ1RDbEllQkVIcFhmR3dxNTF0Rl9MIn0.aEoAL_U-EPlf3f7Fup-bu7Yv0S0GOnrkL8Njd6j6UNqZcr5VrWWFf3CWvkRi7Cm6wMgU2qIMhb7643ca8-ajR7zHlMu0Z3r-gfd2D1xudKLyUSC3v2D5WJZz5I8xMZ_LWtIN2W3l4SQFO9MgK_7F3x0WIWXo9KPC9tgOaOLPnsiv__MutM1ZakoCsJPddl5gVM4TYtHOue6WM7SOXZNa3SSiv57YQOX2KNCL7sWmZp_J1OXKy8lsgkNFqiOVwu39p4sgjKYEXQU0G-I0yY_aeNbnlnxFG6OuxaDt_zwg6AvKglLSNGqrrvzy4GsYJi5HMGZ1GsSs7rQLg7Iuu6JM-A
```

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  トークンの有効期限は2分 (120秒) です。
</Callout>

デコード後のトークンペイロード:

```json JSON lines theme={null}
{
   "iss": "https://artex-dev.eu.auth0.com/",
   "sub": "auth0|602e93db83fa6f00749a23e6",
   "aud": "TuhNLv7ulXD3RfyLlSMbOvszzwJJFPpO",
   "iat": 1698160928,
   "exp": 1698161048,
   "jti": "44a91215-dfb4-4dfe-a1eb-fcafa911deba",
   "events": {
         "http://schemas.openid.net/event/backchannel-logout": {}
   },
   "trace_id": "81b336a94a4a5707",
   "sid": "375UIp_ID5mCTClIeBEHpXfGwq51tF_L"
}
```

<div id="expected-responses">
  ## 想定されるレスポンス
</div>

* **HTTP 200**:  ユーザーが特定のアプリケーションからログアウトしたことを示します。
* **HTTP 400**: 不正なリクエストを示します。リクエストを解釈できなかったか、トークンがバリデーションに失敗しました。Auth0 は問題をテナントログに記録しますが、この特定のセッションに対して追加のリクエストは行いません。

<div id="troubleshoot-issues">
  ## トラブルシューティング
</div>

<div id="application-did-not-receive-the-logout-events">
  ### アプリケーションがログアウトイベントを受信しなかった
</div>

ログアウトイベントの発生後に、アプリケーションがログアウトリクエストを受信しなかった場合。

1. アプリケーションに、Auth0 Dashboard でバックチャネルログアウト URL が登録されていることを確認します。
2. バックチャネルログアウト URL に Auth0 テナントからアクセスできることを確認します。
3. 有効なセッションが確立されていることを確認します。エンドユーザーは、Auth0 経由で対象のアプリケーションにログインしている必要があります。

   <Callout icon="file-lines" color="#0EA5E9" iconType="regular">
     アプリケーションがログアウトイベントを受信するのは、エンドユーザーが Auth0 を使ってその特定のアプリケーションにログインした場合のみです。エンドユーザーがほかのアプリケーションにログインしていても、ログアウトイベントはトリガーされません。
   </Callout>
4. ログアウトメッセージの配信失敗に関するメッセージがないか、Auth0 テナントログを確認します。
5. ログアウトが標準のログアウトエンドポイント経由でトリガーされていることを確認します。ほかのイベントではログアウトイベントはトリガーされません。
6. 可能であれば、Web サーバーやアプリケーションのファイアウォールログで、ブロックされたリクエストがないか確認します。

<div id="i-cant-find-oidc-back-channel-logout-tenant-logs">
  #### OIDC バックチャネルログアウトのテナントログが見つかりません
</div>

この機能は、2023 年 10 月 3 日からすべてのテナントに順次リリースされます。なお、[テナントログのイベントコード](/docs/ja-jp/deploy-monitor/logs/log-event-type-codes)には、`oidc_backchannel_logout_succeeded` の `sslo` または `oidc_backchannel_logout_failed` の `fslo` が引き続き表示される場合があります。

<div id="client-app-cannot-verify-the-received-logout-token">
  ### クライアントアプリで受信したログアウトトークンを検証できない
</div>

トランザクションが引き続き 400 エラーで失敗する場合:

1. トークンが標準的な base64 エンコードの JWT であることを確認します。長いパラメーターは、一部の Web サーバーで途中で切り詰められることがあります。詳しくは、[署名アルゴリズム](/docs/ja-jp/get-started/applications/signing-algorithms) を参照してください。
2. 可能であればトークンを取得し、それが JWT であることを確認します。[JWT.IO](http://jwt.io) などの信頼できるソースを使用してください。
3. 検証関数が、[JSON Web Key Sets](/docs/ja-jp/secure/tokens/json-web-tokens/json-web-key-sets) (JWKS) を通じてテナントの署名鍵を動的に取得するようになっていることを確認します。

   <Callout icon="file-lines" color="#0EA5E9" iconType="regular">
     静的なキーをハードコードすることは推奨していません。設定上どうしても静的なキーをハードコードする必要がある場合は、その設定に Auth0 テナントの最新の公開鍵が含まれていることを確認してください。
   </Callout>

<div id="response-timeout-errors">
  ### 応答タイムアウトエラー
</div>

Auth0 は、アプリケーションの OIDC バックチャネルログアウト URL からの応答を 5 秒間待機します。5 秒を過ぎると、レスポンスの説明が空の "Failed OIDC バックチャネルログアウト request" がテナントログに記録されます。

<div id="learn-more">
  ## 詳しくはこちら
</div>

* [OIDC エンドポイントを使用して Auth0 からユーザーをログアウトする](/docs/ja-jp/authenticate/login/logout/log-users-out-of-auth0)
* [アプリケーションからユーザーをログアウトする](/docs/ja-jp/authenticate/login/logout/log-users-out-of-applications)
* [IDプロバイダーからユーザーをログアウトする](/docs/ja-jp/authenticate/login/logout/log-users-out-of-idps)
