Membuat jenis kredensial Microsoft Entra menggunakan file konfigurasi
Pustaka Microsoft.Extensions.Azure
mendukung pembuatan berbagai Azure.Core.TokenCredential jenis dari pasangan kunci-nilai yang ditentukan dalam appsettings.json dan file konfigurasi lainnya. Jenis kredensial sesuai dengan subset 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
Pustaka dapat secara otomatis menyediakan kelas kepada klien layanan Azure dengan TokenCredential
mencari appsettings.json atau file konfigurasi lainnya untuk nilai kredensial menggunakan IConfiguration
abstraksi untuk .NET. Pendekatan ini memungkinkan pengembang untuk secara eksplisit mengatur nilai kredensial di berbagai lingkungan melalui konfigurasi daripada melalui kode aplikasi secara langsung.
Jenis kredensial berikut didukung melalui konfigurasi:
- ClientCertificateCredential
- ClientSecretCredential
- DefaultAzureCredential
- ManagedIdentityCredential
- 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 jenis kredensial tertentu:
builder.Services.AddAzureClients(clientBuilder =>
{
// Register BlobServiceClient using credentials from appsettings.json
clientBuilder.AddBlobServiceClient(builder.Configuration.GetSection("Storage"));
// Register ServiceBusClient using the fallback DefaultAzureCredential credentials
clientBuilder.AddServiceBusClientWithNamespace(
"<your_namespace>.servicebus.windows.net");
});
File appsettings.json terkait:
"Storage": {
"serviceUri": "<service_uri>",
"credential": "managedidentity",
"clientId": "<clientId>"
}
Jenis kredensial berikut ini juga mendukung AdditionallyAllowedTenants
properti , yang menentukan penyewa Microsoft Entra tambahan di luar penyewa default yang kredensialnya dapat memperoleh token:
Tambahkan nilai kartubebas "*" untuk memungkinkan kredensial memperoleh token untuk penyewa Microsoft Entra apa pun yang dapat diakses akun yang masuk. Jika tidak ada ID penyewa yang ditentukan, opsi ini tidak akan 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 ManagedIdentityCredential
jenis
Anda dapat membuat identitas terkelola yang ditetapkan pengguna dan ditetapkan sistem menggunakan nilai konfigurasi. Tambahkan pasangan kunci-nilai berikut ke file appsettings.json Anda untuk membuat instans Azure.Identity.ManagedIdentityCredential.
Identitas terkelola yang ditetapkan pengguna
Identitas terkelola yang ditetapkan pengguna dapat digunakan dengan memberikan ID klien, ID sumber daya, atau ID objek:
ID Klien:
{ "credential": "managedidentity", "clientId": "<clientId>" }
ID Sumber Daya:
{ "credential": "managedidentity", "managedIdentityResourceId": "<managedIdentityResourceId>" }
ID sumber daya mengambil formulir
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}
.ID Objek:
{ "credential": "managedidentity", "managedIdentityObjectId": "<managedIdentityObjectId>" }
Penting
Properti
managedIdentityObjectId
JSON didukung dalamMicrosoft.Extensions.Azure
versi 1.8.0 dan yang lebih baru.
Identitas terkelola yang ditetapkan sistem
{
"credential": "managedidentity"
}
Membuat WorkloadIdentityCredential
jenis
Tambahkan pasangan kunci-nilai berikut ke file appsettings.json Anda untuk membuat Azure.Identity.WorkloadIdentityCredential:
{
"credential": "workloadidentity",
"tenantId": "<tenantId>",
"clientId": "<clientId>",
"tokenFilePath": "<tokenFilePath>"
}
Membuat ClientSecretCredential
jenis
Tambahkan pasangan kunci-nilai berikut ke file appsettings.json Anda untuk membuat Azure.Identity.ClientSecretCredential:
{
"tenantId": "<tenantId>",
"clientId": "<clientId>",
"clientSecret": "<clientSecret>"
}
Membuat ClientCertificateCredential
jenis
Tambahkan pasangan kunci-nilai berikut ke file appsettings.json Anda untuk membuat Azure.Identity.ClientCertificateCredential:
{
"tenantId": "<tenantId>",
"clientId": "<clientId>",
"clientCertificate": "<clientCertificate>",
"clientCertificateStoreLocation": "<clientCertificateStoreLocation>",
"additionallyAllowedTenants": "<tenant-ids-separated-by-semicolon>"
}
Catatan
clientCertificateStoreLocation
Pasangan kunci-nilai dan additionallyAllowedTenants
bersifat opsional. Jika kunci ada dan memiliki nilai kosong, kunci akan diabaikan. Jika tidak clientCertificateStoreLocation
ditentukan, default CurrentUser
digunakan dari X509Credentials.StoreLocation enum.
Membuat DefaultAzureCredential
jenis
Tambahkan pasangan kunci-nilai berikut ke file appsettings.json Anda untuk membuat Azure.Identity.DefaultAzureCredential:
{
"tenantId": "<tenantId>",
"clientId": "<clientId>",
"managedIdentityResourceId": "<managedIdentityResourceId>"
}