Skip to main content

利用可否は Auth0 プランによって異なります

この機能を利用できるかどうかは、Auth0 プランまたはカスタム契約によって異なります。詳しくは、Auth0 の料金ページを参照してください。
推奨される方法で Cloudflare をリバースプロキシとして設定するには、以下の機能を備えた Cloudflare Enterprise Plan が必要です。

Cloudflare を設定する

前提条件として、選択したカスタムドメインの親ドメインを Cloudflare ダッシュボードで追加して有効化しておく必要があります。また、使用するカスタムドメインが Cloudflare ゾーン内にまだ存在していないことも確認してください。すでに存在する場合、Cloudflare の検証は失敗します。
Cloudflare をリバースプロキシとして設定するには、Cloudflare で CNAME レコード、Page Rule、Transform Rule を作成する必要があります。
  1. まだ設定していない場合は、自己管理証明書を使用して カスタムドメイン を設定および検証します。後で必要になるため、Origin Domain Namecname-api-key の値を控えておいてください。
  2. 対象ゾーンの Cloudflare ダッシュボードで、次の設定を使用して CNAME レコードを作成します。
  3. 選択したカスタムドメイン配下のすべての URL を対象として、次の設定で Page Rule を作成します。
  4. Transform Rule を作成します。
    Page Rule と Transform Rule の代わりに Cloudflare Workers を使用して、自己管理証明書のカスタムドメイン要件を満たすリバースプロキシを設定することもできますが、カスタムコードが不要になるため、ルールベースの方法を推奨します。
    1. Modify Request Header ビューに切り替えます。
    2. Create Rule を選択し、任意の名前を指定します。
    3. When incoming requests matchCustom filter expression を選択し、選択したカスタムドメインに関連するリクエストだけを対象にする式を設定します。たとえば、Hostname フィールドの完全一致を使用します。
    4. Modify request headerSet static を選択し、次のフィールドを設定します。
  5. 選択したカスタムドメインで Always Use HTTPS が有効になっており、encryption mode が少なくとも Full に設定されていることを確認します。

Managed Challenges を使用する

Cloudflare の Managed Challenges を使用すると、リクエストが Auth0 Universal Login に到達する前に、ボットによるトラフィックをフィルタリングできます。リクエストがルールに一致すると、Cloudflare がそのリクエストを横取りし、検証チャレンジを表示します。チャレンジページは HTML を返すため、Managed Challenges と互換性があるのはブラウザベースのフローのみです。これを API エンドポイントやヘッドレスフローに適用すると、クライアントは想定されたレスポンスではなく HTML のチャレンジページを受け取ることになるため、それらのフローは動作しなくなります。

Universal Login のブラウザベースのエンドポイント

次のエンドポイントはブラウザに HTML ページを返し、Managed Challenges に対応しています。
Classic Universal Login を使用している場合は、Managed Challenge ルールに /login も含めてください。

除外するエンドポイント

次のエンドポイントには Managed Challenge を適用しないでください。これらはサーバー、SDK、またはリソースサーバーから呼び出されるため、インタラクティブなチャレンジには対応できません。

ルールの例

Managed Challenge をブラウザベースの Universal Login フローにのみ適用するには、Cloudflare で WAF Custom Rule を作成します。ルールのアクションを Managed Challenge に設定し、次の式を使用します。YOUR_CUSTOM_DOMAIN はカスタムドメイン (たとえば login.example.com) に置き換えてください。
これにより、チャレンジの適用対象はブラウザ表示を伴う Universal Login エンドポイントのみに限定され、API トラフィックやマシン間通信への影響を防げます。
いくつかのユースケースでは、動作が異なる場合があります。
  • クリアランス Cookie の維持: ブラウザーが Managed Challenge を通過すると、Cloudflare は通常、セッション中有効なクリアランス Cookie を発行します。設定によっては、ルールの適用対象を /authorize のみに限定するだけで、すべての /u/* パスに適用しなくても Universal Login フロー全体をカバーできる場合があります。
  • OAuth 以外のエントリポイント: SAML の SP 開始型または WS-Federation のエントリポイントから始まるフローでは、/authorize ではなく /samlp/* または /wsfed/* が使用されます。これらのパスは除外リストに含まれているため、Managed Challenge を適用しないでください。

Auth0 を設定する

リクエストボディに次のペイロードを指定して、Auth0 の カスタムドメイン設定を更新 エンドポイントを呼び出します。

詳しくはこちら