Ce guide de démarrage rapide est actuellement en bêta. Nous serions ravis d’avoir vos commentaires!
Utiliser l’IA pour intégrer Auth0
Utiliser l’IA pour intégrer Auth0
Si vous utilisez un assistant de programmation IA comme Claude Code, Cursor ou GitHub Copilot, vous pouvez ajouter automatiquement l’authentification Auth0 en quelques minutes à l’aide des agent skills.Installation :Demandez ensuite à votre assistant IA :Votre assistant IA créera automatiquement votre API Auth0, récupérera les informations d’identification, ajoutera la dépendance du SDK Auth0 Spring Boot API, configurera
application.yml et implémentera une SecurityFilterChain avec validation des JWT et points de terminaison protégés. Documentation complète sur les agent skills →Prérequis : Avant de commencer, assurez-vous d’avoir installé ce qui suit :
- JDK 17+ pour assurer la compatibilité avec Spring Boot 3.2+
- Maven 3.6+ ou Gradle 7+ pour la gestion des dépendances
- L’IDE de votre choix (IntelliJ IDEA, Eclipse ou VS Code avec prise en charge de Java)
Pour commencer
Créer un nouveau projet
Créez un nouveau projet d’API Spring Boot pour ce guide de démarrage rapide :Avec Spring Initializr :Ou créez-le manuellement avec Maven :
Ajouter le SDK Auth0
Ajoutez le SDK d’API Auth0 Spring Boot aux dépendances de votre projet :Maven (Gradle (
pom.xml) :build.gradle) :Configurez votre API Auth0
Ensuite, créez une nouvelle API sur votre locataire Auth0 et ajoutez la configuration à votre projet.Vous pouvez effectuer cette opération automatiquement en exécutant une commande CLI ou manuellement via le tableau de bord :
- CLI
- Dashboard
Exécutez la commande shell suivante à la racine de votre projet pour créer une API Auth0 et mettre à jour votre fichier
application.yml :- Mac/Linux
- Windows (PowerShell)
Configurer l’authentification
Créez une classe de configuration de sécurité pour activer l’authentification JWT avec Auth0. Créez
src/main/java/com/example/auth0api/SecurityConfig.java :src/main/java/com/example/auth0api/SecurityConfig.java
Créer des points de terminaison publics et protégés
Créez des points de terminaison d’API pour tester l’authentification. Créez
src/main/java/com/example/auth0api/ApiController.java :src/main/java/com/example/auth0api/ApiController.java
VérificationVous devriez maintenant avoir une API protégée par Auth0 pleinement fonctionnelle à l’adresse localhost
Utilisation avancée
Appel d’API protégées
Appel d’API protégées
Testez vos points de terminaison protégés avec un jeton d’accès.1. Obtenez un jeton d’accès auprès d’Auth0 à l’aide du flux Client Credentials :2. Testez le point de terminaison public (devrait renvoyer 200 OK) :3. Testez le point de terminaison protégé sans authentification (devrait renvoyer 401 Unauthorized) :4. Appelez le point de terminaison protégé avec le jeton :
Pour obtenir
YOUR_CLIENT_ID et YOUR_CLIENT_SECRET, créez une
application Machine to Machine dans le Auth0 Dashboard
et autorisez-la à accéder à votre API.Accès aux claims JWT
Accès aux claims JWT
Accédez à des informations supplémentaires sur l’utilisateur et aux claims du jeton dans vos points de terminaison.
Autorisation basée sur les scopes
Autorisation basée sur les scopes
Implémentez un contrôle d’accès granulaire à l’aide des scopes JWT pour renforcer la sécurité.1. Définissez des scopes dans votre API Auth0 :Dans le Auth0 Dashboard → APIs → Your API → Permissions, ajoutez des scopes :Lorsque vous demandez un jeton d’accès, incluez le scope requis :
read:users- Lire les données des utilisateurswrite:users- Écrire des données d’utilisateuradmin- Accès administratif
Sécurité renforcée DPoP
Sécurité renforcée DPoP
Activez DPoP (Demonstration of preuve de possession) afin de renforcer la sécurité des jetons en liant les jetons d’accès à des clés cryptographiques.Configurez la prise en charge de DPoP dans application.yml :Modes DPoP :
-
ALLOWED(par défaut) : accepte à la fois les jetons Bearer et DPoP -
REQUIRED: accepte uniquement les jetons DPoP et rejette les jetons Bearer -
DISABLED: validation JWT Bearer standard uniquementPour en savoir plus sur DPoP, consultez la documentation Auth0 sur DPoP.
Problèmes courants
401 Non autorisé - audience invalide
401 Non autorisé - audience invalide
Problème : L’API renvoie une erreur 401 même avec des jetons valides.Solution : Assurez-vous que
auth0.audience correspond exactement à l’identifiant de votre API Auth0. La revendication audience du jeton doit correspondre à cette valeur.401 Non autorisé - émetteur invalide
401 Non autorisé - émetteur invalide
Problème : La validation de l’émetteur du jeton échoue.Solution : Vérifiez que votre Domaine est correct et n’inclut pas
https://. Utilisez le domaine sans le préfixe https://.Valeurs de configuration introuvables
Valeurs de configuration introuvables
Problème : L’application ne démarre pas en raison d’erreurs de configuration.Solution : Vérifiez la structure de
application.yml et les noms des propriétés. Assurez-vous que la section auth0 contient les valeurs de Domaine et d’Audience.Problèmes d’ordre des filtres
Problèmes d’ordre des filtres
Problème : L’authentification ne fonctionne pas malgré une configuration correcte.Solution : Assurez-vous que Auth0AuthenticationFilter est correctement intégré à la chaîne Spring Security. Le filtre doit être ajouté avant UsernamePasswordAuthenticationFilter.
Problèmes de connectivité réseau
Problèmes de connectivité réseau
Problème : Échec de récupération des JWKS ou délai d’expiration de connexion.Solution : Il se peut que le pare-feu de l’entreprise bloque les points de terminaison Auth0. Autorisez les domaines Auth0 pour l’accès HTTPS :
Les scopes ne fonctionnent pas dans les politiques d’autorisation
Les scopes ne fonctionnent pas dans les politiques d’autorisation
Problème : Les politiques d’autorisation basées sur les scopes échouent systématiquement.Solution : Assurez-vous que votre jeton d’accès inclut les scopes requis. Lorsque vous demandez un jeton, précisez les scopes :Vérifiez également que les scopes sont définis dans les paramètres de votre API Auth0 (Dashboard → APIs → Your API → Permissions).
Ressources supplémentaires
Documentation du SDK
Documentation complète du SDK et référence de l’API
Exemples de code
Exemples de code complets et modèles d’intégration
Documentation sur DPoP
Découvrez le renforcement de la sécurité par preuve de possession
Référence Spring Security
Documentation officielle de Spring Security
Auth0 Dashboard
Gérez vos API et applications Auth0
Forum communautaire
Obtenez de l’aide auprès de la communauté Auth0
Application exemple
Application de démonstration
Comprend des points de terminaison publics et protégés, la prise en charge de DPoP et des
exemples complets