Ajouter une connexion avec un compte Microsoft Entra à une application web Spring

Cet article explique comment développer une application web Spring qui prend en charge la connexion par le compte Microsoft Entra. Une fois toutes les étapes de cet article terminées, l’application web redirige vers la page de connexion Microsoft Entra lorsqu’elle est accessible anonymement. La capture d’écran suivante montre la page de connexion Microsoft Entra :

Screenshot of application 'Sign in' dialog.

Prérequis

Pour effectuer les étapes décrites dans cet article, vous devez disposer des éléments suivants :

Important

Spring Boot version 2.5 ou ultérieure est nécessaire pour effectuer les étapes décrites dans cet article.

Créer une application à l’aide de Spring Initialzr

  1. Accédez à https://start.spring.io/.

  2. Spécifiez que vous souhaitez générer un projet Maven avec Java, puis entrez les noms de Groupe et d’Artefact de votre application.

  3. Ajoutez des dépendances pour Spring Web, Microsoft Entra ID et le client OAuth2.

  4. Au bas de la page, sélectionnez le bouton GENERATE (Générer).

    Screenshot of Spring Initializr with basic options.

  5. Lorsque vous y êtes invité, téléchargez le projet dans un emplacement défini par un chemin d’accès sur votre ordinateur local.

Créer une instance Microsoft Entra

Créer l’instance Azure Active Directory

Si vous êtes l’administrateur d’une instance existante, vous pouvez ignorer ce processus.

  1. Connectez-vous à https://portal.azure.com.

  2. Sélectionnez Tous les services, puis Identity, puis Microsoft Entra ID.

  3. Entrez le Nom de l’organisation et votre Nom de domaine initial. Copiez l’URL complète de votre annuaire. Vous utiliserez cette URL pour ajouter des comptes d’utilisateur, plus loin dans ce tutoriel. (Par exemple : azuresampledirectory.onmicrosoft.com.)

    Copiez l’URL complète de votre annuaire. Vous utiliserez cette URL pour ajouter des comptes d’utilisateur, plus loin dans ce tutoriel. (Par exemple : azuresampledirectory.onmicrosoft.com.)

    Quand vous avez terminé, sélectionnez Créer. La création de la ressource prend quelques minutes.

    Screenshot of the Configuration section of the Microsoft Entra ID 'Create a tenant' screen.

  4. Quand vous avez terminé, sélectionnez le lien qui s’affiche pour accéder au nouvel annuaire.

    Screenshot of 'Create a tenant' success message.

  5. Copiez l’ID de locataire. Vous utiliserez cette valeur pour configurer votre fichier application.properties, plus loin dans ce tutoriel.

    Screenshot of Microsoft Entra tenant screen with 'Tenant ID' highlighted.

Ajouter une inscription d’application pour votre application Spring Boot

  1. Dans le menu du portail, sélectionnez Inscriptions des applications, puis Inscrire l’application.

  2. Spécifiez votre application, puis sélectionnez Inscrire.

  3. Lorsque la page pour l’inscription de votre application s’affiche, copiez l’ID de l’application (client) et l’ID de l’annuaire (locataire). Vous utiliserez ces valeurs pour configurer votre fichier application.properties, plus tard dans ce tutoriel.

    Screenshot of application with 'Application (client) ID' and 'Directory (tenant) ID' highlighted.

  4. Dans le menu de navigation de gauche, sélectionnez Certificats et secrets. Ensuite, sélectionnez Nouveau secret client.

    Screenshot of application 'Certificates & secrets' screen with 'New client secret' highlighted.

  5. Ajoutez une description et sélectionnez une durée dans la liste Expire le. Sélectionnez Ajouter. La valeur de la clé est automatiquement renseignée.

  6. Copiez et enregistrez la valeur du secret client pour configurer votre fichier application.properties plus loin dans ce tutoriel. (Il ne vous sera pas possible de récupérer cette valeur plus tard.)

    Screenshot of application with new client secret highlighted.

  7. Dans la page principale de l’inscription de l’application, sélectionnez Authentification, puis Ajouter une plateforme. Ensuite, sélectionnez Applications web.

    Screenshot of application Authentication screen with 'Configure platforms' section showing and Web platform highlighted.

  8. Entrez http://localhost:8080/login/oauth2/code/ comme nouvel URI de redirection, puis sélectionnez Configurer.

    Screenshot of application Authentication screen with 'Configure Web' section showing and 'Redirect URIs' highlighted.

  9. Si vous avez modifié le fichier pom.xml pour utiliser une version de démarrage de Microsoft Entra antérieure à la version 3.0.0 : sous Flux d’octroi implicite et hybride, sélectionnez jetons d’ID (utilisés pour les flux implicites et hybrides), puis sélectionnez Enregistrer.

    Screenshot of application Authentication screen with 'ID tokens' selected.

