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

# テナントのmTLS認証の構成

> テナントのmTLS認証を構成する方法を説明します。

テナントのmTLS認証を構成する方法を説明します。

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  以下の例では、**\$management\_access\_token** または[Management APIのアクセストークン](/docs/ja-jp/secure/tokens/access-tokens/management-api-access-tokens)を指定します。これは、少なくとも以下のスコープを含むアクセストークンで置き換えなければなりません。

  * `create:custom_domains`
  * `read:custom_domains`
  * `create:clients`
  * `update:clients`
  * `update:client_credentials`
  * `update:client_keys`
  * `update:tenant_settings`

  必要なスコープを含んだアクセストークンの取得については、「 [アクセストークンを取得する](/docs/ja-jp/secure/tokens/access-tokens/get-access-tokens)」をお読みください。
</Callout>

まず最初に、[カスタムドメイン](/docs/ja-jp/customize/custom-domains)を構成して検証する必要があります。

### カスタムドメインを作成する

[Management API](https://auth0.com/docs/api/management/v2)でmTLSヘッダーを受け入れるための[カスタムドメイン](/docs/ja-jp/customize/custom-domains)をテナントレベルで構成する必要があります。[カスタマーエッジ](/docs/ja-jp/get-started/applications/configure-mtls/set-up-the-customer-edge)はクライアント証明書を検証する責任を負うため、POST要求で`type`を`self_managed_certs`に設定します。

```json lines theme={null}
curl --location --request POST 'https://$tenant/api/v2/custom-domains' \
  --header 'Authorization: Bearer $management_access_token' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "domain":"string",
  "type":"self_managed_certs",
  "verification_method":"txt", 
  "tls_policy":"recommended",
  "custom_client_ip_header":"true-client-ip"
}'
```

要求に成功すると、カスタムドメインを検証するために使われる識別子が返されます。詳しくは、APIドキュメントの[「新規カスタムドメインの構成」](https://auth0.com/docs/api/management/v2/custom-domains/post-custom-domains)をご覧ください。

### 既存のカスタムドメインをパッチする

[Management API](https://auth0.com/docs/api/management/v2)でmTLSヘッダーを受け入れるための既存のカスタムドメインを構成できます。しかし、すでに存在するカスタムドメインの`type`は変更できません。

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  mTLSには、種類が`self_managed_certs`のカスタムドメインのみ使用できます。Auth0は、現在、mTLSに`auth0_managed_certs`の種類を使用することをサポートしていません。
</Callout>

以下のPOST要求でmTLSヘッダーを受け入れるための既存のカスタムドメインを構成します。

```json lines theme={null}
curl --location --request POST 'https://$tenant/api/v2/custom-domains/:id' \
  --header 'Authorization: Bearer $management_access_token' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "tls_policy":"recommended",
  "custom_client_ip_header":"true-client-ip"
}'
```

詳しくは、APIドキュメントの[「カスタムドメイン構成の更新」](https://auth0.com/docs/api/management/v2/custom-domains/patch-custom-domains-by-id)をご覧ください。

### カスタムドメインを検証する

Auth0は、カスタムドメインの作成と更新要求を受け入れる前に、まずドメインを検証する必要があります。[Management API](https://auth0.com/docs/api/management/v2)を使って以下のPOST要求を送り、カスタムドメインを検証します。

```json lines theme={null}
curl --location --request POST 'https://$tenant/api/v2/custom-domains/:id/verify'
```

`status`フィールドで検証ステータスを確認します。検証が完了後、カスタムドメインが要求を受け入れ始めるまで最大10分かかる場合があります。

Auth0がこのカスタムドメインを初めて検証した場合、応答には`cname_api_key`が含まれます。これはエッジ/リバースプロキシを構成する際に必要です。このキーは秘密にしておく必要があり、転送された要求の検証に使われます。

詳しくは、APIドキュメントの[「カスタムドメインの検証」](https://auth0.com/docs/api/management/v2/custom-domains/patch-custom-domains-by-id)をご覧ください。

### mTLSエンドポイントエイリアスを有効にする

mTLSハンドシェイクでクライアントからのクライアント証明書が要求される場合、Webブラウザーはユーザーに証明書を選択するためのモーダルダイアログを表示します。これではユーザーエクスペリエンスに摩擦が生じるため、`/authorize`エンドポイントのようにmTLSが不要なエンドポイントでは回避すべきです。結果として、異なるドメインでmTLSトラフィックと非mTLSトラフィックに対応するお客様は、mTLSエンドポイントエイリアスを有効にするべきです。

mTLSエンドポイントエイリアスは、クライアントがOIDCディスカバリードキュメントの`mtls_endpoint_aliases`プロパティで指定するエンドポイントにmTLSトラフィックを送るべきであることを示します。クライアントは非mTLSトラフィックを通常のエンドポイントに送ります。`mtls_endpoint_aliases`プロパティに関する詳細は、[「リソースサーバーの呼び出し」](/docs/ja-jp/get-started/authentication-and-authorization-flow/authenticate-with-mtls#call-the-resource-server)をお読みください。

mTLSエンドポイントエイリアスは、<Tooltip data-tooltip-id="react-containers-DefinitionTooltip-0" href="/docs/ja-jp/glossary?term=auth0-dashboard" tip="Auth0 Dashboard: サービスを構成するためのAuth0の主製品。" cta="用語集の表示">Auth0 Dashboard</Tooltip>と<Tooltip data-tooltip-id="react-containers-DefinitionTooltip-0" href="/docs/ja-jp/glossary?term=management-api" tip="Management API: 顧客が管理タスクを実行できるようにするための製品。" cta="用語集の表示">Management API</Tooltip>で有効にすることができます。

<Tabs>
  <Tab title="Auth0 Dashboard">
    Auth0 Dashboardを使用して、mTLSエンドポイントエイリアスを有効にする方法：

    1. [［Auth0 Dashboard］](/docs/ja-jp/%24manage_url/#)に行き、サイドメニューの **［Settings（設定）］** を選択します。
    2. ［Tenant Settings（テナント設定）］の下の、**［Advanced（詳細設定）］** タブを選択します。
    3. **［Allow mTLS Endpoint Aliases（mTLSエンドポイントエイリアスを許可する）］** を見つけ、有効にしますこれにより`mtls.<your custom domain>`というエンドポイントにmTLSトラフィックを定めます。
  </Tab>

  <Tab title="Management API">
    [Management API](https://auth0.com/docs/api/management/v2)を使用したmTLSエンドポイントエイリアスを有効にするには、テナントに対する`enable_endpoint_aliases`プロパティを`true`に設定します。

    ```json lines theme={null}
    curl --location --request PATCH 'https://$tenant/api/v2/tenants/settings' \
      --header 'Authorization: Bearer $management_access_token' \
      --header 'Content-Type: application/json' \
      --data-raw '{
      "mtls": {
        "enable_endpoint_aliases": true
      }
    }'
    ```

    mTLSエンドポイントエイリアスは、構成されたカスタムドメインに`mtls.`プレフィックスを追加します。たとえば、構成されたカスタムドメインが`auth.saasapp.com`の場合、mTLSエンドポイントエイリアスはドメイン `mtls.auth.saasapp.com`を使用します。フィードバックによって、お客様は将来的にmTLSエンドポイントエイリアスを構成できるようになるかもしれません。

    <Warning>
      mTLSサブドメインはAuth0の制御外です。管理者は、サブドメインのリスクについて理解し、それに応じて対応する必要があります。これには次のことが含まれますが、これらに限定されません。

      * mTLSの最上位ドメインおよびサブドメインの所有権および管理能力を持つこと。そうしないと、ログインハンドラーとmTLSサブドメインの両方を失う可能性があります。これは、[カスタムドメイン](/docs/ja-jp/customize/custom-domains)を使用する際に特に重要です。
      * mTLSサブドメイン（例：`mtls.auth.saasapp.com`）のSSL証明書を持っていること。`*.saasapp.com`のワイルドカード証明書には、mTLSサブドメインは含まれません。

      IPが使用されていない場合のダングリングDNSエントリーによるサブドメインの乗っ取りを防止​すること。詳細については、Mozilla Developer Network（MDN）の「[サブドメインの乗っ取り](https://developer.mozilla.org/en-US/docs/Web/Security/Subdomain_takeovers)」ドキュメントを参照してください。
    </Warning>

    mTLSエンドポイントエイリアスを無効にするには、`enable_endpoint_aliases`値を`false`に設定します。詳細については、「[テナント設定の更新](https://auth0.com/docs/api/management/v2/tenants/patch-settings)」のAPIドキュメントを参照してください。
  </Tab>
</Tabs>

## もっと詳しく

* [mTLSで認証する](/docs/ja-jp/get-started/authentication-and-authorization-flow/authenticate-with-mtls)
* [カスタマーエッジをセットアップする](/docs/ja-jp/get-started/applications/configure-mtls/set-up-the-customer-edge)
* [クライアントのmTLS認証の構成](/docs/ja-jp/get-started/applications/configure-mtls/configure-mtls-for-a-client)
