Partage via


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 :

Capture d’écran de la boîte de dialogue « Se connecter » de l’application.

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).

  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.

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

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

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.

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

    Capture d’écran de l’écran « Certificats & secrets » de l’application avec « Nouveau secret client » mis en surbrillance.

  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.)

    Capture d’écran de l’application avec une nouvelle clé secrète client mise en surbrillance.

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

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

  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.

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.

    Capture d’écran de la boîte de dialogue « Nouvel utilisateur ».

    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.

    Capture d’écran de l’écran « Rôles d’application » avec le volet « Créer un rôle d’application » montrant.

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

  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.

  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.

  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.

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=<tenant-ID>
    # Specifies your App Registration's Application ID:
    spring.cloud.azure.active-directory.credential.client-id=<client-ID>
    # Specifies your App Registration's secret key:
    spring.cloud.azure.active-directory.credential.client-secret=<client-secret>
    

    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
    
  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.

    Capture d’écran de la boîte de dialogue « Se connecter » de l’application.

    Remarque

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

    Capture d’écran de la boîte de dialogue « Mettre à jour votre mot de passe ».

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

    Capture d’écran du message d’administrateur d’application.

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.