Partage via


Ajouter la connexion avec le compte Microsoft Entra à une application web Spring

Cet article explique comment développer une application web Spring qui prend en charge la connexion par 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.

Conditions préalables

Les conditions préalables suivantes sont requises pour effectuer les étapes décrites dans cet article :

  • Kit de développement Java (JDK) pris en charge. Pour plus d’informations sur les JDK disponibles lors du développement sur Azure, consultez prise en charge de Java sur Azure et Azure Stack.
  • Apache Maven, version 3.0 ou ultérieure.
  • Un abonnement Azure. Si vous n’avez pas d’abonnement Azure, créez un compte gratuit .

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 Initializr

  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 IDet OAuth2 Client.

  4. En bas de la page, sélectionnez le bouton 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 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, Identity, puis Microsoft Entra ID.

  3. Entrez le nom de votre organisation et le nom de domaine initial . Copiez l’URL complète de votre répertoire. Vous utiliserez l’URL pour ajouter des comptes d’utilisateur plus loin dans ce didacticiel. (Par exemple : azuresampledirectory.onmicrosoft.com.)

    Copiez l’URL complète de votre répertoire. Vous utiliserez l’URL pour ajouter des comptes d’utilisateur plus loin dans ce didacticiel. (Par exemple : azuresampledirectory.onmicrosoft.com.).

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

  4. Lorsque vous avez terminé, sélectionnez le lien affiché pour accéder au nouveau répertoire.

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

Ajouter un enregistrement d'application pour votre application Spring Boot

  1. Dans le menu du portail, sélectionnez enregistrements d’applications, puis Enregistrer une application.

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

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

  4. Dans le menu de navigation, sélectionnez Certificats et secrets. Sélectionnez ensuite nouveau secret client.

    Capture d’écran de l’application « Certificats & secrets » 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 de la clé secrète client pour configurer votre fichier application.properties plus loin dans ce tutoriel. (Vous ne pourrez pas récupérer cette valeur ultérieurement.)

    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 votre 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 à 3.0.0 : sous Octroi implicite et flux hybrides, sélectionnez Jetons d’ID (utilisés pour les flux implicites et hybrides), puis 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 répertoire précédemment dans ce didacticiel lorsque vous entrez le nom d’utilisateur. Par exemple:

    test-user@azuresampledirectory.onmicrosoft.com

  3. Dans la page principale de l’inscription de votre application, sélectionnez rôles d’application, puis sélectionnez Créer un rôle d’application. Fournissez des valeurs pour les champs de 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 » montrant le volet « Créer un rôle d’application ».

  4. À partir de 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 sélectionnez Ajouter unutilisateur/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 précédemment, sélectionnez un rôle.

  8. Revenez au panneau utilisateurs , sélectionnez votre utilisateur de test, puis sélectionnez Réinitialiser le mot de passe. Ensuite, copiez le mot de passe. Vous utiliserez le mot de passe lorsque vous vous connectez à votre application plus loin dans ce tutoriel.

Configurer et compiler votre application

  1. Extrayez les fichiers de l’archive de projet que vous avez créée et téléchargée précédemment dans ce didacticiel dans un répertoire.

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

  3. Spécifiez les paramètres de votre inscription d’application à l’aide des valeurs que vous avez créées 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é contrôleur dans le dossier source Java de votre application. Par exemple : src/main/java/com/wingtiptoys/security/controller.

  6. Créez un fichier Java nommé HelloController.java dans le dossier du contrôleur de et 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 et remplacez le répertoire par le dossier où se trouve le fichier pom.xml de votre application.

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

    mvn clean package
    mvn spring-boot:run
    
  3. Une fois votre application générée et démarrée par Maven, ouvrez http://localhost:8080/Admin dans un navigateur web. Vous devez être 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 d’un nouveau compte d’utilisateur.

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

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

    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, passez au centre de documentation Spring sur Azure.