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.

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 :
- Sur la page Welcome to Cloudflare Zero Trust, sélectionnez Get started
- Sur Choose a plan, sélectionnez Zero Trust Free sauf si vous avez volontairement besoin d’un forfait payant
- 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é.
| Option | Utilisez-le quand |
|---|---|
| GitHub | Les mainteneurs utilisent déjà GitHub et vous voulez des sélecteurs d’utilisateur ou d’organisation |
| Les mainteneurs utilisent déjà Gmail ou Google Workspace | |
| IdP corporatif | Votre 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 :
- Créez une application
- Sélectionnez Self-hosted and private
- 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églage | Valeur |
|---|---|
| Type d’application | Self-hosted |
| Nom de l’application | Votre nom de Worker, par exemple v8s-link |
| Durée de session | 24 hours |
| Fournisseurs d’identité | Code à usage unique pour la phase 1, ou les fournisseurs que vous avez configurés |
| Browser rendering | Off |
Configurez ces destinations avec votre domaine court :
Utiliser votre domaine court
v8s.link par votre domaine court partout.| Sous-domaine | Domaine | Chemin |
|---|---|---|
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
/_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 :
| Champ | Valeur |
|---|---|
| Nom de politique | Allow maintainers |
| Action | Allow |
| Sélecteur Include | Emails |
| Valeur Include | Vos adresses courriel de mainteneurs |
| Durée de session | 24 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 :
- Utilisez le testeur de politique Cloudflare pour confirmer qu’une identité autorisée réussit
- Utilisez le testeur de politique pour confirmer qu’une identité refusée échoue
- Visitez
/en/_stats/depuis un profil de navigateur déconnecté ou privé - Visitez un autre chemin stats localisé, par exemple
/fr/_stats/ - Visitez
/_testsdepuis un profil de navigateur déconnecté ou privé - Confirmez que Cloudflare Access apparaît avant le tableau de bord ou la page de test
- 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.
Le Worker valide l’en-tête
Cf-Access-Jwt-Assertionsur ces chemins; consultez Stocker l’audience Access ci-dessous. Si le secret est absent ou invalide, le chemin protégé échoue fermé. ↩︎