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. Après avoir terminé toutes les étapes de cet article, 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 page de connexion Microsoft Entra pour l’application web Spring.

Conditions préalables

Pour effectuer les étapes décrites dans cet article, vous avez besoin des conditions préalables suivantes :

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

Importante

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. Entrez les noms de groupe et d’artefact pour votre application.

  3. Ajoutez des dépendances pour le client Spring Web et OAuth2.

  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.

Ajouter la dépendance Microsoft Entra

  1. Extrayez les fichiers projet téléchargés dans un répertoire sur votre ordinateur local.

  2. Ouvrez le fichier pom.xml dans un éditeur de texte.

  3. Ajoutez spring Cloud Azure bill of materials (BOM) à la <dependencyManagement> section.

    <dependencyManagement>
      <dependencies>
        <dependency>
          <groupId>com.azure.spring</groupId>
          <artifactId>spring-cloud-azure-dependencies</artifactId>
          <version>7.4.0</version>
          <type>pom</type>
          <scope>import</scope>
        </dependency>
      </dependencies>
    </dependencyManagement>
    
  4. Ajoutez la dépendance spring Cloud Azure Starter Microsoft Entra à la <dependencies> section.

    <dependency>
      <groupId>com.azure.spring</groupId>
      <artifactId>spring-cloud-azure-starter-active-directory</artifactId>
    </dependency>
    
  5. Enregistrez et fermez le fichier pom.xml.

Créer l’instance Microsoft Entra

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 de locataire. Utilisez 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 pouvez 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 comme nouvel http://localhost:8080/login/oauth2/code/, puis sélectionnez Configurer.

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

Ajouter un compte d’utilisateur et attribuer un rôle d’application Microsoft Entra

  1. Dans la page Vue d’ensemble de votre instance Microsoft Entra ID, 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 pour la création d’un compte d’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 votre inscription d’application, sélectionnez Rôles d’application, puis créez 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 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 Sélectionner, puis sélectionnez Affecter. 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 réinitialisez le mot de passe. Copiez le mot de passe. Vous utilisez 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 de 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 Microsoft Entra ID tenant 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 Descriptif
    spring.cloud.azure.active-directory.enabled Active les fonctionnalités fournies par spring-cloud-azure-starter-active-directory.
    spring.cloud.azure.active-directory.profile.tenant-id Contient l'ID du locataire de votre locataire Microsoft Entra ID d'auparavant.
    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 Maven généré et démarré votre application, ouvrez http://localhost:8080/Admin dans un navigateur web. Vous êtes 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 pour 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 voyez 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.