Sdílet prostřednictvím


Nasazení aplikací EAP Java JBoss do Azure App Service

V tomto článku se dozvíte, jak nasadit aplikaci JBoss EAP s přihlášením pomocí účtu Microsoft Entra do služby Azure App Service.

Tento článek předpokládá, že jste dokončili jeden z následujících článků jenom pomocí karty Spustit místně a teď chcete nasadit aplikaci na Azure. Tyto pokyny jsou stejné jako pokyny na kartě Nasazení do Azure v těchto článcích:

Požadavky

Konfigurace modulu plug-in Maven

Proces nasazení do služby Aplikace Azure Service používá vaše přihlašovací údaje Azure z Azure CLI automaticky. Pokud se Azure CLI nenainstaluje místně, pak se modul plug-in Maven ověří pomocí OAuth nebo přihlášení zařízení. Další informace naleznete v části ověřování pomocí pluginů Maven.

Ke konfiguraci modulu plug-in použijte následující postup:

  1. Spuštěním příkazu Maven zobrazeného vedle konfigurace nasazení Tento příkaz vám pomůže nastavit operační systém služby App Service, verzi Javy a verzi Tomcat.

    mvn com.microsoft.azure:azure-webapp-maven-plugin:2.12.0:config
    
  2. Pro Vytvořit novou konfiguraci spuštění, stiskněte Ya stiskněte Enter.

  3. Pro definování hodnoty pro operační systém stiskněte 2 pro Linux a pak stiskněte Enter.

  4. Pro Definujte hodnotu pro javaVersion, stiskněte 2 pro Javu 11 a poté stiskněte klávesu Enter.

  5. Pro define value for webContainer, press 1 for JBosseap7, then press Enter.

  6. Pokud chcete definovat hodnotu pro pricingTier, stiskněte Enter a vyberte výchozí úroveň P1v3 .

  7. Pro Potvrďte, stiskněte Ya pak stiskněte Enter.

Následující příklad ukazuje výstup procesu nasazení:

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] ------------------------------------------------------------------------

Jakmile potvrdíte volby, modul plug-in přidá konfiguraci modulu plug-in a požadované nastavení do souboru pom.xml projektu a nakonfiguruje aplikaci tak, aby běžela ve službě Aplikace Azure Service.

Relevantní část souboru pom.xml by měla vypadat podobně jako v následujícím příkladu:

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

Konfigurace služby App Service můžete upravit přímo v pom.xml. Některé běžné konfigurace jsou uvedeny v následující tabulce:

Vlastnictví Povinné Popis Verze
schemaVersion Nepravda Verze schématu konfigurace. Podporované hodnoty jsou v1 a v2. 1.5.2
subscriptionId Nepravda ID předplatného. 0.1.0+
resourceGroup pravda Skupina prostředků Azure pro vaši aplikaci. 0.1.0+
appName pravda Název aplikace. 0.1.0+
region Nepravda Oblast, ve které se má aplikace hostovat. Výchozí hodnota je centralus. Pro platné regiony se podívejte na podporované regiony. 0.1.0+
pricingTier Nepravda Cenová úroveň vaší aplikace. Výchozí hodnota je P1v2 pro produkční úlohu. Doporučená minimální hodnota pro vývoj a testování v Javě je B2. Další informace najdete v tématu Ceny služby App Service. 0.1.0+
runtime Nepravda Konfigurace prostředí runtime. Další informace naleznete v tématu konfigurační detaily. 0.1.0+
deployment Nepravda Konfigurace nasazení. Další informace naleznete v tématu konfigurační detaily. 0.1.0+

Úplný seznam konfigurací najdete v referenční dokumentaci k modulu plug-in. Všechny moduly plug-in Azure Maven sdílejí společnou sadu konfigurací. Informace o těchto konfiguracích najdete v Běžných Konfiguracích . Informace o konfiguracích specifických pro Azure App Service najdete v tématu aplikace Azure: Podrobnosti o konfiguraci.

Nezapomeňte uložit appName a resourceGroup hodnoty pro pozdější použití.

Příprava aplikace na nasazení

Když nasadíte aplikaci do služby App Service, adresa URL pro přesměrování se změní na adresu URL pro přesměrování vaší nasazené instance aplikace. Pomocí následujícího postupu změňte tato nastavení v souboru vlastností:

  1. Přejděte do souboru authentication.properties vaší aplikace a změňte hodnotu app.homePage na název domény nasazené aplikace, jak je znázorněno v následujícím příkladu. Pokud jste například v předchozím kroku zvolili example-domain pro název aplikace, musíte pro hodnotu https://example-domain.azurewebsites.net použít app.homePage. Ujistěte se, že jste také změnili protokol z http na 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. Po uložení tohoto souboru pomocí následujícího příkazu znovu sestavte aplikaci:

    mvn clean package
    

Aktualizace registrace aplikace Microsoft Entra ID

Protože se identifikátor URI přesměrování změní kvůli nasazení vaší aplikace do služby Azure App Service, je také nutné změnit identifikátor URI přesměrování v registraci aplikace v systému Microsoft Entra ID. K provedení této změny použijte následující postup:

  1. Přejděte na platformu Microsoft identity pro vývojáře, na stránku registrace aplikací .

  2. Pomocí vyhledávacího pole vyhledejte registraci aplikace , například java-servlet-webapp-authentication.

  3. Výběrem jejího názvu otevřete registraci aplikace.

  4. Zvolte Ověřování z nabídky.

  5. V části přesměrovací URI - vyberte Přidat URI.

  6. Vyplňte identifikátor URI aplikace a připojte /auth/redirect – například https://<your-app-name>.azurewebsites.net/auth/redirect.

  7. Vyberte Uložit.

Nasazení aplikace

Teď jste připraveni nasadit aplikaci do služby Azure App Service. Pomocí následujícího příkazu se ujistěte, že jste přihlášení ke svému prostředí Azure a spusťte nasazení:

az login

S veškerou konfigurací připravenou v souboru pom.xml teď můžete pomocí následujícího příkazu nasadit aplikaci v Javě do Azure:

mvn package azure-webapp:deploy

Po dokončení nasazení je vaše aplikace připravená k použití na http://<your-app-name>.azurewebsites.net/. Otevřete adresu URL v místním webovém prohlížeči, kde byste měli vidět úvodní stránku msal4j-servlet-auth aplikace.

Odstraňte tajné hodnoty

Soubor authentication.properties aplikace aktuálně obsahuje hodnotu tajného klíče klienta v parametru aad.secret. Tuto hodnotu v tomto souboru není vhodné zachovat. Možná také riskujete, když ho nahrajete do úložiště Git.

Jako další krok zabezpečení můžete tuto hodnotu uložit ve službě azure Key Vault a pomocí reference ke službě Key Vault ji zpřístupnit ve vaší aplikaci.

Pomocí následujících kroků přesuňte hodnotu aad.secret do služby Key Vault a použijte ji ve svém kódu:

  1. K vytvoření instance služby Azure Key Vault použijte následující příkazy:

    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. Pomocí následujících příkazů přidejte hodnotu tajného kódu aad.secret do trezoru klíčů jako nový tajný klíč:

    az keyvault secret set \
        --vault-name $KEY_VAULT \
        --name "AADSECRET" \
        --value "<the-value-of-your-client-secret>"
    
  3. Teď potřebujete aplikaci udělit přístup k trezoru klíčů. K provedení této úlohy nejprve vytvořte novou identitu aplikace pomocí následujících příkazů:

    export WEB_APP_NAME=<your-web-app-name>
    az webapp identity assign \
        --resource-group $RESOURCE_GROUP \
        --name $WEB_APP_NAME
    
  4. Pomocí následujících příkazů dejte této identitě get a list oprávnění k tajným kódům ve službě 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. Pomocí následujícího příkazu vytvořte nastavení aplikace, které používá referenci na trezor klíčů k tajemství ve vašem trezoru klíčů. Toto nastavení zpřístupňuje hodnotu tajného kódu vaší aplikaci jako proměnnou prostředí.

    az webapp config appsettings set \
        --resource-group $RESOURCE_GROUP \
        --name $WEB_APP_NAME \
        --settings AADSECRET='@Microsoft.KeyVault(VaultName=$KEY_VAULT;SecretName=AADSECRET)'
    
  6. K načtení této hodnoty z proměnných prostředí použijte následující kód. V souboru \src\main\java\com\microsoft\azuresamples\msal4j\helpers\Config.java změňte aktuální příkaz na následující řádek:

    public static final String SECRET = System.getenv("AADSECRET");
    
  7. Teď můžete odstranit klíč aad.secret a hodnotu ze souboru authentication.properties.

  8. Znovu sestavte kód pomocí následujícího příkazu:

    mvn clean package
    
  9. Znovu nasaďte aplikaci pomocí následujícího příkazu:

    mvn package azure-webapp:deploy
    

Vaše nasazení je teď hotové.

Více informací