Bagikan melalui


Menyebarkan aplikasi Java JBoss EAP ke Azure App Service

Artikel ini memperlihatkan kepada Anda cara menyebarkan aplikasi JBoss EAP dengan masuk oleh akun Microsoft Entra ke Azure App Service.

Artikel ini mengasumsikan bahwa Anda menyelesaikan salah satu artikel berikut ini hanya menggunakan tab Jalankan secara lokal, dan sekarang Anda ingin menyebarkan ke Azure. Instruksi ini sama dengan yang ada di tab Sebarkan ke Azure dalam artikel ini:

Prasyarat

  • Azure CLI

Mengkonfigurasi plugin Maven

Proses penyebaran ke Azure App Service menggunakan kredensial Azure Anda dari Azure CLI secara otomatis. Jika Azure CLI tidak diinstal secara lokal, maka plugin Maven mengautentikasi dengan OAuth atau masuk perangkat. Untuk informasi selengkapnya, lihat autentikasi dengan plugin Maven.

Gunakan langkah-langkah berikut untuk mengonfigurasi plugin:

  1. Jalankan perintah Maven yang ditampilkan di samping untuk mengonfigurasi penyebaran. Perintah ini membantu Anda menyiapkan sistem operasi App Service, versi Java, dan versi Tomcat.

    mvn com.microsoft.azure:azure-webapp-maven-plugin:2.12.0:config
    
  2. Untuk Buat konfigurasi eksekusi baru, tekan Y, lalu tekan Enter.

  3. Untuk Tentukan nilai untuk OS, tekan 2 untuk Linux, lalu tekan Enter.

  4. Untuk Tentukan nilai untuk javaVersion, tekan 2 untuk Java 11, lalu tekan Enter.

  5. Untuk Tentukan nilai untuk webContainer, tekan 1 untuk JBosseap7, lalu tekan Enter.

  6. Untuk Tetapkan nilai untukpricingTier, tekan Enter untuk memilih tingkat default P1v3.

  7. Untuk Konfirmasi, tekan Y, lalu tekan Enter.

Contoh berikut menunjukkan output proses penyebaran:

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

Setelah mengonfirmasi pilihan Anda, plugin menambahkan konfigurasi plugin dan pengaturan yang diperlukan ke file pom.xml proyek Anda untuk mengonfigurasi aplikasi Anda agar berjalan di Azure App Service.

Bagian yang relevan dari file pom.xml akan terlihat mirip dengan contoh berikut:

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

Anda dapat mengubah konfigurasi untuk App Service langsung di pom.xmlAnda. Beberapa konfigurasi umum tercantum dalam tabel berikut:

Harta benda Diperlukan Deskripsi Versi
schemaVersion palsu Versi skema konfigurasi. Nilai yang didukung adalah v1 dan v2. 1.5.2
subscriptionId palsu ID langganan. 0.1.0+
resourceGroup benar Grup sumber daya Azure untuk aplikasi Anda. 0.1.0+
appName benar Nama aplikasi Anda. 0.1.0+
region palsu Wilayah tempat menghosting aplikasi Anda. Nilai defaultnya adalah centralus. Untuk wilayah yang valid, lihat Wilayah yang Didukung. 0.1.0+
pricingTier palsu Tingkat harga untuk aplikasi Anda. Nilai defaultnya adalah P1v2 untuk beban kerja produksi. Nilai minimum yang direkomendasikan untuk pengembangan dan pengujian Java adalah B2. Untuk informasi selengkapnya, lihat Harga Layanan Aplikasi 0.1.0+
runtime palsu Konfigurasi lingkungan eksekusi. Untuk informasi selengkapnya, lihat detail konfigurasi . 0.1.0+
deployment palsu Konfigurasi penyebaran. Untuk informasi selengkapnya, lihat detail konfigurasi . 0.1.0+

Untuk daftar lengkap konfigurasi, lihat dokumentasi referensi plugin. Semua plugin Azure Maven berbagi serangkaian konfigurasi umum. Untuk konfigurasi ini, lihat Common Configurations. Untuk konfigurasi khusus untuk Azure App Service, lihat aplikasi Azure : Detail Konfigurasi.

Pastikan untuk menyimpan terlebih dahulu nilai appName dan resourceGroup untuk digunakan nanti.

Menyiapkan aplikasi untuk penyebaran

Saat Anda menyebarkan aplikasi ke App Service, URL pengalihan Anda berubah ke URL pengalihan instans aplikasi yang Anda sebarkan. Gunakan langkah-langkah berikut untuk mengubah pengaturan ini di file properti Anda:

  1. Navigasikan ke file authentication.properties aplikasi Anda dan ubah nilai ke nama domain aplikasi yang Disebarkan, seperti yang ditunjukkan dalam contoh berikut. Misalnya, jika Anda memilih example-domain untuk nama aplikasi di langkah sebelumnya, Anda sekarang harus menggunakan https://example-domain.azurewebsites.net untuk nilai app.homePage. Pastikan Anda juga telah mengubah protokol dari http ke 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. Setelah menyimpan file ini, gunakan perintah berikut untuk membangun kembali aplikasi Anda:

    mvn clean package
    

Memperbarui pendaftaran aplikasi ID Microsoft Entra Anda

Karena URI pengalihan berubah ke aplikasi yang disebarkan ke Azure App Service, Anda juga perlu mengubah URI pengalihan di pendaftaran aplikasi ID Microsoft Entra Anda. Gunakan langkah-langkah berikut untuk membuat perubahan ini:

  1. Navigasikan ke platform identitas Microsoft untuk pengembang halaman Pendaftaran aplikasi.

  2. Gunakan kotak pencarian untuk mencari pendaftaran aplikasi Anda - misalnya, java-servlet-webapp-authentication.

  3. Buka pendaftaran aplikasi Anda dengan memilih namanya.

  4. Pilih Autentikasi dari menu.

  5. Di bagian URI Pengalihan Web, pilih Tambahkan URI .

  6. Isi URI aplikasi Anda, tambahkan /auth/redirect - misalnya, https://<your-app-name>.azurewebsites.net/auth/redirect.

  7. Pilih Simpan.

Menyebarkan aplikasi

Anda sekarang siap untuk menyebarkan aplikasi Anda ke Azure App Service. Gunakan perintah berikut untuk memastikan Anda masuk ke lingkungan Azure Anda untuk menjalankan penyebaran:

az login

Dengan semua konfigurasi yang siap di file pom.xml, Anda sekarang dapat menggunakan perintah berikut untuk menyebarkan aplikasi Java Anda ke Azure:

mvn package azure-webapp:deploy

Setelah penyebaran selesai, aplikasi Anda siap pada http://<your-app-name>.azurewebsites.net/. Buka URL dengan browser web lokal Anda, di mana Anda akan melihat halaman awal aplikasi msal4j-servlet-auth.

Menghapus nilai rahasia

File authentication.properties aplikasi saat ini memuat nilai rahasia klien Anda dalam parameter aad.secret. Tidak baik untuk menyimpan nilai ini dalam file ini. Anda mungkin juga mengambil risiko jika Anda menerapkannya ke repositori Git.

Sebagai langkah tambahan keamanan, Anda dapat menyimpan nilai ini di Azure Key Vault dan menggunakan referensi Key Vault untuk membuatnya tersedia di aplikasi Anda.

Gunakan langkah-langkah berikut untuk memindahkan nilai aad.secret ke Key Vault dan gunakan dalam kode Anda:

  1. Gunakan perintah berikut untuk membuat instans 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. Gunakan perintah berikut untuk menambahkan nilai rahasia aad.secret ke brankas kunci Anda sebagai rahasia baru:

    az keyvault secret set \
        --vault-name $KEY_VAULT \
        --name "AADSECRET" \
        --value "<the-value-of-your-client-secret>"
    
  3. Anda sekarang perlu memberikan akses aplikasi ke brankas kunci Anda. Untuk melakukan tugas ini, pertama-tama buat identitas baru untuk aplikasi Anda dengan menggunakan perintah berikut:

    export WEB_APP_NAME=<your-web-app-name>
    az webapp identity assign \
        --resource-group $RESOURCE_GROUP \
        --name $WEB_APP_NAME
    
  4. Gunakan perintah berikut untuk memberikan identitas get dan list izin atas rahasia dalam Key Vault Anda.

    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. Gunakan perintah berikut untuk membuat setelan aplikasi di aplikasi Anda yang menggunakan referensi ke rahasia di dalam brankas kunci Anda. Pengaturan ini membuat nilai rahasia tersedia untuk aplikasi Anda sebagai variabel lingkungan.

    az webapp config appsettings set \
        --resource-group $RESOURCE_GROUP \
        --name $WEB_APP_NAME \
        --settings AADSECRET='@Microsoft.KeyVault(VaultName=$KEY_VAULT;SecretName=AADSECRET)'
    
  6. Gunakan kode berikut untuk memuat nilai ini dari variabel lingkungan. Dalam file \src\main\java\com\microsoft\azuresamples\msal4j\helpers\Config.java, pada baris 41, ubah pernyataan saat ini ke baris berikut:

    public static final String SECRET = System.getenv("AADSECRET");
    
  7. Sekarang Anda dapat menghapus kunci dan nilai dari file authentication.properties.

  8. Bangun ulang kode dengan menggunakan perintah berikut:

    mvn clean package
    
  9. Sebarkan ulang aplikasi dengan menggunakan perintah berikut:

    mvn package azure-webapp:deploy
    

Deployment Anda sekarang sudah selesai.

Informasi selengkapnya