Autentikasi Azure dengan perwakilan layanan
Artikel ini melihat bagaimana pustaka Azure Identity mendukung autentikasi token Microsoft Entra melalui perwakilan layanan. Artikel ini membahas subjek berikut:
Untuk informasi selengkapnya, lihat Objek perwakilan aplikasi dan layanan di ID Microsoft Entra. Untuk pemecahan masalah autentikasi perwakilan layanan, lihat Memecahkan masalah autentikasi perwakilan layanan.
Membuat perwakilan layanan menggunakan Azure CLI
Gunakan contoh Azure CLI berikut untuk membuat atau mendapatkan kredensial rahasia klien.
Jalankan perintah berikut untuk membuat perwakilan layanan dan mengonfigurasi aksesnya ke sumber daya Azure:
az ad sp create-for-rbac \
--name <your application name> \
--role Contributor \
--scopes /subscriptions/mySubscriptionID
Perintah ini menghasilkan nilai yang mirip dengan teks berikut:
{
"appId": "generated-app-ID",
"displayName": "dummy-app-name",
"name": "http://dummy-app-name",
"password": "random-password",
"tenant": "tenant-ID"
}
Jalankan perintah berikut untuk membuat perwakilan layanan bersama dengan sertifikat. Catat jalur/lokasi sertifikat ini.
az ad sp create-for-rbac \
--name <your application name> \
--role Contributor \
--cert <certificate name> \
--create-cert
Periksa kredensial yang dihasilkan dan catat informasi berikut:
AZURE\_CLIENT\_ID
untuk appId.AZURE\_CLIENT\_SECRET
untuk kata sandi.AZURE\_TENANT\_ID
untuk penyewa.
Kredensial rahasia klien
Kredensial ini mengautentikasi perwakilan layanan yang dibuat melalui rahasia kliennya (kata sandi). Contoh berikut menunjukkan cara mengautentikasi SecretClient
dari pustaka klien azure-security-keyvault-secrets menggunakan ClientSecretCredential
.
/**
* Authenticate with client secret.
*/
ClientSecretCredential clientSecretCredential = new ClientSecretCredentialBuilder()
.clientId("<your client ID>")
.clientSecret("<your client secret>")
.tenantId("<your tenant ID>")
.build();
// Azure SDK client builders accept the credential as a parameter.
SecretClient client = new SecretClientBuilder()
.vaultUrl("https://<your Key Vault name>.vault.azure.net")
.credential(clientSecretCredential)
.buildClient();
Kredensial sertifikat klien
Kredensial ini mengautentikasi perwakilan layanan yang dibuat melalui sertifikat kliennya. Contoh berikut menunjukkan cara mengautentikasi SecretClient
dari pustaka klien azure-security-keyvault-secrets menggunakan ClientCertificateCredential
.
/**
* Authenticate with a client certificate.
*/
ClientCertificateCredential clientCertificateCredential = new ClientCertificateCredentialBuilder()
.clientId("<your client ID>")
.pemCertificate("<path to PEM certificate>")
// Choose between either a PEM certificate or a PFX certificate.
//.pfxCertificate("<path to PFX certificate>", "PFX CERTIFICATE PASSWORD")
.tenantId("<your tenant ID>")
.build();
// Azure SDK client builders accept the credential as a parameter.
SecretClient client = new SecretClientBuilder()
.vaultUrl("https://<your Key Vault name>.vault.azure.net")
.credential(clientCertificateCredential)
.buildClient();
Langkah berikutnya
Artikel ini membahas autentikasi melalui perwakilan layanan. 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 aplikasi yang dihost di Azure
- Autentikasi dengan Kredensial Pengguna
Jika Anda mengalami masalah yang terkait dengan autentikasi perwakilan layanan, lihat Memecahkan masalah autentikasi perwakilan layanan.
Setelah Anda menguasai autentikasi, lihat Mengonfigurasi pengelogan di Azure SDK for Java untuk informasi tentang fungsi pencatatan yang disediakan oleh SDK.