Ajouter un compte d’utilisateur à votre annuaire et ajouter ce compte à un appRole

  1. Dans la page Vue d’ensemble de votre annuaire Active Directory, sélectionnez Utilisateurs, puis Nouvel utilisateur.

  2. Lorsque le panneau Utilisateur s’affiche, entrez le Nom d’utilisateur et le Nom. Sélectionnez ensuite Créer.

    Screenshot of 'New user' dialog.

    Remarque

    Vous devez spécifier l’URL de votre annuaire que vous avez utilisé préalablement dans ce tutoriel lorsque vous entrez le nom d’utilisateur. Par exemple :

    test-user@azuresampledirectory.onmicrosoft.com

  3. Dans la page principale de l’inscription de l’application, sélectionnez Rôles d’application, puis Créer un rôle d’application. Entrez des valeurs dans les champs du formulaire, sélectionnez Voulez-vous activer ce rôle d’application ?, puis sélectionnez Appliquer.

    Screenshot of application 'App roles' screen with 'Create app role' pane showing.

  4. Dans la page Vue d’ensemble de votre annuaire Microsoft Entra, sélectionnez Applications d’entreprise.

    Screenshot of Microsoft Entra ID 'Enterprise applications' screen.

  5. Sélectionnez Toutes les applications, puis sélectionnez l’application à laquelle vous avez ajouté le rôle d’application à l’étape précédente.

    Screenshot of 'Enterprise applications' screen with 'All applications' list showing.

  6. Sélectionnez Utilisateurs et groupes, puis Ajouter un utilisateur/groupe.

  7. Sous Utilisateurs, sélectionnez Aucun sélectionné. Sélectionnez l’utilisateur que vous avez créé précédemment, sélectionnez Ajouter, puis Attribuer. Si vous avez créé plusieurs rôles d’application, sélectionnez-en un.

    Screenshot of application 'Add Assignment' screen with Users pane showing.

  8. Revenez au panneau Utilisateurs, sélectionnez l’utilisateur test, puis sélectionnez Réinitialiser le mot de passe et copiez le mot de passe. Vous utiliserez ce mot de passe pour vous connecter à votre application plus tard dans ce tutoriel.

    Screenshot of user with 'Temporary password' field highlighted.

Configurer et compiler votre application

  1. Extrayez les fichiers des archives du projet que vous avez créées et téléchargées précédemment dans ce tutoriel dans un répertoire.

  2. Accédez au dossier src/main/resources de votre projet, puis ouvrez le fichier application.properties dans un éditeur de texte.

  3. Spécifiez les paramètres pour l’inscription de votre application en utilisant les valeurs que vous avez définies précédemment. Par exemple :

    # Enable related features.
    spring.cloud.azure.active-directory.enabled=true
    # Specifies your Active Directory ID:
    spring.cloud.azure.active-directory.profile.tenant-id=22222222-2222-2222-2222-222222222222
    # Specifies your App Registration's Application ID:
    spring.cloud.azure.active-directory.credential.client-id=11111111-1111-1111-1111-1111111111111111
    # Specifies your App Registration's secret key:
    spring.cloud.azure.active-directory.credential.client-secret=AbCdEfGhIjKlMnOpQrStUvWxYz==
    

    Où :

    Paramètre Description
    spring.cloud.azure.active-directory.enabled Activer les fonctionnalités fournies par spring-cloud-azure-starter-active-directory
    spring.cloud.azure.active-directory.profile.tenant-id Contient l’ID du répertoire d’Active Directory vu précédemment.
    spring.cloud.azure.active-directory.credential.client-id Contient l’ID de l’application de votre inscription d’application exécutée précédemment.
    spring.cloud.azure.active-directory.credential.client-secret Contient la Valeur de votre clé d’inscription d’application exécutée précédemment.
  4. Enregistrez et fermez le fichier application.properties.

  5. Créez un dossier nommé controller dans le dossier source Java pour votre application. Par exemple : src/main/java/com/wingtiptoys/security/controller.

  6. Créez un fichier Java nommé HelloController.java dans le dossier controller, puis ouvrez-le dans un éditeur de texte.

  7. Entrez le code suivant, puis enregistrez et fermez le fichier :

    package com.wingtiptoys.security;
    
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.ResponseBody;
    import org.springframework.web.bind.annotation.RestController;
    import org.springframework.security.access.prepost.PreAuthorize;
    
    @RestController
    public class HelloController {
         @GetMapping("Admin")
         @ResponseBody
         @PreAuthorize("hasAuthority('APPROLE_Admin')")
         public String Admin() {
             return "Admin message";
         }
    }
    

Générer et tester votre application

  1. Ouvrez une invite de commandes, puis définissez le répertoire sur le dossier hébergeant le fichier pom.xml de votre application.

  2. Générez votre application Spring Boot avec Maven, puis exécutez-la. Par exemple :

    mvn clean package
    mvn spring-boot:run
    

    Screenshot of Maven build output.

  3. Quand vous avez généré et démarré votre application dans Maven, ouvrez http://localhost:8080/Admin dans un navigateur web. Vous êtes normalement invité à entrer un nom d’utilisateur et un mot de passe.

    Screenshot of application 'Sign in' dialog.

    Remarque

    Vous pouvez être invité à modifier votre mot de passe, s’il s’agit de la première connexion à un nouveau compte d’utilisateur.

    Screenshot of application 'Update your password' dialog.

  4. Une fois connecté, vous devez voir le contrôleur afficher l’exemple de texte « Message de l’administrateur ».

    Screenshot of application admin message.

Résumé

Dans ce tutoriel, vous avez créé une application web Java à l’aide du démarrage Microsoft Entra, configuré un nouveau locataire Microsoft Entra, inscrit une nouvelle application dans le locataire, puis configuré votre application pour utiliser les annotations et classes Spring pour protéger l’application web.

Voir aussi

Étapes suivantes

Pour en savoir plus sur Spring et Azure, poursuivez vers le centre de documentation Spring sur Azure.