Ajouter une connexion avec un compte Azure Active Directory à une application web Spring

Cet article vous explique comment développer une application web Spring qui prend en charge la connexion par un compte Azure Active Directory (Azure AD). Une fois toutes les étapes de cet article terminées, l’application web redirige vers la page de connexion Azure AD lorsqu’elle a été consultée de manière anonyme. La capture d’écran suivante montre la page de connexion Azure AD :

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 requis 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, Azure Active Directory et OAuth2 Client.

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

    Capture d’écran de Spring Initializr avec les options de base.

  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 Azure Active Directory

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 Identité et enfin Azure Active Directory.

  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.

    Capture d’écran de la section Configuration de l’écran « Créer un locataire » d’Azure Active Directory.

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

    Capture d’écran du message de réussite « Créer un locataire ».

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

    Capture d’écran de l’écran du locataire Azure Active Directory avec « ID de locataire » mis en évidence.

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.

    Capture d’écran de l’application avec « ID d’application (client) » et « ID de répertoire (locataire) » mis en évidence.

  4. Sélectionnez Certificats & secrets dans le volet de navigation gauche. Ensuite, sélectionnez Nouveau secret client.

    Capture d’écran de l’écran « Secrets de certificats & » de l’application avec « Nouvelle clé secrète client » 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 la nouvelle clé secrète client mise en évidence.

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

    Capture d’écran de l’écran d’authentification de l’application avec la section « Configurer les plateformes » montrant et plateforme web mise en évidence.

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

    Capture d’écran de l’écran d’authentification de l’application avec la section « Configurer le web » montrant et « URI de redirection » mis en évidence.

  9. Si vous avez modifié le fichier pom.xml pour utiliser une version du starter Azure AD 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 sélectionnez Enregistrer.

    Capture d’écran de l’écran d’authentification de l’application avec « jetons d’ID » sélectionnés.

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

    Notes

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

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

    Capture d’écran de l’écran « Applications d’entreprise » d’Azure Active Directory.

  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.

    Capture d’écran de l’écran « Applications d’entreprise » avec la liste « Toutes les applications » montrant.

  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.

    Capture d’écran de l’écran « Ajouter une affectation » de l’application avec le volet Utilisateurs montrant.

  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.

    Capture d’écran de l’utilisateur avec le champ « Mot de passe temporaire » mis en évidence.

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
    

    Capture d’écran de la sortie de la build Maven.

  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 « Connexion » de l’application.

    Notes

    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 » de l’application.

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

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

Résumé

Dans ce tutoriel, vous avez créé une application web Java en utilisant le starter Azure Active Directory, vous avez configuré un nouveau locataire Azure AD et vous avez inscrit une nouvelle application dans ce locataire. Ensuite, vous avez configuré votre application pour qu’elle utilise les annotations et classes Spring afin de 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.