La disponibilité varie selon le forfait Auth0
Votre forfait Auth0 ou votre entente personnalisée influence la disponibilité de cette fonctionnalité. Pour en savoir plus, consultez la page de tarification d’Auth0.
Configurer Cloudflare
Pour configurer Cloudflare comme proxy inverse, vous devrez créer un enregistrement CNAME, une règle de page et une règle de transformation dans Cloudflare.- Configurez et vérifiez un domaine personnalisé avec des certificats autogérés si ce n’est pas déjà fait. Prenez note des valeurs Origin Domain Name et cname-api-key, car vous en aurez besoin plus tard.
-
Dans le tableau de bord Cloudflare de la zone cible, créez un enregistrement CNAME avec les paramètres suivants :
-
Créez une règle de page qui s’applique à toutes les URL du domaine personnalisé choisi, avec les paramètres suivants :
-
Créez une règle de transformation :
Bien qu’il soit possible d’utiliser des Cloudflare Workers au lieu des règles de page et de transformation pour mettre en place 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 évite d’avoir à écrire du code personnalisé.
- Passez à la vue Modify Request Header.
- Sélectionnez Create Rule et donnez-lui le nom de votre choix.
- Sous When incoming requests match, sélectionnez Custom filter expression et définissez une expression qui limite la règle aux requêtes associées au domaine personnalisé choisi. Par exemple, utilisez une correspondance exacte sur le champ Hostname.
-
Sous Modify request header, sélectionnez Set static, puis définissez les champs suivants :
- Assurez-vous que Always Use HTTPS est activé et que le mode de chiffrement est réglé au minimum sur Full pour le domaine personnalisé choisi.
Utiliser Managed Challenges
Les Managed Challenges de Cloudflare vous permettent de filtrer le trafic de bots avant que les requêtes n’atteignent Auth0 Universal Login. Lorsqu’une requête correspond à votre règle, Cloudflare l’intercepte et présente une vérification. Comme les pages de challenge renvoient du HTML, Managed Challenges ne sont compatibles qu’avec les flux dans le navigateur — les appliquer à des points de terminaison d’API ou à des flux sans interface utilisateur les fera échouer, car le client recevra une page de challenge HTML au lieu de la réponse attendue.Points de terminaison Universal Login basés sur le navigateur
Les points de terminaison suivants servent des pages HTML à un navigateur et sont compatibles avec Managed Challenges :Si vous utilisez Classic Universal Login, incluez aussi
/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 SDKs ou des serveurs de ressources et ne peuvent pas relever un défi interactif :Exemple de règle
Pour appliquer les Managed Challenges uniquement aux flux Universal Login dans le navigateur, créez une WAF Custom Rule dans Cloudflare. Définissez l’action de la règle sur Managed Challenge et utilisez l’expression suivante en remplaçantYOUR_CUSTOM_DOMAIN par votre domaine personnalisé (par exemple, login.example.com) :
Quelques cas d’utilisation peuvent se comporter différemment :
- Persistance du cookie d’autorisation : Une fois qu’un navigateur a franchi un Managed Challenge, Cloudflare émet un cookie d’autorisation qui persiste généralement pendant la session. Selon votre configuration, limiter la règle à
/authorizeבלבד peut suffire pour couvrir l’ensemble du flux de connexion Universal Login sans l’appliquer à chaque chemin/u/*. - Points d’entrée non OAuth : Les flux qui commencent à partir de points d’entrée SAML initiés par le fournisseur de services (SP) ou de points d’entrée WS-Federation utilisent
/samlp/*ou/wsfed/*au lieu de/authorize. Ces chemins figurent dans la liste d’exclusion et ne devraient pas être soumis à un Managed Challenge.
Configurer Auth0
Appelez le point de terminaison Mettre à jour la configuration du domaine personnalisé de l’ d’Auth0 avec la charge utile suivante dans le corps de la requête :true-client-ip.
Utilisez toujours
true-client-ip dans la mesure du possible. Cloudflare ne prend pas en charge l’utilisation de l’en-tête HTTP cf-connecting-ip à cette fin.