Microsoft Entra hitelesítő adatok típusainak létrehozása konfigurációs fájlok használatával
A Microsoft.Extensions.Azure
kódtár támogatja a appsettings.json és más konfigurációs fájlokban definiált kulcs-érték párok különböző Azure.Core.TokenCredential típusainak létrehozását. A hitelesítő adatok típusai az Azure Identity ügyfélkódtár hitelesítő osztályainak egy részhalmazának felelnek meg. Ez a cikk a különböző TokenCredential
típusok támogatását és az egyes típusokhoz szükséges kulcs-érték párok konfigurálását ismerteti.
Azure-hitelesítő adatok támogatása konfigurációval
A Microsoft.Extensions.Azure
kódtár a .NET absztrakciójával automatikusan biztosíthatja az Azure-szolgáltatás ügyfeleinek az TokenCredential
osztályt, ha a .NET absztrakciójával keres appsettings.json vagy más konfigurációs fájlokat hitelesítő IConfiguration
adatokhoz. Ez a módszer lehetővé teszi a fejlesztők számára, hogy a hitelesítő adatok értékeit a konfiguráción keresztül, és nem közvetlenül az alkalmazáskódon keresztül állítsa be a különböző környezetekben.
A konfiguráció a következő hitelesítőadat-típusokat támogatja:
- ClientCertificateCredential
- ClientSecretCredential
- DefaultAzureCredential
- ManagedIdentityCredential
- WorkloadIdentityCredential
Azure-hitelesítő adatok konfigurálása
A AddAzureClients metódussal regisztrált Azure-szolgáltatásügyfelek automatikusan konfigurálva lesznek egy példánysal DefaultAzureCredential
, ha a bővítménymetódus nem WithCredential ad meg explicit hitelesítő adatokat. A konfigurációs fájlok hitelesítő adataival felülbírálhatja a globálist DefaultAzureCredential
is, amikor regisztrál egy ügyfelet egy adott hitelesítő adattípus létrehozásához:
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");
});
A társított appsettings.json fájl:
"Storage": {
"serviceUri": "<service_uri>",
"credential": "managedidentity",
"clientId": "<clientId>"
}
A következő hitelesítő adattípusok is támogatják a AdditionallyAllowedTenants
tulajdonságot, amely további Microsoft Entra-bérlőket határoz meg azon az alapértelmezett bérlőn túl, amelyhez a hitelesítő adat jogkivonatokat szerezhet be:
Adja hozzá a "*" helyettesítő karaktert, hogy a hitelesítő adatok jogkivonatokat szerezzenek be minden Olyan Microsoft Entra-bérlőhöz, amelyhez a bejelentkezett fiók hozzáfér. Ha nincs megadva bérlőazonosító, ez a beállítás nem lesz hatással erre a hitelesítési módszerre, és a hitelesítő adatok jogkivonatokat szereznek be a kért bérlőkhöz a metódus használatakor.
{
"additionallyAllowedTenants": "<tenant-ids-separated-by-semicolon>"
}
ManagedIdentityCredential
Típus létrehozása
A konfigurációs értékek használatával a felhasználó által hozzárendelt és a rendszer által hozzárendelt felügyelt identitásokat is létrehozhatja. Adja hozzá a következő kulcs-érték párokat a appsettings.json fájlhoz egy példány Azure.Identity.ManagedIdentityCredentiallétrehozásához.
Felhasználó által hozzárendelt felügyelt identitás
A felhasználó által hozzárendelt felügyelt identitás ügyfél-azonosító, erőforrás-azonosító vagy objektumazonosító megadásával használható:
Ügyfél-azonosító:
{ "credential": "managedidentity", "clientId": "<clientId>" }
Erőforrás-azonosító:
{ "credential": "managedidentity", "managedIdentityResourceId": "<managedIdentityResourceId>" }
Az erőforrás-azonosító az űrlapot veszi fel
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}
.Objektumazonosító:
{ "credential": "managedidentity", "managedIdentityObjectId": "<managedIdentityObjectId>" }
Fontos
A
managedIdentityObjectId
JSON tulajdonság az 1.8.0-s és újabb verziókbanMicrosoft.Extensions.Azure
támogatott.
Rendszer által hozzárendelt felügyelt identitás
{
"credential": "managedidentity"
}
WorkloadIdentityCredential
Típus létrehozása
Adja hozzá a következő kulcs-érték párokat a appsettings.json fájlhoz:Azure.Identity.WorkloadIdentityCredential
{
"credential": "workloadidentity",
"tenantId": "<tenantId>",
"clientId": "<clientId>",
"tokenFilePath": "<tokenFilePath>"
}
ClientSecretCredential
Típus létrehozása
Adja hozzá a következő kulcs-érték párokat a appsettings.json fájlhoz:Azure.Identity.ClientSecretCredential
{
"tenantId": "<tenantId>",
"clientId": "<clientId>",
"clientSecret": "<clientSecret>"
}
ClientCertificateCredential
Típus létrehozása
Adja hozzá a következő kulcs-érték párokat a appsettings.json fájlhoz:Azure.Identity.ClientCertificateCredential
{
"tenantId": "<tenantId>",
"clientId": "<clientId>",
"clientCertificate": "<clientCertificate>",
"clientCertificateStoreLocation": "<clientCertificateStoreLocation>",
"additionallyAllowedTenants": "<tenant-ids-separated-by-semicolon>"
}
Feljegyzés
A clientCertificateStoreLocation
kulcs-érték additionallyAllowedTenants
párok nem kötelezőek. Ha a kulcsok jelen vannak, és üres értékekkel rendelkeznek, a rendszer figyelmen kívül hagyja őket. Ha nincs clientCertificateStoreLocation
megadva, a rendszer az alapértelmezett CurrentUser
értéket használja az X509Credentials.StoreLocation enumerálásból.
DefaultAzureCredential
Típus létrehozása
Adja hozzá a következő kulcs-érték párokat a appsettings.json fájlhoz:Azure.Identity.DefaultAzureCredential
{
"tenantId": "<tenantId>",
"clientId": "<clientId>",
"managedIdentityResourceId": "<managedIdentityResourceId>"
}