Megosztás a következőn keresztül:


Java Tomcat-alkalmazások üzembe helyezése az Azure App Service-ben

Ez a cikk bemutatja, hogyan helyezhet üzembe Egy Tomcat-alkalmazást a Microsoft Entra-fiók által az Azure App Service-be való bejelentkezéssel.

Ez a cikk feltételezi, hogy az alábbi cikkek közül az egyiket csak a Helyi futtatás lapon teljesítette, és most az Azure-ba történő üzembe helyezést szeretné elvégezni. Ezek az utasítások ugyanazok, mint a Üzembe helyezés az Azure-ban lapon szereplők ezekben a cikkekben:

Előfeltételek

A Maven beépülő modul konfigurálása

Az Azure App Service-ben való üzembe helyezéskor az üzembe helyezés automatikusan az Azure CLI-ből származó Azure-hitelesítő adatokat használja. Ha az Azure CLI nincs helyileg telepítve, akkor a Maven beépülő modul az OAuth vagy az eszköz bejelentkezésével hitelesít. További információ található a Maven beépülő modulok hitelesítéséről: .

A beépülő modul konfigurálásához kövesse az alábbi lépéseket:

  1. Futtassa a következő parancsot az üzembe helyezés konfigurálásához. Ez a parancs segít az Azure App Service operációs rendszerének, a Java-verziónak és a Tomcat-verziónak a beállításában.

    mvn com.microsoft.azure:azure-webapp-maven-plugin:2.13.0:config
    
  2. Ha Új futtatási konfiguráció létrehozása, nyomja le a Ygombot, majd nyomja le az Enterbillentyűt.

  3. Ha Operációsrendszer-értékének meghatározása, nyomja le 1 windowsos vagy 2 Linux esetén, majd nyomja le Enterbillentyűt.

  4. A javaVersionértékének definiálása esetén nyomja le a Java 11 2 billentyűkombinációt, majd nyomja le Enterbillentyűt.

  5. A WebContainerértékének meghatározásához, nyomja le a 4 billentyűt a Tomcat 9.0 esetén, majd nyomja le az Enterbillentyűt.

  6. A PricingTierértékének meghatározásához nyomja le az Enter billentyűkombinációt az alapértelmezett P1v2 szint kiválasztásához.

  7. Nyomja le a Erősítse megbillentyűt, majd nyomja le a Ybillentyűt, végül nyomja le a Enterbillentyűt.

Az alábbi példa az üzembehelyezési folyamat kimenetét mutatja be:

Please confirm webapp properties
AppName : msal4j-servlet-auth-1707209552268
ResourceGroup : msal4j-servlet-auth-1707209552268-rg
Region : centralus
PricingTier : P1v2
OS : Linux
Java Version: Java 11
Web server stack: Tomcat 9.0
Deploy to slot : false
Confirm (Y/N) [Y]: [INFO] Saving configuration to pom.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  37.112 s
[INFO] Finished at: 2024-02-06T08:53:02Z
[INFO] ------------------------------------------------------------------------

Miután megerősítette a választási lehetőségeket, a beépülő modul hozzáadja a szükséges beépülő modulelemet és -beállításokat a projekt pom.xml fájljához, hogy konfigurálja az alkalmazást az Azure App Service-ben való futtatásra.

A pom.xml fájl releváns részének az alábbi példához hasonlóan kell kinéznie:

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

Közvetlenül a pom.xml-ban módosíthatja az App Service konfigurációit. Néhány gyakori konfiguráció az alábbi táblázatban található:

Ingatlan Szükséges Leírás
subscriptionId téves Az előfizetés azonosítója.
resourceGroup igaz Az alkalmazás Azure-erőforráscsoportja.
appName igaz Az alkalmazás neve.
region téves Az a régió, amelyben az alkalmazást üzemeltetni szeretné. Az alapértelmezett érték a centralus. Érvényes régiókat Támogatott régiókcímű témakörben talál.
pricingTier téves Az alkalmazás tarifacsomagja. Az alapértelmezett érték egy termelési feladathoz: P1v2. A Java-fejlesztés és -tesztelés ajánlott minimális értéke B2. További információért lásd: App Service díjszabás.
runtime téves A futtatókörnyezet konfigurációja. További információ: Konfiguráció részletei.
deployment téves Az üzembehelyezési konfiguráció. További információ: Konfiguráció részletei.

A konfigurációk teljes listáját a beépülő modul referenciadokumentációjában találja. Az összes Azure Maven beépülő modul egy közös konfigurációs készletet használ. Ezekről a konfigurációkról Gyakori konfigurációkcímű témakörben olvashat. Az Azure App Service-hez kapcsolódó konfigurációkért lásd Azure-alkalmazás: Konfiguráció részletei.

Ne felejtse el félretenni a appName és resourceGroup értékeket későbbi használatra.

Az alkalmazás előkészítése az üzembe helyezéshez

Amikor üzembe helyezi az alkalmazást az App Service-ben, az átirányítási URL-cím az üzembe helyezett alkalmazáspéldány átirányítási URL-címére változik. A tulajdonságok fájljában a következő lépésekkel módosíthatja ezeket a beállításokat:

  1. Keresse meg az alkalmazás authentication.properties fájlját, és módosítsa a app.homePage értékét az üzembe helyezett alkalmazás tartománynevére az alábbi példában látható módon. Ha például az előző lépésben az alkalmazás nevének a example-domain-t választotta, akkor most a https://example-domain.azurewebsites.net-et kell használnia a app.homePage értékéhez. Győződjön meg arról, hogy a protokollt http-ról https-ra módosította.

    # 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. A fájl mentése után használja az alábbi parancsot az alkalmazás újraépítéséhez:

    mvn clean package
    

A Microsoft Entra ID alkalmazásregisztráció frissítése

Mivel a telepített alkalmazás átirányítási URI-ja az Azure App Service-be módosul, az átirányítási URI-t is módosítania kell a Microsoft Entra ID-alkalmazásregisztrációban. A módosítás végrehajtásához kövesse az alábbi lépéseket:

  1. Navigáljon a Microsoft identitásplatform fejlesztőknek alkalmazásregisztrációk oldalára.

  2. A keresőmezővel keresse meg az alkalmazásregisztrációt – például java-servlet-webapp-authentication.

  3. Nyissa meg az alkalmazásregisztrációt a nevének kiválasztásával.

  4. Válassza Hitelesítési lehetőséget a menüből.

  5. A Web - Átirányítási URI-k szakaszban válassza az URI-hozzáadása lehetőséget.

  6. Töltse ki az alkalmazás URI-ját, hozzáfűzve /auth/redirect - például https://<your-app-name>.azurewebsites.net/auth/redirect.

  7. Válassza Mentéslehetőséget.

Az alkalmazás üzembe helyezése

Most már készen áll az alkalmazás Azure App Service-ben való üzembe helyezésére. Az alábbi paranccsal győződjön meg arról, hogy bejelentkezett az Azure-környezetbe az üzembe helyezés végrehajtásához:

az login

Ha az összes konfiguráció készen áll a pom.xml fájlban, a következő paranccsal helyezheti üzembe a Java-alkalmazást az Azure-ban:

mvn package azure-webapp:deploy

Az üzembe helyezés befejezése után az alkalmazás készen áll a http://<your-app-name>.azurewebsites.net/. Nyissa meg az URL-címet a helyi webböngészővel, ahol meg kell jelennie a msal4j-servlet-auth alkalmazás kezdőlapjának.

Titkos kódok eltávolítása

Az alkalmazás authentication.properties fájlja jelenleg az ügyfél titkos kódjának értékét tartalmazza a aad.secret paraméterben. Ez az érték nem ajánlott ebben a fájlban tartani. Kockázatot is vállalhat, ha véglegesíti azt egy Git-adattárban.

Biztonsági extra lépésként ezt az értéket Azure Key Vault tárolhatja, és Key Vault-referenciákkal elérhetővé teheti az alkalmazásban.

A következő lépésekkel helyezze át a aad.secret értékét a Key Vaultba, és használja azt a kódban:

  1. Azure Key Vault-példány létrehozásához használja a következő parancsokat:

    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. A következő parancsokkal új titkos kódként adja hozzá a aad.secret titkos értékét a kulcstartóhoz:

    az keyvault secret set \
        --vault-name $KEY_VAULT \
        --name "AADSECRET" \
        --value "<the-value-of-your-client-secret>"
    
  3. Most hozzáférést kell adnia az alkalmazásnak a kulcstárolóhoz. A feladat elvégzéséhez először hozzon létre egy új identitást az alkalmazáshoz az alábbi parancsokkal:

    export WEB_APP_NAME=<your-web-app-name>
    az webapp identity assign \
        --resource-group $RESOURCE_GROUP \
        --name $WEB_APP_NAME
    
  4. Az alábbi parancsokkal adhat engedélyt ennek az identitásnak get és list számára, hogy hozzáférjenek a Key Vault titkaihoz.

    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. Az alábbi paranccsal hozzon létre az alkalmazásában egy olyan alkalmazásbeállítást, amely kulcstár hivatkozást használ a kulcstárban lévő titokhoz. Ez a beállítás környezeti változóként teszi elérhetővé az alkalmazás számára a titkos kód értékét.

    az webapp config appsettings set \
        --resource-group $RESOURCE_GROUP \
        --name $WEB_APP_NAME \
        --settings AADSECRET='@Microsoft.KeyVault(VaultName=$KEY_VAULT;SecretName=AADSECRET)'
    
  6. Az alábbi kóddal töltse be ezt az értéket a környezeti változókból. A \src\main\java\com\microsoft\azuresamples\msal4j\helpers\Config.java fájlban a 41. sorban módosítsa az aktuális utasítást a következő sorra:

    public static final String SECRET = System.getenv("AADSECRET");
    
  7. Most már törölheti a aad.secret kulcsot és értéket a authentication.properties fájlból.

  8. A kód újraépítése a következő paranccsal:

    mvn clean package
    
  9. Az alkalmazás ismételt üzembe helyezése a következő paranccsal:

    mvn package azure-webapp:deploy
    

Az üzembe helyezés befejeződött.

További információ