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.
Integrasi pustaka klien Azure untuk ASP.NET Core (Microsoft.Extensions.Azure) mendukung pembuatan berbagai Azure.Core.TokenCredential jenis dari pasangan kunci-nilai yang ditentukan dalam appsettings.json dan file konfigurasi lainnya. Kredensial sesuai dengan suatu subset dari kelas kredensial di pustaka klien Azure Identity. Artikel ini menjelaskan dukungan untuk berbagai TokenCredential jenis dan cara mengonfigurasi pasangan kunci-nilai yang diperlukan untuk setiap jenis.
Dukungan untuk kredensial Azure melalui konfigurasi
Microsoft.Extensions.Azure dapat menyediakan klien layanan Azure secara otomatis dengan kelas TokenCredential dengan mencari appsettings.json atau file konfigurasi lainnya untuk nilai kredensial menggunakan abstraksi IConfiguration untuk .NET. Pendekatan ini memungkinkan pengembang untuk secara eksplisit mengatur nilai kredensial di berbagai lingkungan melalui konfigurasi daripada melalui kode aplikasi secara langsung.
Kredensial berikut dapat dibuat melalui konfigurasi:
- AzurePipelinesCredential
- ClientCertificateCredential
- ClientSecretCredential
- DefaultAzureCredential
- Kredensial Identitas Terkelola
- WorkloadIdentityCredential
Mengonfigurasi kredensial Azure
Klien layanan Azure yang terdaftar dengan AddAzureClients metode secara otomatis dikonfigurasi dengan instans DefaultAzureCredential jika tidak ada kredensial eksplisit yang disediakan melalui WithCredential metode ekstensi. Anda juga dapat mengambil alih global DefaultAzureCredential menggunakan nilai kredensial dari file konfigurasi saat mendaftarkan klien untuk membuat kredensial tertentu:
builder.Services.AddAzureClients(clientBuilder =>
{
// Register BlobServiceClient using credential from appsettings.json
clientBuilder.AddBlobServiceClient(builder.Configuration.GetSection("Storage"));
// Register ServiceBusClient using the fallback DefaultAzureCredential
clientBuilder.AddServiceBusClientWithNamespace(
"<your_namespace>.servicebus.windows.net");
});
File appsettings.json terkait:
"Storage": {
"serviceUri": "<service_uri>",
"credential": "managedidentity",
"clientId": "<client_id>"
}
Kredensial berikut ini juga mendukung properti AdditionallyAllowedTenants, yang menetapkan tenant Microsoft Entra selain tenant default yang kredensialnya dapat memperoleh token.
- AzurePipelinesCredential
- ClientCertificateCredential
- ClientSecretCredential
- DefaultAzureCredential
- WorkloadIdentityCredential
Tambahkan nilai wildcard * untuk memungkinkan kredensial mendapatkan token untuk penyewa mana pun dari Microsoft Entra yang dapat diakses oleh akun yang masuk. Jika tidak ada ID penyewa yang ditentukan, opsi ini tidak berpengaruh pada metode autentikasi tersebut, dan kredensial akan memperoleh token untuk penyewa yang diminta saat menggunakan metode tersebut.
{
"additionallyAllowedTenants": "<tenant_ids_separated_by_semicolon>"
}
Membuat instans ManagedIdentityCredential
Anda dapat mengonfigurasi kredensial untuk menggunakan identitas terkelola dengan cara berikut menggunakan nilai konfigurasi:
- Identitas terkelola yang diberikan oleh sistem
- Identitas terkelola yang ditetapkan pengguna
- Identitas terkelola sebagai kredensial identitas terfederasi
Untuk membuat instans Azure.Identity.ManagedIdentityCredential, tambahkan pasangan kunci-nilai berikut ke file appsettings.json Anda.
Identitas terkelola yang diberikan oleh sistem
{
"credential": "managedidentity"
}
Identitas terkelola yang ditetapkan pengguna
Identitas terkelola yang ditetapkan pengguna dapat digunakan dengan memberikan ID klien, ID sumber daya, atau ID objek.
{
"credential": "managedidentity",
"managedIdentityClientId": "<managed_identity_client_id>"
}
Identitas terkelola sebagai kredensial identitas terfederasi
Identitas terkelola sebagai kredensial identitas federasi didukung dalam Microsoft.Extensions.Azure versi 1.12.0 dan yang terbaru. Fitur ini tidak berfungsi dengan identitas terkelola yang ditetapkan sistem. Kredensial dapat dikonfigurasi dengan identitas terkelola yang ditetapkan pengguna dengan memberikan ID klien, ID sumber daya, atau ID objek.
{
"credential": "managedidentityasfederatedidentity",
"azureCloud": "<azure_cloud>",
"tenantId": "<tenant_id>",
"clientId": "<client_id>",
"managedIdentityClientId": "<managed_identity_client_id>"
}
Nilai azureCloud kunci digunakan untuk mengatur cakupan token akses Microsoft Entra. Ini bisa menjadi salah satu nilai berikut:
-
publicuntuk Azure Public Cloud -
usgovuntuk Azure US Government Cloud -
chinauntuk Azure yang dioperasikan oleh 21Vianet
Membuat instans AzurePipelinesCredential
Untuk membuat instans Azure.Identity.AzurePipelinesCredential, tambahkan pasangan kunci-nilai berikut ke file appsettings.json Anda:
{
"credential": "azurepipelines",
"clientId": "<client_id>",
"tenantId": "<tenant_id>",
"serviceConnectionId": "<service_connection_id>",
"systemAccessToken": "<system_access_token>"
}
Penting
AzurePipelinesCredential didukung dalam Microsoft.Extensions.Azure versi 1.11.0 dan yang lebih baru.
Membuat instans WorkloadIdentityCredential
Untuk membuat instans Azure.Identity.WorkloadIdentityCredential, tambahkan pasangan kunci-nilai berikut ke file appsettings.json Anda:
{
"credential": "workloadidentity",
"tenantId": "<tenant_id>",
"clientId": "<client_id>",
"tokenFilePath": "<token_file_path>"
}
Membuat instans ClientSecretCredential
Untuk membuat instans Azure.Identity.ClientSecretCredential, tambahkan pasangan kunci-nilai berikut ke file appsettings.json Anda:
{
"tenantId": "<tenant_id>",
"clientId": "<client_id>",
"clientSecret": "<client_secret>"
}
Membuat instans ClientCertificateCredential
Untuk membuat instans Azure.Identity.ClientCertificateCredential, tambahkan pasangan kunci-nilai berikut ke file appsettings.json Anda:
{
"tenantId": "<tenant_id>",
"clientId": "<client_id>",
"clientCertificate": "<client_certificate>",
"clientCertificateStoreLocation": "<client_certificate_store_location>"
}
Catatan
Kuncinya clientCertificateStoreLocation bersifat opsional. Jika kunci:
- Ada dan memiliki nilai kosong, nilai tersebut diabaikan.
- Tidak tersedia, default
CurrentUserdigunakan dari enum X509Credentials.StoreLocation.
Membuat instans DefaultAzureCredential
Untuk membuat instans Azure.Identity.DefaultAzureCredential, tambahkan pasangan kunci-nilai berikut ke file appsettings.json Anda:
{
"tenantId": "<tenant_id>",
"clientId": "<client_id>",
"managedIdentityResourceId": "<managed_identity_resource_id>"
}