Consigne pour l’IA
Consigne pour l’IA
- Python 3.9 ou une version ultérieure
- le gestionnaire de paquets pip
- jq - Requis pour la configuration d’Auth0 CLI
- une connaissance de FastAPI
Créer un nouveau projet FastAPI
Installer les dépendances
requirements.txt contenant les dépendances suivantes :Configurez votre API Auth0
- Dashboard
- CLI
- Accédez à Applications > APIs dans le Auth0 Dashboard
- Cliquez sur Create API
- Saisissez un Name pour votre API (p. ex., “My FastAPI API”)
- Définissez l’Identifier sur l’identifiant de votre API (p. ex.,
https://my-fastapi-api) - Laissez le Signing Algorithm à RS256
- Cliquez sur Create
Définir les permissions d’API
- Dans l’Auth0 Dashboard, accédez à l’onglet Permissions de votre API
- Ajoutez les permissions suivantes :
read:messagesavec la description “Lire les messages”write:messagesavec la description “Écrire les messages”
Configurer le client Auth0
.env à la racine de votre projet pour y stocker votre configuration Auth0 :YOUR_AUTH0_DOMAIN par votre domaine Auth0 (p. ex. dev-abc123.us.auth0.com) et YOUR_API_IDENTIFIER par l’identifiant que vous avez défini lors de la création de votre API.Créez maintenant un fichier app.py et initialisez votre application FastAPI avec Auth0 :Créer des routes protégées
app.py. Ces routes illustrent différents niveaux de contrôle d’accès :require_auth() valide le jeton d’accès envoyé dans l’en-tête Authorization. Lorsqu’elle est appelée avec le paramètre scopes, elle vérifie également que le jeton contient la permission spécifiée.Exécutez votre API
http://localhost:8000.http://localhost:8000/api/public dans votre navigateur. Vous devriez voir le message public sans devoir vous authentifier.Testez votre API
Pour tester les points de terminaison protégés, vous devrez obtenir un jeton d’accès auprès d’Auth0.Obtenir un jeton d’accès
La façon la plus simple d’obtenir un jeton d’accès pour effectuer des tests est de passer par l’Auth0 Dashboard :- Accédez à Applications > APIs dans l’Auth0 Dashboard
- Sélectionnez votre API
- Cliquez sur l’onglet Test
- Cliquez sur Copy Token dans la section Asking Auth0 for tokens from my application
Interrogez votre API
Utilisez le jeton d’accès pour effectuer une requête à votre point de terminaison protégé :read:messages :
Utilisation avancée
Valider les claims personnalisés
Valider les claims personnalisés
- Accédez à Actions > Library dans l’Auth0 Dashboard
- Cliquez sur Create Action
- Sélectionnez Build from scratch
- Donnez un nom à votre action et sélectionnez le Trigger Login / Post Login
- Ajoutez vos claims personnalisés :
- Cliquez sur Deploy et ajoutez l’action à votre Login flow
https://myapp.example.com/claim_name) afin d’éviter les conflits avec les claims standard.Protéger des endpoints sans utiliser de claims
Protéger des endpoints sans utiliser de claims
dependencies :Soutien pour DPoP
Soutien pour DPoP
Authorization: DPoP <token> et DPoP: <proof>. Le SDK valide automatiquement la preuve DPoP et l’associe au jeton d’accès.Configurer pour un proxy inverse
Configurer pour un proxy inverse
Gestion des erreurs
Gestion des erreurs
HTTPException en cas d’erreurs d’authentification. FastAPI les gère automatiquement et renvoie au client les réponses HTTP appropriées.Vous pouvez mettre en place une gestion personnalisée des erreurs au besoin :- 401 Unauthorized : jeton d’accès manquant, invalide ou expiré
- 403 Forbidden : jeton valide, mais permissions insuffisantes (scopes)
Problèmes courants
403 Forbidden - Insufficient scope
403 Forbidden - Insufficient scope
- Vérifiez quels scopes votre point de terminaison requiert
- Lorsque vous demandez un jeton, assurez-vous d’inclure les scopes requis
- Vérifiez que le scope existe dans l’onglet Permissions de votre API dans l’Auth0 Dashboard
- Décodez votre jeton sur jwt.io pour vérifier qu’il contient le claim
scopeavec les valeurs requises
ModuleNotFoundError: No module named 'fastapi_plugin'
ModuleNotFoundError: No module named 'fastapi_plugin'
Impossible de se connecter à Auth0 (échec de récupération des JWKS)
Impossible de se connecter à Auth0 (échec de récupération des JWKS)
-
Vérifiez que votre domaine est accessible :
-
Vérifiez que votre pare-feu autorise les connexions HTTPS sortantes (port 443) vers
*.auth0.com -
Si vous êtes derrière un proxy d’entreprise, configurez les variables d’environnement
HTTP_PROXYetHTTPS_PROXY
La validation DPoP échoue
La validation DPoP échoue
-
Si vous êtes derrière un proxy inverse, activez la confiance du proxy :
-
Vérifiez que votre proxy transmet ces en-têtes :
X-Forwarded-ProtoX-Forwarded-HostX-Forwarded-Prefix
- Assurez-vous que DPoP est activé pour votre tenant (contactez le soutien Auth0)
-
Vérifiez que le claim
htude la DPoP proof correspond exactement à l’URL de votre requête