Prérequis :
- JDK 17+ (télécharger)
- Maven 3.6+ ou Gradle 7+ (Maven | Gradle)
- Un EDI (IntelliJ IDEA, Eclipse ou VS Code recommandés)
Pour commencer
Créer un nouveau projet
Générez un projet Spring Boot avec les dépendances requises.
- À l’aide de Spring Initializr
- Ou créez-en un manuellement avec Maven
Ajoutez le starter Spring Boot d’Okta
Ajoutez la dépendance Okta Spring Boot Starter à votre projet. Elle inclut la prise en charge de la connexion OAuth2 de Spring Security avec une autoconfiguration propre à Auth0/Okta.
- Maven (pom.xml)
- Gradle (build.gradle)
Configurer Auth0
Créez une application Web standard dans 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
- Tableau de bord
Exécutez la commande shell suivante dans le répertoire racine de votre projet pour créer une application Auth0 et mettre à jour votre fichier
application.yml :- Mac/Linux
- Windows (PowerShell)
Configurer l’authentification
Créez une configuration de sécurité qui active la connexion OAuth2 et prend en charge la déconnexion d’Auth0. Les utilisateurs non authentifiés sont automatiquement redirigés vers la page de connexion d’Auth0.
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.
Vous devriez maintenant avoir une application Web Spring Boot entièrement fonctionnelle avec la connexion Auth0, exécutée sur votre localhost. La page d’accueil est publique, et lorsque vous accédez à
/profile, les utilisateurs non authentifiés sont redirigés vers la page de connexion Auth0.Utilisation avancée
Accéder aux claims du profil utilisateur
Accéder aux claims du profil utilisateur
Le paramètre
@AuthenticationPrincipal OidcUser vous donne accès à tous les claims du jeton d’identification. Utilisez getClaims() pour récupérer l’ensemble complet, ou les méthodes d’accès individuelles pour des claims précis.Contrôle d’accès basé sur les rôles
Contrôle d’accès basé sur les rôles
Vous pouvez restreindre l’accès aux pages selon les rôles Auth0. Commencez par ajouter les rôles au jeton d’identification à l’aide d’une action Auth0, puis utilisez
hasAuthority() dans votre configuration de sécurité.Ajouter des rôles aux jetons
- Accédez au tableau de bord Auth0 → Actions → Flows → Login.
- Créez une action personnalisée qui ajoute les rôles comme claim personnalisé au jeton d’identification :
Configurer l’autorisation
Mettez à jour votreSecurityConfig pour exiger des rôles précis sur certains endpoints :Mappage personnalisé des autorités
Mappage personnalisé des autorités
Le Okta Spring Boot Starter 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 utilisateur ou de sources de données externes.Problèmes courants
Échec de la redirection vers la connexion - URL de rappel invalide
Échec de la redirection vers la connexion - URL de rappel invalide
Après avoir cliqué sur Connexion, 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. Par défaut, il s’agit de
http://localhost:3000/login/oauth2/code/okta.- Allez dans le tableau de bord Auth0 → Applications → votre application → Settings.
- Sous Allowed Callback URLs, ajoutez :
http://localhost:3000/login/oauth2/code/okta. - Cliquez sur Save Changes.
Issuer invalide au démarrage
Issuer invalide au démarrage
L’application ne démarre pas ou la connexion échoue en raison d’une non-correspondance de l’issuer.Le
okta.oauth2.issuer doit être l’URL complète du tenant Auth0, y compris https:// et la barre oblique finale /.Échec de la découverte OIDC au démarrage
Échec de la découverte OIDC au démarrage
L’application ne démarre pas et affiche 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 l’URL de votre issuer au démarrage. Vérifiez que l’URL de l’issuer est correcte et accessible depuis votre réseau. Si vous êtes derrière un pare-feu d’entreprise, configurez le proxy :Valeurs de configuration introuvables
Valeurs de configuration introuvables
L’application démarre, mais la connexion échoue parce que les propriétés de configuration ne sont pas lues.Assurez-vous que votre
application.yml utilise la bonne indentation YAML dans l’espace de noms okta.oauth2 :La déconnexion n’efface pas la session Auth0
La déconnexion n’efface pas la session Auth0
Après avoir cliqué sur Déconnexion, 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 point de terminaison Auth0 /v2/logout. Vérifiez également 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 d’Auth0
Documentation officielle d’Auth0 pour les applications Spring Boot
Référence Spring Security
Documentation sur l’authentification OAuth2 avec Spring Security
Référence de configuration
Toutes les propriétés de configuration okta.oauth2.* disponibles
Tableau de bord Auth0
Gérez vos API et applications Auth0
Forum de la communauté
Obtenez de l’aide de la communauté Auth0
Application exemple
Exemple de connexion MVC
Comprend la connexion, la déconnexion et une page de profil avec l’intégration OAuth2 d’Auth0
http://localhost:3000 dans votre navigateur et cliquez sur le lien Connexion pour tester le flux de connexion Auth0.