Audit de sécurité Auth0 : checklist complète pour les équipes
Checklist exhaustive pour auditer la sécurité d'une implémentation Auth0 : tokens, MFA, connexions, logs, configuration tenant et gestion des secrets.
Par Auth0.Expert · 2025-03-25 · 10 min de lecture
Audit Sécurité Checklist
Audit de sécurité Auth0 : checklist complète
TL;DR
Cette checklist couvre les 50 points de vérification essentiels pour une implémentation Auth0 sécurisée. Utilisez-la lors d'audits trimestriels ou avant une certification (SOC2, ISO27001, HDS).
---
1. Configuration Tenant (10 points)
- [ ] Domaine personnalisé configuré (
login.yourapp.com) - [ ] HTTPS uniquement — pas de callback en http://
- [ ] Allowed Callbacks strictement définis (pas de wildcard *)
- [ ] Allowed Logout URLs strictement définis
- [ ] Allowed Web Origins minimaux
- [ ] Token Lifetime : access token ≤ 3600s, refresh token ≤ 30j
- [ ] Refresh Token Rotation activée
- [ ] Breached Password Detection activée
- [ ] MFA activé pour les admins Auth0
- [ ] Logs streaming configuré vers un SIEM externe
---
2. Applications (8 points)
- [ ] Pas d'application avec
grant_type: implicitactif - [ ] SPAs utilisent
grant_type: authorization_code+ PKCE - [ ] Secrets M2M stockés dans un vault (pas en dur dans le code)
- [ ] Rotation des secrets planifiée (trimestrielle minimum)
- [ ] Les apps non utilisées sont désactivées ou supprimées
- [ ]
oidc_conformant: truesur toutes les apps - [ ] Metadata sensibles pas dans les client metadata (public)
- [ ] Token endpoint auth method :
private_key_jwtouclient_secret_post(pasnonepour les apps confidentielles)
---
3. Connexions (7 points)
- [ ] Connexion
Username-Password-Authentication: password policyexcellent(12 chars min) - [ ] Connexions sociales : scopes minimaux
- [ ] Apple Sign In : name/email capturés à la 1ère connexion
- [ ] Connexions SAML : certificats valides (expiration > 30 jours)
- [ ] Connexions désactivées si non utilisées
- [ ]
disable_signupsur les connexions enterprise si requis - [ ] Account linking : stratégie définie pour les emails dupliqués
---
4. Tokens (8 points)
- [ ] Validation
iss(issuer) côté API - [ ] Validation
aud(audience) côté API - [ ] Algorithme
RS256(pasHS256pour les APIs publiques) - [ ] JWKS mis en cache (pas d'appel à chaque requête)
- [ ] Pas de token dans les URLs (logs serveur)
- [ ]
alg: nonerejeté côté validation - [ ] Access tokens ne contiennent pas de données sensibles (PII)
- [ ] ID tokens non utilisés pour authentifier les APIs
---
5. Actions et Rules (5 points)
- [ ] Secrets stockés dans les Action Secrets (pas dans le code)
- [ ] Pas de données PII loggées dans les Actions
- [ ] Actions testées en environnement de staging avant production
- [ ] Rules migrées vers Actions (Rules dépréciées)
- [ ] Timeout des Actions configuré (max 20s)
---
6. MFA (5 points)
- [ ] MFA forcé pour les utilisateurs admin
- [ ] SMS MFA désactivé pour les comptes privilégiés
- [ ] WebAuthn/Passkeys activés et promus
- [ ] Recovery codes : utilisateurs informés de leur importance
- [ ]
allowRememberBrowser: falsepour les actions critiques
---
7. Monitoring (7 points)
- [ ] Alerte sur
type:limit_wc(brute force détecté) - [ ] Alerte sur
type:pwd_leak(mot de passe compromis) - [ ] Alerte sur nouveaux logins admin (type:s pour users admin)
- [ ] Log Streaming configuré
- [ ] Rétention logs ≥ 12 mois (conformité)
- [ ] Dashboard d'anomalies configuré
- [ ] Rapport mensuel d'incidents d'authentification
---
Script d'audit automatique
#!/bin/bash
# Audit rapide via Management API
DOMAIN="YOUR_DOMAIN.auth0.com"
TOKEN="$MGMT_TOKEN"
echo "=== Applications avec Implicit Flow ==="
curl -s "https://$DOMAIN/api/v2/clients?per_page=100" -H "Authorization: Bearer $TOKEN" | jq '.[] | select(.grant_types | contains(["implicit"])) | {name, client_id}'
echo "=== Applications sans Refresh Token Rotation ==="
curl -s "https://$DOMAIN/api/v2/clients?per_page=100" -H "Authorization: Bearer $TOKEN" | jq '.[] | select(.refresh_token.rotation_type != "rotating") | {name, client_id}'
echo "=== Connexions actives ==="
curl -s "https://$DOMAIN/api/v2/connections?per_page=100" -H "Authorization: Bearer $TOKEN" | jq '[.[] | {name, strategy, enabled_clients: (.enabled_clients | length)}]'
---
> 📋 Audit Auth0 professionnel : nos experts réalisent un audit complet de votre tenant Auth0 en 5 jours ouvrés, avec rapport de remédiation priorisé et accompagnement à la correction.
📞 +33 1 23 45 67 89 · 📧 [email protected]
Autres articles
- Auth0 et OAuth 2.0 : architecture complète pour comprendre les flux d'autorisation
- OpenID Connect sur Auth0 : ID Token, UserInfo et discovery endpoint expliqués
- Configurer SAML 2.0 avec Auth0 : guide complet pour l'entreprise
- Migrer des Rules vers les Auth0 Actions : guide pas à pas
- Architecture multi-tenant avec Auth0 : organisations, isolation et bonnes pratiques
- Validation des JWT Auth0 : RS256 vs HS256, JWKS et pièges communs
- Concevoir son architecture de tenants Auth0 : dev, staging, prod
- Configurer un domaine personnalisé Auth0 : login.votredomaine.com étape par étape