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:
- Microsoft Entra Id kullanarak Java JBoss EAP uygulamaları için oturum açmayı etkinleştirme
- Azure Active Directory B2C ile MSAL4J kullanarak Java JBoss EAP uygulamaları için oturum açmayı etkinleştirme
- Kullanıcılarda oturum açmak ve Microsoft Graph'a erişmek için Java JBoss EAP uygulamalarını etkinleştirme
- Rolleri ve rol taleplerini kullanarak Java JBoss EAP uygulamalarının güvenliğini sağlama
- Grupları ve grup taleplerini kullanarak Java JBoss EAP uygulamalarının güvenliğini sağlama
Önkoşullar
Azure Uygulaması Hizmeti uygulamaları için Maven Eklentisi
Maven tercih ettiğiniz geliştirme aracı değilse, diğer araçları kullanan aşağıdaki benzer öğreticilere bakın:
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:
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
Yeni çalıştırma yapılandırması oluştur için Y tuşuna basın ve ardından Enter tuşuna basın.
İş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.
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.
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.
pricingTier için değer tanımla alanında, varsayılan P1v3 katmanını seçmek için Enter tuşuna basın.
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 v2 değ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:
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çinapp.homePage
kullanmanızhttps://example-domain.azurewebsites.net
gerekir. Protokolühttp
https
olarak 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
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:
Geliştiriciler için Microsoft kimlik platformu Uygulama kayıtları sayfasına gidin.
Uygulama kaydınızı aramak için arama kutusunu kullanın; örneğin,
java-servlet-webapp-authentication
.Adını seçerek uygulama kaydınızı açın.
Menüden Kimlik Doğrulaması'nı seçin.
Web - Yeniden Yönlendirme URI'leri bölümünde URI Ekle'yi seçin.
Uygulamanızın URI'sini doldurun; örneğin,
https://<your-app-name>.azurewebsites.net/auth/redirect
öğesini ekleyerek/auth/redirect
.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:
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
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>"
Ş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
Bu kimliğe
get
velist
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
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)'
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");
Artık authentication.properties dosyasından
aad.secret
anahtarı ve değeri silebilirsiniz.Aşağıdaki komutu kullanarak kodu yeniden oluşturun:
mvn clean package
Aşağıdaki komutu kullanarak uygulamayı yeniden dağıtın:
mvn package azure-webapp:deploy
Dağıtımınız tamamlandı.
Daha Fazla Bilgi
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin