Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Artikel ini memperlihatkan kepada Anda cara menyebarkan aplikasi Tomcat 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:
- Mengaktifkan masuk untuk aplikasi Java Tomcat menggunakan Microsoft Entra ID
- Aktifkan masuk untuk aplikasi Java Tomcat menggunakan MSAL4J dengan Azure Active Directory B2C
- Mengaktifkan aplikasi Java Tomcat untuk mengautentikasi pengguna dan mengakses Microsoft Graph
- Mengamankan Aplikasi Java Tomcat Menggunakan Peran dan Klaim Peran
- Mengamankan aplikasi Java Tomcat menggunakan grup dan klaim grup
Prasyarat
Maven Plugin untuk aplikasi Azure App Service
Jika Maven bukan alat pengembangan pilihan Anda, lihat tutorial serupa berikut yang menggunakan alat lain:
- IntelliJ IDEA
- Gerhana
- Visual Studio Code
Mengonfigurasi plugin Maven
Saat Anda menyebarkan ke Azure App Service, penyebaran secara otomatis menggunakan kredensial Azure Anda dari Azure CLI. 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:
Jalankan perintah berikut untuk mengonfigurasi penyebaran. Perintah ini membantu Anda menyiapkan sistem operasi Azure App Service, versi Java, dan versi Tomcat.
mvn com.microsoft.azure:azure-webapp-maven-plugin:2.13.0:configUntuk Buat konfigurasi eksekusi baru, tekan Y, lalu tekan Enter.
Untuk Tentukan nilai untuk OS, tekan 1 untuk Windows, atau 2 untuk Linux, lalu tekan Enter.
Untuk Tentukan nilai untuk javaVersion, tekan 2 untuk Java 11, lalu tekan Enter.
Untuk Tentukan nilai untuk webContainer, tekan 4 untuk Tomcat 9.0, lalu tekan Enter.
Untuk Tentukan nilai untuktingkat harga, tekan Enter untuk memilih tingkat default P1v2.
Untuk Konfirmasi, tekan Y, lalu tekan Enter.
Contoh berikut menunjukkan output proses penyebaran:
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] ------------------------------------------------------------------------
Setelah Anda mengonfirmasi pilihan Anda, plugin menambahkan elemen dan pengaturan plugin 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 |
|---|---|---|
subscriptionId |
palsu | ID langganan. |
resourceGroup |
benar | Grup sumber daya Azure untuk aplikasi Anda. |
appName |
benar | Nama aplikasi Anda. |
region |
palsu | Wilayah tempat menghosting aplikasi Anda. Nilai defaultnya adalah centralus. Untuk wilayah yang valid, lihat Wilayah yang Didukung. |
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. |
runtime |
palsu | Konfigurasi lingkungan runtime. Untuk informasi selengkapnya, lihat detail konfigurasi . |
deployment |
palsu | Konfigurasi penyebaran. Untuk informasi selengkapnya, lihat detail konfigurasi . |
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 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:
Arahkan ke file authentication.properties aplikasi Anda dan ubah nilai
app.homePagemenjadi nama domain aplikasi yang telah dideploy, seperti yang ditunjukkan dalam contoh berikut. Misalnya, jika Anda memilihexample-domainuntuk nama aplikasi di langkah sebelumnya, Anda sekarang harus menggunakanhttps://example-domain.azurewebsites.netuntuk nilaiapp.homePage. Pastikan Anda juga telah mengubah protokol darihttpkehttps.# 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.netSetelah 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:
Navigasikan ke halaman platform identitas Microsoft untuk pengembang Pendaftaran aplikasi.
Gunakan kotak pencarian untuk mencari pendaftaran aplikasi Anda - misalnya,
java-servlet-webapp-authentication.Buka pendaftaran aplikasi Anda dengan memilih namanya.
Pilih Autentikasi dari menu.
Di bagian Web URI Pengalihan - , pilih Tambahkan URI .
Isi URI aplikasi Anda, tambahkan
/auth/redirect- misalnya,https://<your-app-name>.azurewebsites.net/auth/redirect.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
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:
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_VAULTGunakan perintah berikut untuk menambahkan nilai rahasia
aad.secretke brankas kunci Anda sebagai rahasia baru:az keyvault secret set \ --vault-name $KEY_VAULT \ --name "AADSECRET" \ --value "<the-value-of-your-client-secret>"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_NAMEGunakan perintah berikut untuk memberikan identitas ini
getdan izinlistpada rahasia di 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 $IDENTITYGunakan perintah berikut untuk membuat pengaturan aplikasi di aplikasi Anda yang menggunakan referensi brankas kunci ke rahasia 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)'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");Sekarang Anda dapat menghapus kunci dan nilai
dari file authentication.properties. Bangun ulang kode dengan menggunakan perintah berikut:
mvn clean packageSebarkan ulang aplikasi dengan menggunakan perintah berikut:
mvn package azure-webapp:deploy
Penyebaran Anda sekarang selesai.
Informasi selengkapnya
- Microsoft Authentication Library (MSAL) untuk Java
- platform identitas Microsoft (ID Microsoft Entra untuk pengembang)
- Mulai Cepat: Mendaftarkan aplikasi dengan platform identitas Microsoft
- Memahami pengalaman persetujuan aplikasi ID Microsoft Entra
- Memahami persetujuan pengguna dan admin
- contoh kode MSAL