Share via


Java JBoss EAP uygulamalarını Azure Uygulaması Hizmetine dağıtma

Bu makalede, Microsoft Entra hesabıyla Azure Uygulaması Service'te oturum açma ile bir JBoss EAP uygulamasının nasıl dağıtılacağı gösterilmektedir.

Bu makalede, aşağıdaki makalelerden birini yalnızca Yerel olarak çalıştır sekmesini kullanarak tamamladığınız ve şimdi Azure'a dağıtmak istediğiniz varsayılır. Bu yönergeler, şu makalelerdeki Azure'a Dağıt sekmesindeki yönergelerle aynıdır:

Önkoşullar

Maven eklentisini yapılandırma

Azure Uygulaması Hizmeti'ne dağıtım işlemi, Azure CLI'dan azure kimlik bilgilerinizi otomatik olarak kullanır. Azure CLI yerel olarak yüklü değilse Maven eklentisi OAuth veya cihaz oturum açma ile kimlik doğrulaması yapar. Daha fazla bilgi için bkz . Maven eklentileriyle kimlik doğrulaması.

Eklentiyi yapılandırmak için aşağıdaki adımları kullanın:

  1. Dağıtımı yapılandırmak için yanında gösterilen Maven komutunu çalıştırın. Bu komut App Service işletim sistemini, Java sürümünü ve Tomcat sürümünü ayarlamanıza yardımcı olur.

    mvn com.microsoft.azure:azure-webapp-maven-plugin:2.12.0:config
    
  2. Yeni çalıştırma yapılandırması oluştur için Y tuşuna basın ve ardından Enter tuşuna basın.

  3. İşletim sistemi için değer tanımla için Linux için 2 tuşuna basın ve ardından Enter tuşuna basın.

  4. JavaVersion için değer tanımla için Java 11 için 2 tuşuna basın ve ardından Enter tuşuna basın.

  5. webContainer için değer tanımla için JBosseap7 için 1 tuşuna basın ve ardından Enter tuşuna basın.

  6. pricingTier için değer tanımla alanında, varsayılan P1v3 katmanını seçmek için Enter tuşuna basın.

  7. Onayla için Y tuşuna basın ve ardından Enter tuşuna basın.

Aşağıdaki örnekte dağıtım işleminin çıkışı gösterilmektedir:

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

Seçimlerinizi onayladıktan sonra eklenti, uygulamanızı Azure Uygulaması Hizmetinde çalışacak şekilde yapılandırmak için eklenti yapılandırmasını ve gerekli ayarları projenizin pom.xml dosyasına ekler.

pom.xml dosyasının ilgili bölümü aşağıdaki örneğe benzer olmalıdır:

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

App Service yapılandırmalarını doğrudan pom.xml değiştirebilirsiniz. Bazı yaygın yapılandırmalar aşağıdaki tabloda listelenmiştir:

Özellik Zorunlu Açıklama Sürüm
schemaVersion yanlış Yapılandırma şemasının sürümü. Desteklenen değerler ve v2değerleridirv1. 1.5.2
subscriptionId yanlış Abonelik kimliği. 0.1.0+
resourceGroup true Uygulamanızın Azure kaynak grubu. 0.1.0+
appName true Uygulamanızın adı. 0.1.0+
region yanlış Uygulamanızın barındırıldığı bölge. Varsayılan değer şudur: centralus. Geçerli bölgeler için bkz . Desteklenen Bölgeler. 0.1.0+
pricingTier yanlış Uygulamanızın fiyatlandırma katmanı. Üretim iş yükü için varsayılan değer P1v2'dir. Java geliştirme ve test için önerilen en düşük değerdir B2. Daha fazla bilgi için bkz. App Service Fiyatlandırması 0.1.0+
runtime yanlış Çalışma zamanı ortamı yapılandırması. Daha fazla bilgi için bkz . Yapılandırma Ayrıntıları. 0.1.0+
deployment yanlış Dağıtım yapılandırması. Daha fazla bilgi için bkz . Yapılandırma Ayrıntıları. 0.1.0+

Yapılandırmaların tam listesi için eklenti başvuru belgelerine bakın. Tüm Azure Maven eklentileri ortak bir yapılandırma kümesini paylaşır. Bu yapılandırmalar için bkz . Ortak Yapılandırmalar. Azure Uygulaması Hizmetine özgü yapılandırmalar için bkz. Azure uygulaması: Yapılandırma Ayrıntıları.

ve resourceGroup değerlerini daha sonra kullanmak üzere bir kenara kaydettiğinizden appName emin olun.

Uygulamayı dağıtım için hazırlama

Uygulamanızı App Service'e dağıttığınızda, yeniden yönlendirme URL'niz dağıtılan uygulama örneğinizin yeniden yönlendirme URL'sine dönüşür. Özellikler dosyanızdaki bu ayarları değiştirmek için aşağıdaki adımları kullanın:

  1. Aşağıdaki örnekte gösterildiği gibi uygulamanızın authentication.properties dosyasına gidin ve değerini app.homePage dağıtılan uygulamanızın etki alanı adıyla değiştirin. Örneğin, önceki adımda uygulama adınızı seçtiysenizexample-domain, şimdi değeri için app.homePage kullanmanız https://example-domain.azurewebsites.net gerekir. Protokolü httphttpsolarak da değiştirdiğinizden emin olun.

    # 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. Bu dosyayı kaydettikten sonra uygulamanızı yeniden derlemek için aşağıdaki komutu kullanın:

    mvn clean package
    

Microsoft Entra ID uygulama kaydınızı güncelleştirme

Yeniden yönlendirme URI'si dağıtılan uygulamanızda Azure Uygulaması Hizmeti'ne değiştiğinden, Microsoft Entra Id uygulama kaydınızdaki yeniden yönlendirme URI'sini de değiştirmeniz gerekir. Bu değişikliği yapmak için aşağıdaki adımları kullanın:

  1. Geliştiriciler için Microsoft kimlik platformu Uygulama kayıtları sayfasına gidin.

  2. Uygulama kaydınızı aramak için arama kutusunu kullanın; örneğin, java-servlet-webapp-authentication.

  3. Adını seçerek uygulama kaydınızı açın.

  4. Menüden Kimlik Doğrulaması'nı seçin.

  5. Web - Yeniden Yönlendirme URI'leri bölümünde URI Ekle'yi seçin.

  6. Uygulamanızın URI'sini doldurun; örneğin, https://<your-app-name>.azurewebsites.net/auth/redirectöğesini ekleyerek /auth/redirect .

  7. Kaydet'i seçin.

Uygulamayı dağıtma

Artık uygulamanızı Azure Uygulaması Hizmeti'ne dağıtmaya hazırsınız. Dağıtımı yürütmek üzere Azure ortamınızda oturum açtığınızdan emin olmak için aşağıdaki komutu kullanın:

az login

pom.xml dosyanızda tüm yapılandırma hazır olduğunda, java uygulamanızı Azure'a dağıtmak için aşağıdaki komutu kullanabilirsiniz:

mvn package azure-webapp:deploy

Dağıtım tamamlandıktan sonra uygulamanız konumunda http://<your-app-name>.azurewebsites.net/hazırdır. Uygulamanın başlangıç sayfasını görmeniz gereken yerel web tarayıcınızla URL'yi msal4j-servlet-auth açın.

Gizli dizi değerlerini kaldırma

Uygulamanın authentication.properties dosyası şu anda parametresinde istemci gizli dizinizin değerini barındırıyor aad.secret . Bu değeri bu dosyada tutmak iyi bir uygulama değildir. Bunu bir Git deposuna işliyorsanız da risk alıyor olabilirsiniz.

Ek güvenlik adımı olarak bu değeri Azure Key Vault'ta depolayabilir ve key vault başvurularını kullanarak uygulamanızda kullanılabilir hale getirebilirsiniz.

değerini aad.secret Key Vault'a taşımak ve kodunuzda kullanmak için aşağıdaki adımları kullanın:

  1. Azure Key Vault örneği oluşturmak için aşağıdaki komutları kullanın:

    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. Anahtar kasanıza gizli dizi değerini aad.secret yeni bir gizli dizi olarak eklemek için aşağıdaki komutları kullanın:

    az keyvault secret set \
        --vault-name $KEY_VAULT \
        --name "AADSECRET" \
        --value "<the-value-of-your-client-secret>"
    
  3. Şimdi uygulamanıza anahtar kasanıza erişim vermeniz gerekir. Bu görevi yapmak için önce aşağıdaki komutları kullanarak uygulamanız için yeni bir kimlik oluşturun:

    export WEB_APP_NAME=<your-web-app-name>
    az webapp identity assign \
        --resource-group $RESOURCE_GROUP \
        --name $WEB_APP_NAME
    
  4. Bu kimliğe get ve list Key Vault'unuzda gizli diziler üzerinde izin vermek için aşağıdaki komutları kullanın:

    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. Uygulamanızda anahtar kasanızdaki gizli diziye yönelik bir anahtar kasası başvurusu kullanan bir uygulama ayarı oluşturmak için aşağıdaki komutu kullanın. Bu ayar, gizli dizinin değerini uygulamanızda ortam değişkeni olarak kullanılabilir hale getirir.

    az webapp config appsettings set \
        --resource-group $RESOURCE_GROUP \
        --name $WEB_APP_NAME \
        --settings AADSECRET='@Microsoft.KeyVault(VaultName=$KEY_VAULT;SecretName=AADSECRET)'
    
  6. Bu değeri ortam değişkenlerinden yüklemek için aşağıdaki kodu kullanın. \src\main\java\com\microsoft\azuresamples\msal4j\helpers\Config.java dosyasında, 41. satırdaki geçerli deyimi şu satırla değiştirin:

    public static final String SECRET = System.getenv("AADSECRET");
    
  7. Artık authentication.properties dosyasından aad.secretanahtarı ve değeri silebilirsiniz.

  8. Aşağıdaki komutu kullanarak kodu yeniden oluşturun:

    mvn clean package
    
  9. Aşağıdaki komutu kullanarak uygulamayı yeniden dağıtın:

    mvn package azure-webapp:deploy
    

Dağıtımınız tamamlandı.

Daha Fazla Bilgi