Déployer des applications Java Spring Boot sur Azure Spring Apps
Cet article explique comment déployer une application Java Spring Boot avec la connexion par le compte Microsoft Entra dans Azure Spring Apps.
Cet article suppose que vous avez effectué l’un des articles suivants en utilisant uniquement l’onglet Exécuter localement et que vous souhaitez maintenant déployer sur Azure. Ces instructions sont les mêmes que celles de l’onglet Déployer sur Azure dans les articles suivants :
- Sécuriser les applications Java Spring Boot à l’aide de l’ID Microsoft Entra
- Sécuriser des applications Java Spring Boot à l’aide d’Azure Active Directory B2C
- Activer les applications Java Spring Boot pour connecter des utilisateurs et accéder à Microsoft Graph
- Sécuriser les applications Java Spring Boot à l’aide de rôles et de revendications de rôle
- Sécuriser des applications Java Spring Boot à l’aide de groupes et de revendications de groupe
Prérequis
Si vous déployez une instance du plan Entreprise Azure Spring Apps pour la première fois dans l’abonnement cible, consultez la section Exigences du Plan Entreprise dans la Place de marché Azure.
Plug-in Maven pour Azure Spring Apps. Si Maven n’est pas votre outil de développement préféré, consultez les didacticiels similaires suivants qui utilisent d’autres outils :
Préparer le projet Spring
Suivez la procédure ci-dessous pour préparer le projet :
Utilisez la commande Maven suivante pour générer le projet :
mvn clean package
Exécutez l’exemple de projet localement à l’aide de la commande suivante :
mvn spring-boot:run
Configurer le plug-in Maven
Exécutez la commande suivante à la racine du projet pour configurer l’application à l’aide du plug-in Maven pour Azure Spring Apps :
mvn com.microsoft.azure:azure-spring-apps-maven-plugin:1.19.0:config
La liste suivante décrit les interactions de commande :
- Connexion OAuth2 : vous devez autoriser la connexion à Azure en fonction du protocole OAuth2.
- Sélectionnez un abonnement : sélectionnez le numéro de liste d’abonnements dans lequel vous souhaitez créer votre instance Azure Spring Apps, qui correspond par défaut au premier abonnement de la liste. Si vous souhaitez utiliser le numéro par défaut, appuyez sur Entrée.
- Entrez le nom d’Azure Spring Apps : entrez le nom de l’instance spring apps que vous souhaitez créer. Si vous souhaitez utiliser le nom par défaut, appuyez sur Entrée.
- Entrez le nom du groupe de ressources : entrez le nom du groupe de ressources dans lequel vous souhaitez créer votre instance spring apps. Si vous souhaitez utiliser le nom par défaut, appuyez sur Entrée.
- Références SKU : sélectionnez la référence SKU que vous souhaitez utiliser pour votre instance spring apps. Si vous souhaitez utiliser le numéro par défaut, appuyez sur Entrée.
- Entrer le nom de l’application : indiquez un nom pour l’application. Si vous souhaitez utiliser l’ID d’artefact de projet par défaut, appuyez sur Entrée.
- Runtimes : sélectionnez le runtime que vous souhaitez utiliser pour votre instance spring apps. Dans ce cas, vous devez utiliser le numéro par défaut. Appuyez donc sur Entrée.
- Exposer l’accès public pour cette application (boot-for-azure) : appuyez sur o.
- Confirmez pour enregistrer toutes les configurations ci-dessus : appuyez sur y (oui). Si vous appuyez sur n, la configuration n’est pas enregistrée dans le fichier .pom .
L’exemple suivant montre la sortie du processus de déploiement :
Summary of properties:
Subscription id : 12345678-1234-1234-1234-123456789101
Resource group name : rg-ms-identity-spring-boot-webapp
Azure Spring Apps name : cluster-ms-identity-spring-boot-webapp
Runtime Java version : Java 11
Region : eastus
Sku : Standard
App name : ms-identity-spring-boot-webapp
Public access : true
Instance count/max replicas : 1
CPU count : 1
Memory size(GB) : 2
Confirm to save all the above configurations (Y/n):
[INFO] Configurations are saved to: /home/user/ms-identity-java-spring-tutorial/1-Authentication/sign-in/pom. xml
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 01:57 min
[INFO] Finished at: 2024-02-14T13:50:44Z
[INFO] ------------------------------------------------------------------------
Une fois que vous avez confirmé vos choix, le plug-in ajoute l’élément de plug-in et les paramètres requis au fichier de pom.xml de votre projet pour configurer votre application à exécuter dans Azure Spring Apps.
La partie pertinente du fichier pom.xml doit ressembler à l’exemple suivant :
<plugin>
<groupId>com.microsoft.azure</groupId>
<artifactId>azure-spring-apps-maven-plugin</artifactId>
<version>1.19.0</version>
<configuration>
<subscriptionId>12345678-1234-1234-1234-123456789101</subscriptionId>
<resourceGroup>rg-ms-identity-spring-boot-webapp</resourceGroup>
<clusterName>cluster-ms-identity-spring-boot-webapp</clusterName>
<region>eastus</region>
<sku>Standard</sku>
<appName>ms-identity-spring-boot-webapp</appName>
<isPublic>true</isPublic>
<deployment>
<cpu>1</cpu>
<memoryInGB>2</memoryInGB>
<instanceCount>1</instanceCount>
<runtimeVersion>Java 11</runtimeVersion>
<resources>
<resource>
<directory>${project.basedir}/target</directory>
<includes>
<include>*.jar</include>
</includes>
</resource>
</resources>
</deployment>
</configuration>
</plugin>
Vous pouvez modifier les configurations d’Azure Spring Apps directement dans votre fichier pom.xml . Certaines configurations courantes sont répertoriées dans le tableau suivant :
Propriété | Obligatoire | Description |
---|---|---|
subscriptionId |
false | L'ID de l'abonnement. |
resourceGroup |
true | Groupe de ressources Azure pour votre instance Azure Spring Apps. |
clusterName |
true | Nom du cluster Azure Spring Apps. Si vous utilisez un abonnement et un groupe de ressources sur utilisant déjà une instance Azure Spring Apps déployée, vous pouvez également utiliser ce cluster existant pour le déployer. |
appName |
true | Nom de votre application dans Azure Spring Apps. |
region |
false | Région dans laquelle héberger votre instance Azure Spring Apps. La valeur par défaut est eastus . Pour les régions valides, consultez Régions prises en charge. |
sku |
false | Niveau tarifaire de votre instance Azure Spring Apps. La valeur par défaut est Basic , qui est adaptée uniquement aux environnements de développement et de test. |
runtime |
false | Configuration de l’environnement d’exécution. Pour plus d’informations, consultez Détails de configuration. |
deployment |
false | Configuration du déploiement. Pour plus d’informations, consultez Détails de configuration. |
Pour obtenir la liste complète des configurations, consultez la documentation de référence sur le plug-in. Tous les plug-ins Azure Maven partagent un ensemble commun de configurations. Pour ces configurations, consultez Configurations courantes. Pour connaître les configurations spécifiques à Azure Spring Apps, consultez Azure Spring Apps : Détails de configuration.
Veillez à enregistrer les valeurs et appName
les clusterName
valeurs pour une utilisation ultérieure.
Préparer l’application pour le déploiement
Lorsque vous déployez votre application sur Azure Spring Apps, votre URL de redirection passe à l’URL de redirection de votre instance d’application déployée dans Azure Spring Apps. Procédez comme suit pour modifier ces paramètres dans votre fichier application.yml :
Accédez au fichier src\main\resources\application.yml de votre application et modifiez la valeur du
post-logout-redirect-uri
nom de domaine de votre application déployée, comme illustré dans l’exemple suivant. Par exemple, si vous avez choisicluster-ms-identity-spring-boot-webapp
votre instance Azure Spring Apps à l’étape précédente etms-identity-spring-boot-webapp
pour le nom de votre application, vous devez maintenant l’utiliserhttps://cluster-ms-identity-spring-boot-webapp-ms-identity-spring-boot-webapp.azuremicroservices.io
pour lapost-logout-redirect-uri
valeur.post-logout-redirect-uri: https://<cluster-name>-<app-name>.azuremicroservices.io
Après avoir enregistré ce fichier, utilisez la commande suivante pour reconstruire votre application :
mvn clean package
Important
Le fichier application.yml de l’application contient actuellement la valeur de votre clé secrète client dans le client-secret
paramètre. Il n’est pas recommandé de conserver cette valeur dans ce fichier. Vous risquez peut-être également de le valider dans un dépôt Git.
En guise d’étape de sécurité supplémentaire, vous pouvez stocker cette valeur dans Azure Key Vault et charger le secret à partir de Key Vault pour le rendre disponible dans votre application.
Mettre à jour votre inscription d’application Microsoft Entra ID
Étant donné que l’URI de redirection change vers votre application déployée sur Azure Spring Apps, vous devez également modifier l’URI de redirection dans l’inscription de votre application Microsoft Entra ID. Pour cela, effectuez les étapes suivantes :
Accédez à la page Inscriptions d’applications de la plateforme d’identités Microsoft pour les développeurs.
Utilisez la zone de recherche pour rechercher l’inscription de votre application , par exemple
java-servlet-webapp-authentication
.Ouvrez votre inscription d’application en sélectionnant son nom.
Sélectionnez Authentification dans le menu déroulant.
Dans la section URI de redirection web - , sélectionnez Ajouter un URI.
Renseignez l’URI de votre application, en ajoutant
/login/oauth2/code/
, par exemplehttps://<cluster-name>-<app-name>.azuremicroservices.io/login/oauth2/code/
.Sélectionnez Enregistrer.
Déployer l’application
Utilisez la commande suivante pour déployer l’application :
mvn azure-spring-apps:deploy
La liste suivante décrit l’interaction de commande :
- Connexion OAuth2 : vous devez autoriser la connexion à Azure en fonction du protocole OAuth2.
Une fois la commande exécutée, les messages de journal suivants indiquent que le déploiement a réussi :
[INFO] Deployment(default) is successfully created
[INFO] Starting Spring App after deploying artifacts...
[INFO] Deployment Status: Running
[INFO] InstanceName:demo-default-x-xxxxxxxxxx-xxxxx Status:Running Reason:null DiscoverStatus:UNREGISTERED
[INFO] InstanceName:demo-default-x-xxxxxxxxx-xxxxx Status:Terminating Reason:null DiscoverStatus:UNREGISTERED
[INFO] Getting public url of app(demo)...
[INFO] Application url: https://<your-Azure-Spring-Apps-instance-name>-demo.azuremicroservices.io
Valider l’application
Une fois le déploiement terminé, accédez à l’application avec l’URL de l’application de sortie. Procédez comme suit pour vérifier les journaux d’activité de l’application afin d’identifier un éventuel problème de déploiement :
Accédez à l’URL de l’application de sortie à partir de la page Sorties de la section Déploiement .
Dans le volet de navigation de la page Vue d’ensemble de l’instance Azure Spring Apps, sélectionnez Journaux d’activité pour vérifier les journaux d’activité de l’application.
Plus d’informations
- Plateforme d'identités Microsoft (ID Microsoft Entra pour les développeurs)
- Présentation de la bibliothèque d’authentification Microsoft (MSAL)
- Démarrage rapide : Inscrire une application à l’aide de la plateforme d’identités Microsoft
- Démarrage rapide : configurer une application cliente pour accéder aux API web.
- Présentation des expériences de consentement de l’application Microsoft Entra ID
- Comprendre le consentement de l’utilisateur et de l’administrateur
- Objets application et principal de service dans Microsoft Entra ID
- Clouds nationaux
- Exemples de code MSAL
- Bibliothèque de client Spring Boot Starter d’ID Microsoft Entra pour Java
- Bibliothèque d’authentification Microsoft pour Java (MSAL4J)
- MSAL4J Wiki
- Jetons d’ID
- Jetons d’accès de la plateforme d’identités Microsoft
Étapes suivantes
Pour plus d’informations et d’autres options de déploiement, consultez les articles suivants :
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour