Tworzenie typów poświadczeń entra firmy Microsoft przy użyciu plików konfiguracji
Biblioteka Microsoft.Extensions.Azure
obsługuje tworzenie różnych Azure.Core.TokenCredential typów z par klucz-wartość zdefiniowanych w appsettings.json i innych plikach konfiguracji. Typy poświadczeń odpowiadają podzestawowi klas poświadczeń w bibliotece klienta tożsamości platformy Azure. W tym artykule opisano obsługę różnych TokenCredential
typów i sposób konfigurowania wymaganych par klucz-wartość dla każdego typu.
Obsługa poświadczeń platformy Azure za pośrednictwem konfiguracji
Biblioteka Microsoft.Extensions.Azure
może automatycznie udostępniać klientom usługi platformy Azure klasę TokenCredential
, wyszukując appsettings.json lub inne pliki konfiguracji dla wartości poświadczeń przy użyciu IConfiguration
abstrakcji dla platformy .NET. Takie podejście umożliwia deweloperom jawne ustawianie wartości poświadczeń w różnych środowiskach za pośrednictwem konfiguracji, a nie bezpośrednio za pośrednictwem kodu aplikacji.
Następujące typy poświadczeń są obsługiwane za pośrednictwem konfiguracji:
- ClientCertificateCredential
- ClientSecretCredential
- Wartość domyślnaAzureCredential
- ManagedIdentityCredential
- WorkloadIdentityCredential
Konfigurowanie poświadczeń platformy Azure
Klienci usługi platformy Azure zarejestrowani w metodzie AddAzureClients są automatycznie konfigurowani przy użyciu wystąpienia DefaultAzureCredential
, jeśli nie podano jawnych poświadczeń za pośrednictwem WithCredential metody rozszerzenia. Możesz również zastąpić globalny DefaultAzureCredential
przy użyciu wartości poświadczeń z plików konfiguracji podczas rejestrowania klienta w celu utworzenia określonego typu poświadczeń:
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");
});
Skojarzony plik appsettings.json :
"Storage": {
"serviceUri": "<service_uri>",
"credential": "managedidentity",
"clientId": "<clientId>"
}
Następujące typy poświadczeń obsługują AdditionallyAllowedTenants
również właściwość , która określa dodatkowe dzierżawy firmy Microsoft Entra poza domyślną dzierżawą, dla której poświadczenia mogą uzyskiwać tokeny:
Dodaj wartość symbolu wieloznakowego "*", aby umożliwić poświadczeniu uzyskanie tokenów dla dowolnej dzierżawy firmy Microsoft Entra, do którego może uzyskiwać dostęp zalogowany konto. Jeśli nie określono żadnych identyfikatorów dzierżawy, ta opcja nie będzie miała wpływu na tę metodę uwierzytelniania, a poświadczenie uzyska tokeny dla dowolnej żądanej dzierżawy podczas korzystania z tej metody.
{
"additionallyAllowedTenants": "<tenant-ids-separated-by-semicolon>"
}
Tworzenie ManagedIdentityCredential
typu
Tożsamości zarządzane przypisane przez użytkownika i przypisane przez system można tworzyć przy użyciu wartości konfiguracji. Dodaj następujące pary klucz-wartość do pliku appsettings.json , aby utworzyć wystąpienie klasy Azure.Identity.ManagedIdentityCredential.
Tożsamości zarządzane przypisane przez użytkownika
Tożsamość zarządzana przypisana przez użytkownika może być używana przez podanie identyfikatora klienta, identyfikatora zasobu lub identyfikatora obiektu:
Identyfikator klienta:
{ "credential": "managedidentity", "clientId": "<clientId>" }
Identyfikator zasobu:
{ "credential": "managedidentity", "managedIdentityResourceId": "<managedIdentityResourceId>" }
Identyfikator zasobu ma postać
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}
.Identyfikator obiektu:
{ "credential": "managedidentity", "managedIdentityObjectId": "<managedIdentityObjectId>" }
Ważne
Właściwość JSON jest obsługiwana
managedIdentityObjectId
wMicrosoft.Extensions.Azure
wersjach 1.8.0 i nowszych.
Tożsamości zarządzane przypisane przez system
{
"credential": "managedidentity"
}
Tworzenie WorkloadIdentityCredential
typu
Dodaj następujące pary klucz-wartość do pliku appsettings.json , aby utworzyć element Azure.Identity.WorkloadIdentityCredential:
{
"credential": "workloadidentity",
"tenantId": "<tenantId>",
"clientId": "<clientId>",
"tokenFilePath": "<tokenFilePath>"
}
Tworzenie ClientSecretCredential
typu
Dodaj następujące pary klucz-wartość do pliku appsettings.json , aby utworzyć element Azure.Identity.ClientSecretCredential:
{
"tenantId": "<tenantId>",
"clientId": "<clientId>",
"clientSecret": "<clientSecret>"
}
Tworzenie ClientCertificateCredential
typu
Dodaj następujące pary klucz-wartość do pliku appsettings.json , aby utworzyć element Azure.Identity.ClientCertificateCredential:
{
"tenantId": "<tenantId>",
"clientId": "<clientId>",
"clientCertificate": "<clientCertificate>",
"clientCertificateStoreLocation": "<clientCertificateStoreLocation>",
"additionallyAllowedTenants": "<tenant-ids-separated-by-semicolon>"
}
Uwaga
Pary clientCertificateStoreLocation
i additionallyAllowedTenants
klucz-wartość są opcjonalne. Jeśli klucze są obecne i mają puste wartości, są ignorowane. Jeśli nie clientCertificateStoreLocation
zostanie określony, zostanie użyta wartość domyślna CurrentUser
z wyliczenia X509Credentials.StoreLocation .
Tworzenie DefaultAzureCredential
typu
Dodaj następujące pary klucz-wartość do pliku appsettings.json , aby utworzyć element Azure.Identity.DefaultAzureCredential:
{
"tenantId": "<tenantId>",
"clientId": "<clientId>",
"managedIdentityResourceId": "<managedIdentityResourceId>"
}