Passer au contenu principal

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.
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 HostRéé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.
En-tête True-Client-IPL’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.

Configurer Cloudflare

Comme prérequis, le domaine parent du domaine personnalisé choisi doit être ajouté et activé dans le tableau de bord Cloudflare. 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.
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, 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 avec les paramètres suivants :
    ParamètreValeur
    NomLe nom du domaine personnalisé.
    CibleLa valeur Origin Domain Name notée précédemment.
    État du proxyProxied
  3. Créez une Page Rule qui s’applique à toutes les URL sous le domaine personnalisé choisi, avec les paramètres suivants :
    ParamètreValeur
    Remplacement de l’en-tête HostLa valeur Origin Domain Name notée précédemment.
    True-Client-IPEnable
  4. Créez une Transform Rule :
    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é.
    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 :
      ChampValeur
      Nom de l’en-têtecname-api-key
      ValeurLa valeur cname-api-key notée précédemment.
  5. Assurez-vous que Always Use HTTPS est activé et que le mode de chiffrement est réglé au minimum à Full pour le domaine personnalisé choisi.

Utiliser les Managed Challenges

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

Points de terminaison Universal Login accessibles par navigateur

Les points de terminaison suivants renvoient des pages HTML à un navigateur et sont compatibles avec les Managed Challenges :
Point de terminaisonDescription
/u/email-verificationVérification du courriel
/u/loginInvites d’identifiant et d’identifiant d’abord
Points de terminaison d’organisation :
  • u/organization
  • /u/organization-picker
  • /u/pre-organization-picker
Invites de sélection d’organisation
/u/login/passwordInvite de mot de passe
/u/login-email-verificationInvite de vérification du courriel
/u/signupInvites d’identifiant
/u/signup/passwordInvite de mot de passe
/u/consentInvite de consentement
/u/customized-consentInvite de consentement personnalisée
/u/reset-passwordInvites de réinitialisation du mot de passe
/u/reset-password/requestInvite de courriel ou de nom d’utilisateur pour la réinitialisation du mot de passe
/u/reset-password/changeInvite de nouveau mot de passe
/u/reset-verifyVérification de la réinitialisation du mot de passe
/u/mfa-begin-enroll-optionsSélection du facteur d’inscription à la MFA
/u/mfa-enroll-optionsOptions d’inscription à la MFA
/u/mfa-otpInvites OTP
/u/mfa-pushInvites de notification push
/u/mfa-webauthnInvites WebAuthn et de clé d’accès
/u/mfa-recovery-codeInvites de code de récupération
/u/mfa-smsInvites SMS
/u/mfa-emailInvites MFA par courriel
/u/mfa-voiceInvites MFA vocales
/u/passkey-enrollmentInscription de clé d’accès
Si vous utilisez Classic Universal Login, incluez également /login dans votre règle Managed Challenge.

Points de terminaison à exclure

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 terminaisonDescription
/oauth/tokenPoint de terminaison du jeton
/oauth/revokePoint de terminaison de révocation du jeton
/userinfoPoint de terminaison UserInfo
/.well-known/openid-configurationDocument de découverte OIDC
/.well-known/jwks.jsonJeu de clés Web JSON ; récupéré par les serveurs de ressources pour valider les jetons
/api/v2/*Management API
/co/authenticateAuthentification inter-origines
/dbconnections/signupConnexions de base de données : inscription
/dbconnections/change_passwordConnexions de base de données : changement de mot de passe
/usernamepassword/loginEnvoi du formulaire Universal Login classique
/mfa/challengeDemande de défi
/mfa/associateAssociation de l’authentificateur
/passwordless/startPasswordless : demande d’initialisation
/samlp/*Points de terminaison du protocole SAML
/wsfed/*Points de terminaison WS-Federation
/v2/logoutPeut être appelé côté serveur dans les flux de déconnexion back-channel

Exemple de Rule

Pour appliquer les Managed Challenges uniquement aux flux Universal Login exécutés dans le navigateur, créez une règle WAF personnalisée 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) :
(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.
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.

Configurer Auth0

Appelez le point de terminaison Update custom domain configuration avec la charge utile suivante dans le corps de la requête :
{
  "custom_client_ip_header": "true-client-ip"
}

En savoir plus