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 melihat bagaimana pustaka Azure Identity mendukung autentikasi token Microsoft Entra untuk aplikasi yang dihosting di Azure. Dukungan ini dimungkinkan melalui serangkaian TokenCredential implementasi, yang dibahas dalam artikel ini.
Artikel ini membahas subjek berikut:
Untuk memecahkan masalah autentikasi yang terkait dengan aplikasi yang dihosting Azure, lihat Memecahkan masalah autentikasi aplikasi yang dihosting Azure.
DefaultAzureCredential
DefaultAzureCredential menggabungkan kredensial yang biasa digunakan untuk mengautentikasi saat disebarkan, dengan kredensial yang digunakan untuk mengautentikasi di lingkungan pengembangan. Untuk informasi selengkapnya, lihat Gambaran umum DefaultAzureCredential.
Mengonfigurasi DefaultAzureCredential
DefaultAzureCredential mendukung serangkaian konfigurasi melalui setter pada variabel DefaultAzureCredentialBuilder atau lingkungan.
- Mengatur variabel
AZURE_CLIENT_IDlingkungan ,AZURE_CLIENT_SECRET, danAZURE_TENANT_IDseperti yang didefinisikan dalam Variabel lingkungan dikonfigurasiDefaultAzureCredentialuntuk mengautentikasi sebagai perwakilan layanan yang ditentukan oleh nilai. - Pengaturan
.managedIdentityClientId(String)pada penyusun atau variabelAZURE_CLIENT_IDlingkungan dikonfigurasiDefaultAzureCredentialuntuk mengautentikasi sebagai identitas terkelola yang ditetapkan pengguna, sambil membiarkannya kosong mengonfigurasinya untuk mengautentikasi sebagai identitas terkelola yang ditetapkan sistem. - Pengaturan
.tenantId(String)pada penyusun atau variabelAZURE_TENANT_IDlingkungan dikonfigurasiDefaultAzureCredentialuntuk mengautentikasi ke penyewa tertentu untuk cache token bersama atau IntelliJ IDEA. - Mengatur variabel
AZURE_USERNAMElingkungan mengonfigurasiDefaultAzureCredentialuntuk memilih token cache yang sesuai dari cache token bersama.
Mengautentikasi dengan DefaultAzureCredential
Contoh berikut menunjukkan autentikasi SecretClient dari pustaka klien azure-security-keyvault-secrets menggunakan DefaultAzureCredential:
// Azure SDK client builders accept the credential as a parameter.
SecretClient client = new SecretClientBuilder()
.vaultUrl("https://<KEY_VAULT_NAME>.vault.azure.net")
.credential(new DefaultAzureCredentialBuilder().build())
.buildClient();
Mengautentikasi identitas terkelola yang ditetapkan pengguna dengan DefaultAzureCredential
Contoh berikut menunjukkan autentikasi SecretClient dari pustaka klien azure-security-keyvault-secrets menggunakan DefaultAzureCredential yang disebarkan ke sumber daya Azure dengan identitas terkelola yang ditetapkan pengguna yang dikonfigurasi.
/**
* DefaultAzureCredential uses the user-assigned managed identity with the specified client ID.
*/
DefaultAzureCredential credential = new DefaultAzureCredentialBuilder()
.managedIdentityClientId("<CLIENT_ID>")
.build();
// Azure SDK client builders accept the credential as a parameter.
SecretClient client = new SecretClientBuilder()
.vaultUrl("https://<KEY_VAULT_NAME>.vault.azure.net")
.credential(credential)
.buildClient();
Identitas TerkelolaKredensial
ManagedIdentityCredential mengautentikasi identitas terkelola (ditetapkan sistem atau ditetapkan pengguna) dari sumber daya Azure. Jadi, jika aplikasi berjalan di dalam sumber daya Azure yang mendukung identitas terkelola melalui IDENTITY/MSI, IMDS titik akhir, atau keduanya, kredensial ini membuat aplikasi Anda diautentikasi, dan menawarkan pengalaman autentikasi tanpa rahasia.
Untuk informasi selengkapnya, lihat Apa yang dimaksud dengan identitas terkelola untuk sumber daya Azure?.
Mengautentikasi di Azure dengan identitas terkelola:
Contoh berikut menunjukkan autentikasi SecretClient dari pustaka klien azure-security-keyvault-secrets menggunakan ManagedIdentityCredential di komputer virtual, App Service, aplikasi Functions, Cloud Shell, Service Fabric, Arc, atau lingkungan AKS di Azure, dengan identitas terkelola yang ditetapkan sistem atau ditetapkan pengguna diaktifkan.
/**
* Authenticate with a user-assigned managed identity.
*/
ManagedIdentityCredential credential = new ManagedIdentityCredentialBuilder()
.clientId("<CLIENT_ID>") // required only for user-assigned
.build();
// Azure SDK client builders accept the credential as a parameter.
SecretClient client = new SecretClientBuilder()
.vaultUrl("https://<KEY_VAULT_NAME>.vault.azure.net")
.credential(credential)
.buildClient();
Variabel lingkungan
Anda dapat mengonfigurasi DefaultAzureCredential dan EnvironmentCredential dengan variabel lingkungan. Setiap jenis autentikasi memerlukan nilai untuk variabel tertentu:
Perwakilan layanan dengan rahasia
| Nama variabel | Nilai |
|---|---|
AZURE_CLIENT_ID |
ID aplikasi Microsoft Entra. |
AZURE_TENANT_ID |
ID penyewa Microsoft Entra aplikasi. |
AZURE_CLIENT_SECRET |
Salah satu rahasia klien aplikasi. |
Perwakilan layanan dengan sertifikat
| Nama variabel | Nilai |
|---|---|
AZURE_CLIENT_ID |
ID aplikasi Microsoft Entra. |
AZURE_TENANT_ID |
ID penyewa Microsoft Entra aplikasi. |
AZURE_CLIENT_CERTIFICATE_PATH |
Jalur ke file sertifikat yang dikodekan PEM termasuk kunci pribadi (tanpa perlindungan kata sandi). |
AZURE_CLIENT_CERTIFICATE_PASSWORD |
(opsional) Kata sandi file sertifikat, jika ada. |
AZURE_CLIENT_SEND_CERTIFICATE_CHAIN |
(opsional) Kirim rantai sertifikat di header x5c untuk mendukung nama subjek /autentikasi berbasis penerbit. |
Nama pengguna dan kata sandi
| Nama variabel | Nilai |
|---|---|
AZURE_CLIENT_ID |
ID aplikasi Microsoft Entra. |
AZURE_TENANT_ID |
ID penyewa Microsoft Entra aplikasi. |
AZURE_USERNAME |
Nama pengguna (biasanya alamat email). |
AZURE_PASSWORD |
Kata sandi terkait untuk nama pengguna yang diberikan. |
Konfigurasi dicoba dalam urutan ini. Misalnya, jika nilai untuk rahasia dan sertifikat klien keduanya ada, maka digunakan rahasia klien.
Langkah berikutnya
Artikel ini membahas autentikasi untuk aplikasi yang dihost di Azure. Bentuk autentikasi ini adalah salah satu dari beberapa cara yang dapat Anda gunakan untuk melakukan autentikasi di Azure SDK for Java. Artikel berikut menjelaskan cara yang lain:
- Autentikasi Azure di lingkungan pengembangan
- Autentikasi dengan perwakilan layanan
- Autentikasi dengan kredensial pengguna
Jika Anda mengalami masalah yang terkait dengan autentikasi aplikasi yang dihosting Azure, lihat Memecahkan masalah autentikasi aplikasi yang dihosting Azure.
Setelah Anda menguasai autentikasi, lihat Mengonfigurasi pengelogan di Azure SDK for Java untuk informasi tentang fungsi pencatatan yang disediakan oleh SDK.