Skip to main content
Prérequis :
  • JDK 17+ (télécharger)
  • Maven 3.6+ ou Gradle 7+ (Maven | Gradle)
  • Un IDE (IntelliJ IDEA, Eclipse ou VS Code recommandés)
Compatibilité des versions de Java : Spring Boot 3.x+ et le Okta Spring Boot Starter 3.x nécessitent Java 17 ou une version ultérieure.

Pour commencer

Ce Quickstart montre comment ajouter la connexion Auth0 à une application Web Spring Boot. Vous créerez une application Web sécurisée avec login, logout et une page de profil protégée à l’aide d’Okta Spring Boot Starter, qui configure automatiquement la prise en charge de OAuth2 login dans Spring Security.
1

Créer un nouveau projet

Créez un projet Spring Boot avec les dépendances requises.
2

Ajouter le module Okta Spring Boot Starter

Ajoutez la dépendance Okta Spring Boot Starter à votre projet. Cette dépendance ajoute la prise en charge de l’authentification OAuth2 de Spring Security avec l’autoconfiguration propre à Auth0/Okta.
3

Configurer Auth0

Créez une Regular Web Application dans votre tenant Auth0 et ajoutez la configuration à votre projet.Vous pouvez choisir de configurer automatiquement votre application Auth0 en exécutant une commande CLI, ou de le faire manuellement par le biais du Dashboard :
Exécutez la commande shell suivante à la racine de votre projet pour créer une application Auth0 et mettre à jour votre fichier src/main/resources/application.yml :
Cette commande :
  1. Vérifie si vous êtes authentifié (et vous invite à vous connecter au besoin)
  2. Crée une Regular Web Application Auth0 configurée pour http://localhost:3000
  3. Génère src/main/resources/application.yml avec okta.oauth2.issuer, okta.oauth2.client-id et okta.oauth2.client-secret
Les utilisateurs de Gradle doivent remplacer --build-tool maven par --build-tool gradle.
4

Configurer l’authentification

Créez une configuration de sécurité qui active la connexion OAuth2 et gère la déconnexion d’Auth0. Les utilisateurs non authentifiés sont automatiquement redirigés vers la page de connexion Auth0.
5

Créer des contrôleurs et des vues

Créez les contrôleurs et les modèles Thymeleaf pour les pages d’accueil et de profil.
6

Exécutez votre application

Lancez l’application à l’aide du wrapper Maven ou Gradle.
Votre application est maintenant accessible à l’adresse http://localhost:3000. Accédez à http://localhost:3000/profile pour lancer le flux de connexion Auth0.
Vous devriez maintenant avoir une application Web Spring Boot entièrement fonctionnelle avec la connexion Auth0 sur votre localhost. La page d’accueil est publique, et si vous accédez à /profile, les utilisateurs non authentifiés sont redirigés vers la page de connexion Auth0.

Utilisation avancée

Le paramètre @AuthenticationPrincipal OidcUser vous donne accès à tous les claims de l’ID token. Utilisez getClaims() pour récupérer l’ensemble complet des claims, ou des méthodes getter individuelles pour des claims précis.
Vous pouvez restreindre l’accès aux pages en fonction des rôles Auth0. Commencez par ajouter les rôles à l’ID token à l’aide d’une Action Auth0, puis utilisez hasAuthority() dans votre configuration de sécurité.

Ajouter des rôles aux jetons

  1. Accédez à Auth0 DashboardActionsFlowsLogin.
  2. Créez une Action personnalisée qui ajoute les rôles sous forme de custom claim à l’ID token :

Configurer l’autorisation

Mettez à jour votre SecurityConfig pour exiger des rôles précis sur les endpoints :
Le starter Okta prend en charge le mappage personnalisé des autorités au moyen de l’interface AuthoritiesProvider. Enregistrez un bean pour ajouter des objets GrantedAuthority personnalisés en fonction des attributs de l’utilisateur ou de sources de données externes.

Problèmes courants

Après avoir sélectionné login, Auth0 affiche une erreur indiquant que l’URL de rappel ne correspond pas.Les Allowed Callback URLs de votre application Auth0 doivent correspondre exactement à l’URL de rappel utilisée par Spring Security. La valeur par défaut est http://localhost:3000/login/oauth2/code/okta.
  1. Accédez à Auth0 DashboardApplications → Votre application → Settings.
  2. Sous Allowed Callback URLs, ajoutez : http://localhost:3000/login/oauth2/code/okta.
  3. Sélectionnez Save Changes.
L’application ne démarre pas, ou login échoue en raison d’une incompatibilité de l’issuer.Le okta.oauth2.issuer doit être l’URL complète du tenant Auth0, y compris https:// et un / à la fin.
L’application ne démarre pas en raison d’une erreur de connexion lors de la récupération de /.well-known/openid-configuration.Le Okta Spring Boot Starter récupère le document de découverte OpenID Connect à partir de votre issuer URL au démarrage. Vérifiez que l’issuer URL est correcte et accessible depuis votre réseau. Si vous êtes derrière un firewall d’entreprise, configurez le proxy :
L’application démarre, mais login échoue parce que les propriétés de configuration ne sont pas lues.Assurez-vous que votre application.yml utilise la bonne indentation YAML sous l’espace de noms okta.oauth2 :
Après avoir sélectionné logout, l’utilisateur est immédiatement reconnecté sans voir la page de connexion Auth0.Assurez-vous que votre SecurityConfig inclut le LogoutHandler personnalisé qui redirige vers le endpoint Auth0 /v2/logout. Vérifiez aussi que les Allowed Logout URLs dans les paramètres de votre application Auth0 incluent http://localhost:3000/.

Ressources supplémentaires

Documentation du SDK

Documentation complète du SDK, code source et notes de version

Documentation Auth0

Documentation officielle d’Auth0 pour les applications Spring Boot

Référence de Spring Security

Documentation sur OAuth2 login de Spring Security

Référence de configuration

Toutes les propriétés de configuration okta.oauth2.* offertes

Auth0 Dashboard

Gérez vos API et vos applications Auth0

Forum de la communauté

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

Application d’exemple

Une application d’exemple complète qui montre le login, l’affichage du profil et le logout avec Auth0 est disponible dans le dépôt d’exemples Auth0.

Exemple MVC de login

Comprend le login, le logout et une page de profil avec l’intégration OAuth2 d’Auth0
Clonez et exécutez :
Ouvrez http://localhost:3000 dans votre navigateur et sélectionnez le lien Login pour tester le processus de connexion avec Auth0.