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

# Cloudflareをリバースプロキシとして構成する

> Auth0のカスタムドメインプロキシとしてCloudflareをセットアップする方法について説明します。

<Card title="利用可能性はAuth0プランによって異なる">
  この機能が利用できるかどうかは、ご利用のAuth0プラン（または契約）によります。詳細については、「[Auth0の価格設定](https://auth0.com/pricing)」ページを参照してください。
</Card>

推奨される方法を使ってCloudflareをリバースプロキシとしてセットアップするには、以下の機能を備えたCloudflareのEnterpriseプランが必要です。

<table class="table">
  <thead>
    <tr>
      <th><b>機能</b></th>
      <th><b>説明</b></th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>ホストヘッダーの上書き</td>
      <td>異なるCloudflareルールを使ってホストヘッダーを上書きします。詳細については、「<a href="https://support.cloudflare.com/hc/en-us/articles/206652947-Using-Page-Rules-to-Re-Write-Host-Headers">Cloudflareドキュメントでホストヘッダーを上書きする</a>」をお読みください。</td>
    </tr>

    <tr>
      <td>True-Client-IPヘッダー</td>
      <td>True-Client-IPヘッダーを有効にすると、True-Client-IPヘッダーがオリジンサーバーへのすべての要求に追加され、これにはエンドユーザーのIPアドレスが含まれます。詳細については、「<a href="https://support.cloudflare.com/hc/en-us/articles/206776727-What-is-True-Client-IP-">CloudflareドキュメントのTrue-Client-IPヘッダーを理解する</a>」をお読みください。</td>
    </tr>
  </tbody>
</table>

<div id="configure-cloudflare">
  ## Cloudflareを構成する
</div>

<Warning>
  前提条件として、選択したカスタムドメインの親ドメインが[Cloudflareダッシュボード内に追加され、有効になっている](https://developers.cloudflare.com/learning-paths/get-started/add-domain-to-cf/minimize-downtime/#activate-your-domain)必要があります。また、目的のカスタムドメインがCloudflareゾーン内にまだ存在していないことを確認してください。既に存在している場合には、Cloudflareの検証が失敗します。
</Warning>

Cloudflareをリバースプロキシとして構成するには、CloudflareでCNAMEレコード、ページルール、変換ルールを作成する必要があります。

1. [カスタムドメインを構成して自己管理証明書を使って検証する](https://auth0.com/docs/customize/custom-domains/self-managed-certificates)作業がまだ済んでいない場合は、ここで行います。 **［Origin Domain Name（オリジンのドメイン名）］** と **cname-api-key** の値が後で必要になるのでメモしておきます。
2. 目的のゾーンのCloudflareダッシュボードで、以下の設定の[CNAMEレコードを作成](https://developers.cloudflare.com/dns/manage-dns-records/how-to/create-dns-records/#create-dns-records)します。

   <table class="table">
     <thead>
       <tr>
         <th><b>設定</b></th>
         <th><b>値</b></th>
       </tr>
     </thead>

     <tbody>
       <tr>
         <td>Name（名前）</td>
         <td>カスタムドメイン名。</td>
       </tr>

       <tr>
         <td>Target（ターゲット）</td>
         <td>以前記録した\_\_Origin Domain Name\_\_の値。</td>
       </tr>

       <tr>
         <td>Proxy Status（プロキシのステータス）</td>
         <td>`Proxied`</td>
       </tr>
     </tbody>
   </table>
3. 以下の設定で、選択したカスタムドメインすべてのURLを対象とする[ページルールを作成](https://support.cloudflare.com/hc/en-us/articles/200172336-Creating-Page-Rules)します。

   <table class="table">
     <thead>
       <tr>
         <th><b>設定</b></th>
         <th><b>値</b></th>
       </tr>
     </thead>

     <tbody>
       <tr>
         <td>Host Header Override（ホストヘッダーのオーバーライド）</td>
         <td>以前記録した\_\_Origin Domain Name\_\_の値。</td>
       </tr>

       <tr>
         <td>True-Client-IP</td>
         <td>`Enable`</td>
       </tr>
     </tbody>
   </table>
4. [変換ルールを作成](https://developers.cloudflare.com/rules/transform/request-header-modification/create-dashboard/)します。

   1. **［要求ヘッダーを修正する］** ビューに切り替えます。
   2. **［ルールを作成］** を選択して、任意の名前を入力します。
   3. **［受信要求が一致する場合］** の下にある **［カスタムフィルター式］** を選択し、選択したカスタムドメインと紐づけられた要求にルールのスコープを定める式を設定します。たとえば、 **［ホスト名］** フィールドに完全一致を使用します。
   4. ［要求ヘッダーを修正する］で、 **［スタティック設定］** を選択し、以下のフィールドを設定します。

      <table class="table">
        <thead>
          <tr>
            <th><b>フィールド</b></th>
            <th><b>値</b></th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td>Header name（ヘッダー名）</td>
            <td>`cname-api-key`</td>
          </tr>

          <tr>
            <td>Value（値）</td>
            <td>以前記録した\_\_cname-api-key\_\_の値。</td>
          </tr>
        </tbody>
      </table>
5. [［常にHTTPSを使用］](https://developers.cloudflare.com/ssl/edge-certificates/additional-options/always-use-https/)が有効で、選択したカスタムドメインの[［暗号化モード］](https://developers.cloudflare.com/ssl/origin-configuration/ssl-modes/)が少なくとも **［フル］** に設定されていることを確認します。

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  自己管理証明書を使ったカスタムドメインに適したリバースプロキシをセットアップするために、Page RulesやTransform RulesではなくCloudflare Workersを使うことは可能です。しかし、ルールベースの方法を採用してカスタムコードを不要にすることをお勧めします。
</Callout>

<div id="configure-auth0">
  ## Auth0を構成する
</div>

以下のペイロードを本文に含むAuth0 <Tooltip data-tooltip-id="react-containers-DefinitionTooltip-0" href="/docs/ja-JP/ja-jp/glossary?term=management-api" tip="Management API: 顧客が管理タスクを実行できるようにするための製品。" cta="用語集の表示">Management API</Tooltip>の[カスタムドメイン構成の更新](https://auth0.com/docs/api/management/v2#!/Custom_Domains/patch_custom_domains_by_id)エンドポイントを呼び出します。

```json lines theme={null}
{
  "custom_client_ip_header": "true-client-ip"
}
```

<div id="learn-more">
  ## もっと詳しく
</div>

* [機能にカスタムドメインの使用を構成する](/docs/ja-JP/ja-jp/customize/custom-domains/configure-features-to-use-custom-domains)
* [カスタムドメインのトラブルシューティング](/docs/ja-JP/ja-jp/troubleshoot/integration-extensibility-issues/troubleshoot-custom-domains)
* [TLS（SSL）のバージョンと暗号](/docs/ja-JP/ja-jp/customize/custom-domains/self-managed-certificates/tls-ssl)
