Passer au contenu principal
Auth0 vous permet d’ajouter rapidement une autorisation à votre application. Ce guide explique comment intégrer Auth0 à n’importe quelle application Spring Boot, nouvelle ou ancienne.Si vous n’avez pas encore créé d’API dans votre Auth0 Dashboard, vous pouvez utiliser le sélecteur interactif pour créer une nouvelle API Auth0 ou sélectionner une API existante qui représente le projet avec lequel vous souhaitez vous intégrer.Consultez notre guide de démarrage pour configurer votre première API via Auth0 Dashboard.Chaque API Auth0 utilise l’identificateur API, dont votre application a besoin pour valider le jeton d’accès.
Vous ne connaissez pas Auth0? Découvrez Auth0 et l’implémentation de l’authentification et de l’autorisation d’API en utilisant le cadre d’applications OAuth 2.0.
1

Définir les autorisations

Les autorisations vous permettent de définir comment les ressources peuvent être accessibles au nom de l’utilisateur avec un jeton d’accès donné. Par exemple, vous pouvez choisir d’accorder un accès en lecture à la ressource messages si les utilisateurs ont le niveau d’accès gestionnaire et un accès en écriture à cette ressource s’ils ont le niveau d’accès administrateur.Vous pouvez définir les autorisations autorisées dans la vue Permissions (Autorisations) de la section API d’Auth0 Dashboard.
Auth0 Dashboard> Applications > APIs (API) > [Specific API (API précise)] > Onglet Permissions (Autorisations)
Cet exemple utilise la permission read:messages.
2

Configurer l’exemple de projet

L’exemple de projet utilise un fichier /src/main/resources/application.yml, qui le configure pour utiliser le domaine et l’identificateur API Auth0 corrects pour votre API. Si vous téléchargez le code à partir de cette page, il sera automatiquement configuré. En revanche, si vous clonez l’exemple à partir de GitHub, vous devrez le remplir manuellement.
3

Installer les dépendances

Si vous utilisez Gradle, vous pouvez ajouter les dépendances nécessaires en utilisant le plugiciel Gradle de Spring Boot et le plugiciel de gestion des dépendances pour résoudre les problèmes de versions de dépendances :
// build.gradle
plugins {

    id 'java'

    id 'org.springframework.boot'

    version '3.1.5'

    id 'io.spring.dependency-management'

    version '1.1.3'

}

dependencies {

    implementation 'org.springframework.boot:spring-boot-starter-web'

    implementation 'com.okta.spring:okta-spring-boot-starter:3.0.5'

}
Si vous utilisez Maven, ajoutez les dépendances Spring à votre fichier pom.xml :
// pom.xml
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.1.5</version>
<relativePath/>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.okta.spring</groupId>
<artifactId>okta-spring-boot-starter</artifactId>
<version>3.0.5</version>
</dependency>
</dependencies>
4

Configurer le serveur de ressources

Pour configurer l’application en tant que serveur de ressources et valider les JWT, créez une classe qui fournira une instance SecurityFilterChain et ajoutez l’annotation @Configuration.

Protéger les points de terminaison des API

Les routes ci-dessous sont disponibles pour les demandes suivantes :
  • GET /api/public : disponible pour les demandes non authentifiées
  • GET /api/private : disponible pour les demandes authentifiées contenant un jeton d’accès sans permission supplémentaire
  • GET /api/private-scoped : disponible pour les demandes authentifiées contenant un jeton d’accès dont la permission read:messages est accordée
L’exemple ci-dessous montre comment sécuriser les méthodes de l’API à l’aide de l’objet HttpSecurity fourni dans la méthode filterChain() de la classe SecurityConfig. Les adaptateurs de routes limitent l’accès en fonction du niveau d’autorisation requis.
Par défaut, Spring Security crée une GrantedAuthority pour chaque permission dans la demande scope du JWT. Cette permission permet d’utiliser la méthode hasAuthority("SCOPE\_read:messages") pour restreindre l’accès à un JWT valide qui contient la permission read:messages.
5

Créer l’objet de domaine

Pour que votre point de terminaison renvoie un objet JSON, utilisez un enregistrement Java. Les variables membres de cet objet sont sérialisées dans la valeur clé de votre objet JSON. Créez un nouvel enregistrement appelé Message comme exemple d’objet de domaine à renvoyer lors des appels à l’API.
6

Créer le contrôleur d’API

Créez une nouvelle classe appelée APIController pour gérer les demandes vers les points de terminaison. L’APIController possède trois routes définies dans la section Protéger les points de terminaison des API. Dans cet exemple, toutes les origines sont autorisées par l’annotation @CrossOrigin. Les applications réelles doivent configurer CORS en fonction de leur cas d’utilisation.
7

Exécuter l’application

Pour développer et exécuter le projet exemple, exécutez la tâche Gradle bootRun.Linux ou macOS :./gradlew bootRunWindows :gradlew.bat bootRunSi vous configurez votre propre application en utilisant Maven et le plugiciel Spring Boot Maven Plugin, vous pouvez exécuter l’objectif spring-boot:run.Linux ou macOS :mvn spring-boot:runWindows :mvn.cmd spring-boot:run
Point de contrôle
L’exemple d’application sera accessible à l’adresse http://localhost:3010/. Pour en savoir plus sur la manière de tester et d’utiliser votre API, consultez Utiliser votre API.

Étapes suivantes

Beau travail! Si vous en êtes arrivé là, vous devriez avoir la connexion, la déconnexion et les informations de profil utilisateur actives dans votre application.Cela conclut notre tutoriel de démarrage rapide, mais il y a tellement plus à explorer. Pour en savoir plus sur ce que vous pouvez faire avec Auth0, consultez :
I