Partager via


Déployer des applications Java JBoss EAP sur Azure App Service

Cet article explique comment déployer une application JBoss EAP avec la connexion par le compte Microsoft Entra sur Azure App Service.

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 :

Conditions préalables

Configurer le plug-in Maven

Le processus de déploiement vers Azure App Service utilise automatiquement vos informations d’identification Azure à partir d’Azure CLI. Si Azure CLI n’est pas installé localement, le plug-in Maven s’authentifie auprès d’OAuth ou de la connexion de l’appareil. Pour plus d’informations, consultez Authentification avec les plug-ins Maven.

Pour configurer le plug-in, procédez comme suit :

  1. Exécutez la commande Maven indiquée ci-dessous pour configurer le déploiement. Cette commande vous aide à configurer le système d’exploitation App Service, la version Java et la version de Tomcat.

    mvn com.microsoft.azure:azure-webapp-maven-plugin:2.12.0:config
    
  2. Pour Créer une nouvelle configuration d’exécution, appuyez sur Y, puis sur Entrée.

  3. Pour Définir la valeur du système d’exploitation, appuyez sur 2 pour Linux, puis sur Entrée.

  4. Pour Définir la valeur pour javaVersion, appuyez sur 2 pour Java 11, puis appuyez sur Entrée.

  5. Pour Définir la valeur de webContainer, appuyez sur 1 pour JBosseap7, puis sur Entrée.

  6. Pour Définir la valeur de pricingTier, appuyez sur Entrée pour sélectionner le niveau P1v3 par défaut.

  7. Pour Confirmer, appuyez sur Y, puis sur Entrée.

L’exemple suivant montre la sortie du processus de déploiement :

Please confirm webapp properties
AppName : msal4j-servlet-auth-1707220080695
ResourceGroup : msal4j-servlet-auth-1707220080695-rg
Region : centralus
PricingTier : P1v3
OS : Linux
Java Version: Java 11
Web server stack: JBosseap 7
Deploy to slot : false
Confirm (Y/N) [Y]:
[INFO] Saving configuration to pom.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  26.196 s
[INFO] Finished at: 2024-02-06T11:48:16Z
[INFO] ------------------------------------------------------------------------

Une fois que vous avez confirmé vos choix, le plug-in ajoute la configuration du plug-in et les paramètres requis au fichier pom.xml de votre projet pour configurer votre application à exécuter dans Azure App Service.

La partie pertinente du fichier pom.xml doit ressembler à l’exemple suivant :

<build>
    <plugins>
        <plugin>
            <groupId>com.microsoft.azure</groupId>
            <artifactId>>azure-webapp-maven-plugin</artifactId>
            <version>x.xx.x</version>
            <configuration>
                <schemaVersion>v2</schemaVersion>
                <resourceGroup>your-resourcegroup-name</resourceGroup>
                <appName>your-app-name</appName>
            ...
            </configuration>
        </plugin>
    </plugins>
</build>

Vous pouvez modifier les configurations d’App Service directement dans votre pom.xml. Certaines configurations courantes sont répertoriées dans le tableau suivant :

Propriété Obligatoire Description Version
schemaVersion faux Version du schéma de configuration. Les valeurs prises en charge sont v1 et v2. 1.5.2
subscriptionId faux ID d’abonnement. 0.1.0+
resourceGroup vrai Groupe de ressources Azure pour votre application. 0.1.0+
appName vrai Nom de votre application. 0.1.0+
region faux Région dans laquelle héberger votre application. La valeur par défaut est centralus. Pour connaître les régions valides, consultez régions prises en charge. 0.1.0+
pricingTier faux Niveau tarifaire de votre application. La valeur par défaut est P1v2 pour une charge de travail de production. La valeur minimale recommandée pour le développement et le test Java est B2. Pour en savoir plus, consultez Tarification d’App Service 0.1.0+
runtime faux Configuration de l’environnement d’exécution. Pour plus d’informations, consultez Détails de configuration. 0.1.0+
deployment faux Configuration du déploiement. Pour plus d’informations, consultez Détails de configuration. 0.1.0+

Pour obtenir la liste complète des configurations, consultez la documentation de référence du 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 App Service, consultez application Azure : Détails de configuration.

Veillez à enregistrer les valeurs appName et resourceGroup pour une utilisation ultérieure.

Préparer l’application pour le déploiement

Lorsque vous déployez votre application sur App Service, votre URL de redirection passe à l’URL de redirection de votre instance d’application déployée. Pour modifier ces paramètres dans votre fichier de propriétés, procédez comme suit :

  1. Accédez au fichier authentication. properties de votre application et remplacez la valeur de par le nom de domaine de votre application déployée, comme illustré dans l’exemple suivant. Par exemple, si vous avez choisi example-domain pour le nom de votre application à l’étape précédente, vous devez maintenant utiliser https://example-domain.azurewebsites.net pour la valeur de app.homePage. Assurez-vous que vous avez également modifié le protocole de http en https.

    # app.homePage is by default set to dev server address and app context path on the server
    # for apps deployed to azure, use https://your-sub-domain.azurewebsites.net
    app.homePage=https://<your-app-name>.azurewebsites.net
    
  2. Après avoir enregistré ce fichier, utilisez la commande suivante pour reconstruire votre application :

    mvn clean package
    

Mettre à jour votre inscription d’application Microsoft Entra ID

Étant donné que l’URI de redirection change vers votre application déployée dans Azure App Service, vous devez également modifier l’URI de redirection dans l’inscription de votre application Microsoft Entra ID. Pour apporter cette modification, procédez comme suit :

  1. Accédez à la page Inscriptions des applications de la plateforme d’identité Microsoft pour les développeurs.

  2. Utilisez la zone de recherche pour rechercher l’inscription de votre application , par exemple, java-servlet-webapp-authentication.

  3. Ouvrez l'enregistrement de votre application en sélectionnant son nom.

  4. Dans le menu, sélectionnez Authentification.

  5. Dans la section Web - Redirection des URI, sélectionnez Ajouter un URI.

  6. Renseignez l’URI de votre application, en ajoutant /auth/redirect , par exemple, https://<your-app-name>.azurewebsites.net/auth/redirect.

  7. Sélectionnez Enregistrer.

Déployer l’application

Vous êtes maintenant prêt à déployer votre application sur Azure App Service. Utilisez la commande suivante pour vous assurer que vous êtes connecté à votre environnement Azure pour exécuter le déploiement :

az login

Avec toutes les configurations prêtes dans votre fichier pom.xml, vous pouvez maintenant utiliser la commande suivante pour déployer votre application Java sur Azure :

mvn package azure-webapp:deploy

Une fois le déploiement terminé, votre application est prête à http://<your-app-name>.azurewebsites.net/. Ouvrez l’URL avec votre navigateur web local, où vous devez voir la page de démarrage de l’application msal4j-servlet-auth.

Supprimer des valeurs secrètes

Le fichier authentication.properties de l’application contient actuellement la valeur de votre clé secrète client dans le paramètre aad.secret. Il n’est pas recommandé de conserver cette valeur dans ce fichier. Vous pourriez également prendre un risque en le commettant dans un dépôt Git.

En guise d’étape supplémentaire de sécurité, vous pouvez stocker cette valeur dans Azure Key Vault et utiliser références Key Vault pour la rendre disponible dans votre application.

Procédez comme suit pour déplacer la valeur de aad.secret vers Key Vault et l’utiliser dans votre code :

  1. Utilisez les commandes suivantes pour créer une instance Azure Key Vault :

    export RESOURCE_GROUP=<your-resource-group-name>
    export KEY_VAULT=<your-key-vault-name>
    az keyvault create \
        --resource-group $RESOURCE_GROUP \
        --name $KEY_VAULT
    
  2. Utilisez les commandes suivantes pour ajouter la valeur secrète aad.secret à votre coffre-fort de clés en tant que nouveau secret :

    az keyvault secret set \
        --vault-name $KEY_VAULT \
        --name "AADSECRET" \
        --value "<the-value-of-your-client-secret>"
    
  3. Vous devez maintenant accorder à votre application l’accès à votre coffre de clés. Pour effectuer cette tâche, commencez par créer une identité pour votre application à l’aide des commandes suivantes :

    export WEB_APP_NAME=<your-web-app-name>
    az webapp identity assign \
        --resource-group $RESOURCE_GROUP \
        --name $WEB_APP_NAME
    
  4. Utilisez les commandes suivantes pour donner à cette identité get et list la permission sur les secrets de votre Key Vault :

    export IDENTITY=$(az webapp identity show \
        --resource-group $RESOURCE_GROUP \
        --name $WEB_APP_NAME \
        --query principalId \
        --output tsv)
    az keyvault set-policy \
        --resource-group $RESOURCE_GROUP \
        --name $KEY_VAULT \
        --secret-permissions get list \
        --object-id $IDENTITY
    
  5. Utilisez la commande suivante pour créer un paramètre d'application dans votre application qui utilise une référence de coffre-fort de clés au secret dans votre coffre-fort de clés. Ce paramètre rend la valeur du secret disponible pour votre application en tant que variable d’environnement.

    az webapp config appsettings set \
        --resource-group $RESOURCE_GROUP \
        --name $WEB_APP_NAME \
        --settings AADSECRET='@Microsoft.KeyVault(VaultName=$KEY_VAULT;SecretName=AADSECRET)'
    
  6. Utilisez le code suivant pour charger cette valeur à partir des variables d’environnement. Dans le fichier \src\main\java\com\microsoft\azuresamples\msal4j\helpers\Config.java, à la ligne 41, remplacez l’instruction actuelle par la ligne suivante :

    public static final String SECRET = System.getenv("AADSECRET");
    
  7. Vous pouvez maintenant supprimer la clé et la valeur aad.secret du fichier authentication.properties.

  8. Régénérez le code à l’aide de la commande suivante :

    mvn clean package
    
  9. Redéployez l’application à l’aide de la commande suivante :

    mvn package azure-webapp:deploy
    

Votre déploiement est maintenant terminé.

Plus d’informations