> ## 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.

> Découvrez comment configurer Cloudflare pour l’utiliser comme proxy de domaine personnalisé pour Auth0.

# Configurer Cloudflare en tant que proxy inverse

<Card title="La disponibilité varie selon le forfait Auth0">
  Votre forfait Auth0 ou votre entente personnalisée a une incidence sur la disponibilité de cette fonctionnalité. Pour en savoir plus, consultez [la page de tarification d’Auth0](https://auth0.com/pricing).
</Card>

Pour configurer Cloudflare en tant que proxy inverse selon l’approche recommandée, vous devez disposer d’un forfait Cloudflare Enterprise avec les fonctionnalités suivantes :

| Fonctionnalité                 | Description                                                                                                                                                                                                                                                                                                                                  |
| ------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Remplacement de l’en-tête Host | Réécrire les en-têtes Host à l’aide de différentes règles Cloudflare. Pour en savoir plus, consultez [Rewrite Host headers dans la documentation Cloudflare](https://developers.cloudflare.com/rules/origin-rules/tutorials/change-uri-path-and-host-header/).                                                                               |
| En-tête True-Client-IP         | L’activation de l’en-tête True-Client-IP ajoute l’en-tête True-Client-IP à toutes les requêtes envoyées à votre serveur d’origine, y compris l’adresse IP de l’utilisateur final. Pour en savoir plus, consultez [Understanding the True-Client-IP Header sur Cloudflare](https://developers.cloudflare.com/network/true-client-ip-header/). |

<div id="configure-cloudflare">
  ## Configurer Cloudflare
</div>

<Warning>
  Comme prérequis, le domaine parent du domaine personnalisé choisi doit être [ajouté et activé dans le tableau de bord Cloudflare](https://developers.cloudflare.com/learning-paths/get-started/add-domain-to-cf/minimize-downtime/#activate-your-domain). Assurez-vous également que le domaine personnalisé souhaité n’existe pas déjà dans votre zone Cloudflare. S’il existe déjà, la vérification Cloudflare échouera.
</Warning>

Pour configurer Cloudflare comme proxy inverse, vous devez créer un enregistrement CNAME, une Page Rule et une Transform Rule dans Cloudflare.

1. [Configurez et vérifiez un domaine personnalisé avec des certificats autogérés](/fr-CA/docs/customize/custom-domains/self-managed-certificates), si ce n’est pas déjà fait. Prenez en note les valeurs **Origin Domain Name** et **cname-api-key**, car vous en aurez besoin plus tard.
2. Dans le tableau de bord Cloudflare de la zone cible, [créez un enregistrement CNAME](https://developers.cloudflare.com/dns/manage-dns-records/how-to/create-dns-records/#create-dns-records) avec les paramètres suivants :

   | Paramètre     | Valeur                                               |
   | ------------- | ---------------------------------------------------- |
   | Nom           | Le nom du domaine personnalisé.                      |
   | Cible         | La valeur **Origin Domain Name** notée précédemment. |
   | État du proxy | `Proxied`                                            |
3. [Créez une Page Rule](https://developers.cloudflare.com/rules/page-rules/) qui s’applique à toutes les URL sous le domaine personnalisé choisi, avec les paramètres suivants :

   | Paramètre                      | Valeur                                               |
   | ------------------------------ | ---------------------------------------------------- |
   | Remplacement de l’en-tête Host | La valeur **Origin Domain Name** notée précédemment. |
   | True-Client-IP                 | `Enable`                                             |
4. [Créez une Transform Rule](https://developers.cloudflare.com/rules/transform/request-header-modification/create-dashboard/) :

   <Callout icon="file-lines" color="#0EA5E9" iconType="regular">
     Bien qu’il soit possible d’utiliser Cloudflare Workers au lieu des règles Page et Transform pour configurer un proxy inverse qui répond aux exigences d’un domaine personnalisé avec certificat autogéré, nous recommandons l’approche fondée sur des règles, car elle élimine le besoin de code personnalisé.
   </Callout>

   1. Passez à la vue **Modify Request Header**.
   2. Sélectionnez **Create Rule** et donnez-lui le nom de votre choix.
   3. Sous **When incoming requests match**, sélectionnez **Custom filter expression** et définissez une expression qui limite la Rule aux requêtes associées au domaine personnalisé choisi. Par exemple, utilisez une correspondance exacte sur le champ **Hostname**.
   4. Sous **Modify request header**, sélectionnez **Set static**, puis définissez les champs suivants :

      | Champ            | Valeur                                          |
      | ---------------- | ----------------------------------------------- |
      | Nom de l’en-tête | `cname-api-key`                                 |
      | Valeur           | La valeur **cname-api-key** notée précédemment. |
5. Assurez-vous que [Always Use HTTPS](https://developers.cloudflare.com/ssl/edge-certificates/additional-options/always-use-https/) est activé et que le [mode de chiffrement](https://developers.cloudflare.com/ssl/origin-configuration/ssl-modes/) est réglé au minimum à **Full** pour le domaine personnalisé choisi.

<div id="use-managed-challenges">
  ## Utiliser les Managed Challenges
</div>

Les [Managed Challenges](https://developers.cloudflare.com/cloudflare-challenges/challenge-types/challenge-pages/#managed-challenges) de Cloudflare vous permettent de filtrer le trafic de robots avant que les requêtes n’atteignent le Universal Login d’Auth0. Lorsqu’une requête correspond à votre règle, Cloudflare l’intercepte et affiche une vérification. Comme les pages de vérification renvoient du HTML, les Managed Challenges sont uniquement compatibles avec les flux basés sur un navigateur — si vous les appliquez à des points de terminaison d’API ou à des flux headless, ces flux cesseront de fonctionner, car le client recevra une page de vérification HTML au lieu de la réponse attendue.

<div id="universal-login-browser-based-endpoints">
  ### Points de terminaison Universal Login accessibles par navigateur
</div>

Les points de terminaison suivants renvoient des pages HTML à un navigateur et sont compatibles avec les Managed Challenges :

| Point de terminaison                                                                                                                                  | Description                                                                         |
| ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
| `/u/email-verification`                                                                                                                               | Vérification du courriel                                                            |
| `/u/login`                                                                                                                                            | Invites d’identifiant et d’identifiant d’abord                                      |
| Points de terminaison d’organisation : <br /><ul><li>`u/organization`</li><li>`/u/organization-picker`</li><li>`/u/pre-organization-picker`</li></ul> | Invites de sélection d’organisation                                                 |
| `/u/login/password`                                                                                                                                   | Invite de mot de passe                                                              |
| `/u/login-email-verification`                                                                                                                         | Invite de vérification du courriel                                                  |
| `/u/signup`                                                                                                                                           | Invites d’identifiant                                                               |
| `/u/signup/password`                                                                                                                                  | Invite de mot de passe                                                              |
| `/u/consent`                                                                                                                                          | Invite de consentement                                                              |
| `/u/customized-consent`                                                                                                                               | Invite de consentement personnalisée                                                |
| `/u/reset-password`                                                                                                                                   | Invites de réinitialisation du mot de passe                                         |
| `/u/reset-password/request`                                                                                                                           | Invite de courriel ou de nom d’utilisateur pour la réinitialisation du mot de passe |
| `/u/reset-password/change`                                                                                                                            | Invite de nouveau mot de passe                                                      |
| `/u/reset-verify`                                                                                                                                     | Vérification de la réinitialisation du mot de passe                                 |
| `/u/mfa-begin-enroll-options`                                                                                                                         | Sélection du facteur d’inscription à la MFA                                         |
| `/u/mfa-enroll-options`                                                                                                                               | Options d’inscription à la MFA                                                      |
| `/u/mfa-otp`                                                                                                                                          | Invites OTP                                                                         |
| `/u/mfa-push`                                                                                                                                         | Invites de notification push                                                        |
| `/u/mfa-webauthn`                                                                                                                                     | Invites WebAuthn et de clé d’accès                                                  |
| `/u/mfa-recovery-code`                                                                                                                                | Invites de code de récupération                                                     |
| `/u/mfa-sms`                                                                                                                                          | Invites SMS                                                                         |
| `/u/mfa-email`                                                                                                                                        | Invites MFA par courriel                                                            |
| `/u/mfa-voice`                                                                                                                                        | Invites MFA vocales                                                                 |
| `/u/passkey-enrollment`                                                                                                                               | Inscription de clé d’accès                                                          |

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  Si vous utilisez Classic Universal Login, incluez également `/login` dans votre règle Managed Challenge.
</Callout>

<div id="endpoints-to-exclude">
  ### Points de terminaison à exclure
</div>

N’appliquez pas de Managed Challenge aux points de terminaison suivants. Ils sont appelés par des serveurs, des SDK ou des serveurs de ressources et ne peuvent pas répondre à un défi interactif :

| Point de terminaison                | Description                                                                            |
| ----------------------------------- | -------------------------------------------------------------------------------------- |
| `/oauth/token`                      | Point de terminaison du jeton                                                          |
| `/oauth/revoke`                     | Point de terminaison de révocation du jeton                                            |
| `/userinfo`                         | Point de terminaison UserInfo                                                          |
| `/.well-known/openid-configuration` | Document de découverte OIDC                                                            |
| `/.well-known/jwks.json`            | Jeu de clés Web JSON ; récupéré par les serveurs de ressources pour valider les jetons |
| `/api/v2/*`                         | Management API                                                                         |
| `/co/authenticate`                  | Authentification inter-origines                                                        |
| `/dbconnections/signup`             | Connexions de base de données : inscription                                            |
| `/dbconnections/change_password`    | Connexions de base de données : changement de mot de passe                             |
| `/usernamepassword/login`           | Envoi du formulaire Universal Login classique                                          |
| `/mfa/challenge`                    | Demande de défi                                                                        |
| `/mfa/associate`                    | Association de l’authentificateur                                                      |
| `/passwordless/start`               | Passwordless : demande d’initialisation                                                |
| `/samlp/*`                          | Points de terminaison du protocole SAML                                                |
| `/wsfed/*`                          | Points de terminaison WS-Federation                                                    |
| `/v2/logout`                        | Peut être appelé côté serveur dans les flux de déconnexion back-channel                |

<div id="example-rule">
  ### Exemple de Rule
</div>

Pour appliquer les **Managed Challenges** uniquement aux flux Universal Login exécutés dans le navigateur, créez une [règle WAF personnalisée](https://developers.cloudflare.com/waf/custom-rules/) dans Cloudflare. Définissez l’action de la règle sur **Managed Challenge** et utilisez l’expression suivante, en remplaçant `YOUR_CUSTOM_DOMAIN` par votre domaine personnalisé (par exemple, `login.example.com`) :

```text theme={null}
(http.host eq "YOUR_CUSTOM_DOMAIN" and (
  http.request.uri.path eq "/authorize" or
  starts_with(http.request.uri.path, "/u/") or
  http.request.uri.path eq "/login"
))
```

Cela limite le challenge aux seuls points de terminaison d’Universal Login avec interface et évite de perturber le trafic des API et des échanges machine à machine.

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  Quelques cas d’utilisation peuvent se comporter différemment :

  * **Persistance du cookie de clearance** : Une fois qu’un navigateur a passé un Managed Challenge, Cloudflare émet un cookie de clearance qui persiste généralement pendant la session. Selon votre configuration, limiter la règle à `/authorize` seulement peut suffire à couvrir l’ensemble du flux Universal Login sans devoir l’appliquer à chaque chemin `/u/*`.
  * **Points d’entrée non OAuth** : Les flux qui démarrent à partir de points d’entrée SAML initiés par le SP ou WS-Federation utilisent `/samlp/*` ou `/wsfed/*` au lieu de `/authorize`. Ces chemins figurent dans la liste d’exclusion et ne doivent pas se voir appliquer un Managed Challenge.
</Callout>

<div id="configure-auth0">
  ## Configurer Auth0
</div>

Appelez le point de terminaison <Tooltip tip="Management API : Un produit qui permet aux clients d’effectuer des tâches administratives." cta="Voir le glossaire" href="/fr-CA/docs/glossary?term=Management+API">Management API</Tooltip> [Update custom domain configuration](https://auth0.com/docs/api/management/v2#!/Custom_Domains/patch_custom_domains_by_id) avec la charge utile suivante dans le corps de la requête :

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

<div id="learn-more">
  ## En savoir plus
</div>

* [Configurer les fonctionnalités pour utiliser des domaines personnalisés](/fr-CA/docs/customize/custom-domains/configure-features-to-use-custom-domains)
* [Versions TLS (SSL) et suites de chiffrement](/fr-CA/docs/customize/custom-domains/self-managed-certificates/tls-ssl)
