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 :
Prérequis
Pour effectuer les étapes décrites dans cet article, vous devez disposer des éléments suivants :
- Un kit de développement Java (JDK) pris en charge. Pour plus d’informations sur les JDK disponibles pour le 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 Initialzr
Accédez à https://start.spring.io/.
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.
Ajoutez des dépendances pour Spring Web, Microsoft Entra ID et le client OAuth2.
Au bas de la page, sélectionnez le bouton GENERATE (Générer).
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.
Connectez-vous à https://portal.azure.com.
Sélectionnez Tous les services, puis Identity, puis Microsoft Entra ID.
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.
Quand vous avez terminé, sélectionnez le lien qui s’affiche pour accéder au nouvel annuaire.
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
Dans le menu du portail, sélectionnez Inscriptions des applications, puis Inscrire l’application.
Spécifiez votre application, puis sélectionnez Inscrire.
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.
Dans le menu de navigation de gauche, sélectionnez Certificats et secrets. Ensuite, sélectionnez Nouveau secret client.
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.
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.)
Dans la page principale de l’inscription de l’application, sélectionnez Authentification, puis Ajouter une plateforme. Ensuite, sélectionnez Applications web.
Entrez http://localhost:8080/login/oauth2/code/ comme nouvel URI de redirection, puis sélectionnez Configurer.
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
Dans la page Vue d’ensemble de votre annuaire Active Directory, sélectionnez Utilisateurs, puis Nouvel utilisateur.
Lorsque le panneau Utilisateur s’affiche, entrez le Nom d’utilisateur et le Nom. Sélectionnez ensuite Créer.
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
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.
Dans la page Vue d’ensemble de votre annuaire Microsoft Entra, sélectionnez Applications d’entreprise.
Sélectionnez Toutes les applications, puis sélectionnez l’application à laquelle vous avez ajouté le rôle d’application à l’étape précédente.
Sélectionnez Utilisateurs et groupes, puis Ajouter un utilisateur/groupe.
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.
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
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.
Accédez au dossier src/main/resources de votre projet, puis ouvrez le fichier application.properties dans un éditeur de texte.
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. Enregistrez et fermez le fichier application.properties.
Créez un dossier nommé controller dans le dossier source Java pour votre application. Par exemple : src/main/java/com/wingtiptoys/security/controller.
Créez un fichier Java nommé HelloController.java dans le dossier controller, puis ouvrez-le dans un éditeur de texte.
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
Ouvrez une invite de commandes, puis définissez le répertoire sur le dossier hébergeant le fichier pom.xml de votre application.
Générez votre application Spring Boot avec Maven, puis exécutez-la. Par exemple :
mvn clean package mvn spring-boot:run
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.Remarque
Vous pouvez être invité à modifier votre mot de passe, s’il s’agit de la première connexion à un nouveau compte d’utilisateur.
Une fois connecté, vous devez voir le contrôleur afficher l’exemple de texte « Message de l’administrateur ».
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
- Pour plus d’informations sur les nouvelles options d’interface utilisateur, consultez Nouveau guide de formation sur les inscriptions d’applications dans le portail Azure.
Étapes suivantes
Pour en savoir plus sur Spring et Azure, poursuivez vers le centre de documentation Spring sur Azure.