Aller au contenu

Contrôle d'accès

Le Worker vanityURLs bloque l’accès au tableau de bord privé et aux tests tant que Cloudflare Access n’est pas configuré. Toute personne qui essaie d’ouvrir ces pages voit la réponse Cloudflare Access non configuré1 affichée ci-dessous; les redirections publiques restent donc ouvertes pendant que les pages opérationnelles échouent fermées.

le chemin protégé échoue fermé

flowchart LR
A["Chemin privé"] --> B["Application
Cloudflare Access"] B --> C{"Identité
autorisée ?"} C -->|"non"| D["Connexion Access
ou refus"] C -->|"oui"| E["Assertion JWT"] E --> F["Worker valide
AUD et secret"] F --> G{"JWT valide ?"} G -->|"oui"| H["Servir tableau
ou tests"] G -->|"non"| I["Échec fermé avec
réponse non configuré"]

Trouver le domaine Team

Si ce compte Cloudflare n’a jamais utilisé Zero Trust, Cloudflare affiche une courte configuration initiale avant les écrans Access habituels :

  1. Sur la page Welcome to Cloudflare Zero Trust, sélectionnez Get started
  2. Sur Choose a plan, sélectionnez Zero Trust Free sauf si vous avez volontairement besoin d’un forfait payant
  3. Sur Activate Zero Trust Free, vérifiez le résumé de commande, autorisez les conditions du forfait, puis sélectionnez Activate

Cloudflare peut demander ou confirmer une méthode de paiement même si le forfait est gratuit; gardez le forfait sur Zero Trust Free sauf si votre organisation exige autre chose. Vous ne voyez cette configuration initiale qu’une seule fois.

Après l’activation, ouvrez Zero Trust > Settings, puis :

Copiez le Team domain.

L’installateur le conserve dans wrangler.toml pendant npm run setup :

[vars]
CF_ACCESS_TEAM_DOMAIN = "vanityurls.cloudflareaccess.com"

Cette valeur n’est pas un secret, mais elle doit correspondre au compte Cloudflare qui possède l’application Access.

Choisir le fournisseur d’identité

Pour la phase 1, utilisez le code à usage unique sauf si un fournisseur est déjà prêt. Pour la stratégie de fournisseur, lisez Choisir un fournisseur d’identité.

OptionUtilisez-le quand
GitHubLes mainteneurs utilisent déjà GitHub et vous voulez des sélecteurs d’utilisateur ou d’organisation
GoogleLes mainteneurs utilisent déjà Gmail ou Google Workspace
IdP corporatifVotre organisation gère déjà les identités de travail et le départ des employés

Si vous activez plusieurs fournisseurs, les utilisateurs en choisissent un sur la page de connexion Cloudflare Access. La politique réussit lorsque le fournisseur choisi retourne une identité qui correspond à la politique.

Créer l’application Access

Dans Cloudflare, ouvrez Zero Trust > Access Controls > Applications, puis :

  1. Créez une application
  2. Sélectionnez Self-hosted and private
  3. Continuez avec Self-hosted and private

Utilisez une seule application Access pour les opérations privées vanityURLs. Les chemins de redirection publics doivent rester hors Access pour que les visiteurs puissent suivre les liens courts sans connexion.

Réglages recommandés :

RéglageValeur
Type d’applicationSelf-hosted
Nom de l’applicationVotre nom de Worker, par exemple v8s-link
Durée de session24 hours
Fournisseurs d’identitéCode à usage unique pour la phase 1, ou les fournisseurs que vous avez configurés
Browser renderingOff

Configurez ces destinations avec votre domaine court :

Utiliser votre domaine court

Remplacez v8s.link par votre domaine court partout.
Sous-domaineDomaineChemin
v8s.link*/_stats
v8s.link*/_stats/*
v8s.link_tests
v8s.link_tests/*

Cloudflare Access accepte les wildcards dans le champ chemin. Les entrées */_stats couvrent les chemins de tableau de bord localisés comme /en/_stats/ et /fr/_stats/ tout en laissant les liens courts publics hors Access.

Comportement des anciens chemins Modifié en 3.0.0

Les anciennes requêtes /_stats redirigent vers /en/_stats/; elles n’ont pas besoin de destinations Access séparées.

Créer la politique Access

Commencez avec une politique d’autorisation simple :

ChampValeur
Nom de politiqueAllow maintainers
ActionAllow
Sélecteur IncludeEmails
Valeur IncludeVos adresses courriel de mainteneurs
Durée de session24 hours

Utilisez le testeur de politique avant de sauvegarder. Testez une adresse courriel autorisée et une adresse qui devrait être refusée.

Pour une équipe plus grande, préférez un groupe maintenu ou un sélecteur IdP à une longue liste d’adresses individuelles.

Stocker l’audience Access

Après la création de l’application, ouvrez Additional settings et copiez le Application Audience (AUD) Tag.

Stockez-le comme secret Worker :

npx wrangler secret put CF_ACCESS_AUD --config wrangler.toml

Valider la protection

Avant la release :

  1. Utilisez le testeur de politique Cloudflare pour confirmer qu’une identité autorisée réussit
  2. Utilisez le testeur de politique pour confirmer qu’une identité refusée échoue
  3. Visitez /en/_stats/ depuis un profil de navigateur déconnecté ou privé
  4. Visitez un autre chemin stats localisé, par exemple /fr/_stats/
  5. Visitez /_tests depuis un profil de navigateur déconnecté ou privé
  6. Confirmez que Cloudflare Access apparaît avant le tableau de bord ou la page de test
  7. Connectez-vous avec une identité autorisée et confirmez que la page charge

Lancez les vérifications locales avant de pousser des changements de configuration :

npm run check

Après le déploiement, répétez le test de navigateur déconnecté contre le vrai domaine court.

Pour information : Cloudflare Access n’est pas la seule couche qui limite l’accès aux fichiers opérationnels. Pour le tableau complet des gardes, lisez Sécurité runtime. Pour la revue continue, lisez Exploiter Cloudflare Access pour un domaine de liens courts.

Gardez l’accès contrôle sur les chemins stats localisés comme /en/_stats/ et /fr/_stats/, ainsi que /_tests, les entrées de fichiers runtime dans _headers et le garde Worker des fichiers runtime actifs, sauf si vous avez une raison délibérée de divulgation publique. C’est une note de conception, pas une activité de configuration séparée.


  1. Le Worker valide l’en-tête Cf-Access-Jwt-Assertion sur ces chemins; consultez Stocker l’audience Access ci-dessous. Si le secret est absent ou invalide, le chemin protégé échoue fermé. ↩︎

Modifier cette page Dernière modification: