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_ID
lingkungan ,AZURE_CLIENT_SECRET
, danAZURE_TENANT_ID
seperti yang didefinisikan dalam Variabel lingkungan dikonfigurasiDefaultAzureCredential
untuk mengautentikasi sebagai perwakilan layanan yang ditentukan oleh nilai. - Pengaturan
.managedIdentityClientId(String)
pada penyusun atau variabelAZURE_CLIENT_ID
lingkungan dikonfigurasiDefaultAzureCredential
untuk 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_ID
lingkungan dikonfigurasiDefaultAzureCredential
untuk mengautentikasi ke penyewa tertentu untuk cache token bersama atau IntelliJ IDEA. - Mengatur variabel
AZURE_USERNAME
lingkungan mengonfigurasiDefaultAzureCredential
untuk 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.