Skip to main content

Utiliser l’IA pour intégrer Auth0

Si vous utilisez un assistant de codage IA comme Claude Code, Cursor ou GitHub Copilot, vous pouvez ajouter l’authentification Auth0 automatiquement en quelques minutes à l’aide d’Agent Skills.Installation :
Ensuite, demandez à votre assistant IA :
Votre assistant IA créera automatiquement votre application Auth0, récupérera les identifiants, ajoutera la dépendance du SDK Auth0 Java MVC Commons, configurera l’authentification avec l’API de sécurité Java EE 8 et mettra en œuvre les flux de connexion et de logout. Documentation complète sur Agent Skills →
Prérequis :

Pour commencer

Auth0 vous permet d’ajouter rapidement l’authentification et d’accéder aux renseignements du profil utilisateur dans votre application. Ce guide explique comment intégrer Auth0 à toute application Java EE, nouvelle ou existante, à l’aide du SDK auth0-java-mvc-common et de l’API de sécurité Java EE 8.
1

Créer un nouveau projet

Créez un nouveau projet Maven WAR :
Accédez au dossier du projet :
Créez les répertoires sources Java :
2

Installer le SDK Auth0

Remplacez le contenu de votre pom.xml par le suivant :
pom.xml
Les dépendances javaee-api et javax.security.enterprise-api sont provided, parce que le serveur d’applications Java EE 8 fournit leurs implémentations à l’exécution.
3

Configurez votre application Auth0

  1. Accédez au Auth0 Dashboard et allez à Applications > Applications > Create Application.
  2. Entrez un nom pour votre application (p. ex., “My Java EE App”).
  3. Sélectionnez Regular Web Applications comme type d’application.
  4. Choisissez Create.
  5. Ouvrez l’onglet Settings.
  6. Prenez en note les valeurs Domain, Client ID et Client Secret.
  7. Faites défiler la page jusqu’à Application URIs et définissez :
    • Allowed Callback URLs : http://localhost:8080/callback
    • Allowed Logout URLs : http://localhost:8080/
  8. Choisissez Save Changes.
Assurez-vous de configurer des connexions pour votre application afin que les utilisateurs puissent se connecter avec le fournisseur d’identité de leur choix.
4

Configurer l’authentification

Mettez à jour votre web.xml pour stocker la configuration Auth0 en tant qu’entrées d’environnement JNDI. Remplacez les valeurs de l’espace réservé par le Domain, le Client ID et le Client Secret provenant des Application Settings de votre Auth0 Application. Créez un fichier jboss-web.xml pour configurer le domaine de sécurité JASPIC requis par la Java EE 8 Security API, un bean CDI Auth0AuthenticationConfig.java pour lire la configuration depuis JNDI, et un producteur CDI Auth0AuthenticationProvider.java pour construire l’AuthenticationController.
N’incluez pas https:// dans la valeur auth0.domain. Utilisez uniquement le domaine et la région. Par exemple : dev-abc123.us.auth0.com.
5

Implement la sécurité Java EE

La Java EE 8 Security API utilise HttpAuthenticationMechanism pour gérer l’authentification. Vous devez fournir des mises en œuvre personnalisées de plusieurs interfaces de sécurité. L’annotation @AutoApplySession permet au conteneur de créer une session pour l’utilisateur authentifié afin qu’il reste connecté d’une requête à l’autre.
6

Ajouter des fonctionnalités de connexion et de déconnexion

Créez les servlets pour la connexion, le callback et la déconnexion. Le LoginServlet génère l’URL d’autorisation d’Auth0 et redirige l’utilisateur. Le CallbackServlet gère la redirection après l’authentification — Auth0AuthenticationMechanism intercepte d’abord cette requête pour échanger le code d’autorisation contre des jetons, donc le servlet n’a ensuite qu’à rediriger. Le LogoutServlet invalide la session et redirige vers le point de terminaison de déconnexion d’Auth0.
7

Créer l’interface utilisateur

Créez les servlets et les pages JSP pour les vues d’accueil et de profil. Le HomeServlet vérifie la présence d’un principal authentifié et définit les claims du profil dans la requête. Le ProfileServlet affiche le profil de l’utilisateur et les claims JWT, ou redirige vers la connexion si l’utilisateur n’est pas authentifié.
8

Lancez votre application

Compilez et exécutez l’application à l’aide du plugin Maven de WildFly :
Votre application devrait démarrer et afficher l’URL d’écoute :
Ouvrez http://localhost:8080 dans votre navigateur. Cliquez sur le lien Login dans la barre de navigation. Vous serez redirigé vers la page de connexion Auth0. Après vous être authentifié, vous serez redirigé vers la page de profil, où vos informations utilisateur et vos claims JWT sont affichés.
L’exemple utilise JSP et a été testé avec le serveur d’application WildFly. Vous devrez peut-être ajuster certaines étapes si vous utilisez un autre conteneur compatible avec Java EE 8.
CheckpointVous devriez maintenant avoir une application Java EE protégée par Auth0, entièrement fonctionnelle, en cours d’exécution sur http://localhost:8080. Les utilisateurs peuvent se connecter, consulter leur profil et se déconnecter.

Utilisation avancée

Auth0JwtPrincipal est accessible par request.getUserPrincipal() dans n’importe quel servlet. Le ProfileServlet montre comment accéder aux claims décodés du ID token :
Claims courants disponibles dans le ID token :
  • name — nom d’affichage complet de l’utilisateur
  • email — adresse courriel de l’utilisateur
  • picture — URL de la photo de profil de l’utilisateur
  • sub — identificateur unique de l’utilisateur (ID utilisateur Auth0)
Ajoutez des paramètres personnalisés à l’URL d’autorisation lors de sa création dans votre LoginServlet :
src/main/java/com/auth0/example/web/LoginServlet.java
Utilisez .withAudience() pour demander un jeton d’accès pour une API précise. Utilisez .withParameter() pour ajouter tout paramètre d’autorisation supplémentaire pris en charge par Auth0.
Pour accéder aux jetons bruts pour les appels d’API, modifiez Auth0AuthenticationMechanism afin de stocker les jetons dans la session :
src/main/java/com/auth0/example/security/Auth0AuthenticationMechanism.java
Récupérez ensuite le jeton d’accès lors d’un appel à une API protégée :
Configurez le AuthenticationController avec un ID ou un nom d’organisation afin de limiter la connexion à une Auth0 Organization précise :
src/main/java/com/auth0/example/security/Auth0AuthenticationProvider.java
Le SDK valide automatiquement le claim org_id ou org_name dans le ID token pour s’assurer qu’il correspond à l’organisation configurée.

Ressources supplémentaires

SDK Java MVC Auth0

Code source et suivi des problèmes

Référence de l’API (JavaDoc)

Documentation détaillée de l’API

Forum de la communauté

Obtenez de l’aide auprès de la communauté Auth0

Exemple d’application Java EE

Exemple d’application complet sur GitHub

Problèmes courants

Si vous recevez une erreur a0.invalid_state après la connexion, le cookie de state est introuvable ou ne correspond pas au state renvoyé par Auth0.Vérifiez que :
  • Votre URL de callback dans le Auth0 Dashboard correspond exactement à l’URL générée par votre application, y compris le numéro de port et le protocole.
  • Votre navigateur ne bloque pas les cookies tiers.
  • Aucun reverse proxy ni middleware ne supprime les en-têtes Set-Cookie des réponses.
Assurez-vous d’utiliser la version à trois arguments de buildAuthorizeUrl et de handle, qui utilise un stockage du state basé sur les cookies :
Si vous voyez des erreurs liées à des échecs d’injection ou à des beans introuvables, assurez-vous que :
  • Votre serveur d’applications prend en charge CDI 2.0 (qui fait partie de Java EE 8)
  • Toutes les classes de sécurité (Auth0AuthenticationConfig, Auth0AuthenticationProvider, Auth0JwtIdentityStore, Auth0AuthenticationMechanism) sont annotées avec @ApplicationScoped
  • src/main/webapp/WEB-INF/jboss-web.xml existe et que le domaine de sécurité jaspitest y est configuré
src/main/webapp/WEB-INF/jboss-web.xml
Le domaine de sécurité jaspitest est requis pour que WildFly active l’intégration JASPIC (Java Authentication SPI for Containers), dont dépend l’API de sécurité Java EE 8.
Ce Quickstart utilise l’espace de noms javax (Java EE 8). Si vous utilisez un serveur ayant migré vers l’espace de noms jakarta (Jakarta EE 9+), comme WildFly 27+ ou Payara 6+, le code ne pourra ni être compilé ni s’exécuter.Utilisez un serveur compatible avec Java EE 8 :
  • WildFly 14 à 26
  • Payara 5
  • GlassFish 5
  • Open Liberty avec les fonctionnalités Java EE 8

Exemple d’application

Un exemple d’application Java EE intégrée à Auth0 est offert sur GitHub :

Exemple d’application Java EE

Comprend des exemples de login, de logout, de profil utilisateur et plus encore.
Clonez et exécutez :
Mettez à jour les paramètres de configuration d’Auth0 dans src/main/webapp/WEB-INF/web.xml, puis exécutez :
Accédez à http://localhost:8080 dans votre navigateur et cliquez sur Login pour tester.