Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Integracja biblioteki klienta Azure dla ASP.NET Core (Microsoft.Extensions.Azure) obsługuje tworzenie różnych Azure.Core.TokenCredential typów na podstawie par klucz-wartość zdefiniowanych w appsettings.json i innych plikach konfiguracji. Poświadczenia 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
Microsoft.Extensions.Azure może automatycznie udostępniać klientom usług Azure klasę TokenCredential, wyszukując appsettings.json lub inne pliki konfiguracyjne dla wartości poświadczeń, korzystając z abstrakcji IConfiguration dla .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 poświadczenia można utworzyć za pomocą konfiguracji:
- AzurePipelinesCredential
- Poświadczenie certyfikatu klienta
- 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żna 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 poświadczenia:
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");
});
Skojarzony plik appsettings.json :
"Storage": {
"serviceUri": "<service_uri>",
"credential": "managedidentity",
"clientId": "<client_id>"
}
Następujące poświadczenia obsługują również właściwość AdditionallyAllowedTenants, która określa dzierżawy Microsoft Entra inne niż domyślna dzierżawa, dla której poświadczenia mogą uzyskiwać tokeny.
- AzurePipelinesCredential
- Poświadczenie certyfikatu klienta
- ClientSecretCredential
- Wartość domyślnaAzureCredential
- WorkloadIdentityCredential
Dodaj wartość symbolu wieloznacznego *, aby poświadczenie mogło uzyskać tokeny dla dowolnej dzierżawy Microsoft Entra, do której dostęp ma konto zalogowane. Jeśli nie określono żadnych identyfikatorów dzierżawy, ta opcja nie wpływa na daną metodę uwierzytelniania, a poświadczenie pozyska tokeny dla dowolnej dzierżawy, która zostanie zażądana przy użyciu tej metody.
{
"additionallyAllowedTenants": "<tenant_ids_separated_by_semicolon>"
}
Tworzenie wystąpienia ManagedIdentityCredential
Możesz skonfigurować poświadczenie do korzystania z tożsamości zarządzanej w następujący sposób przy użyciu wartości konfiguracji:
- Zarządzana tożsamość przypisana przez system
- Tożsamość zarządzana przypisana użytkownikowi
- Zarządzana tożsamość jako poświadczenie tożsamości federacyjnej
Aby utworzyć wystąpienie Azure.Identity.ManagedIdentityCredential, dodaj następujące pary klucz-wartość do pliku appsettings.json.
Zarządzana tożsamość przypisana przez system
{
"credential": "managedidentity"
}
Tożsamość zarządzana przypisana użytkownikowi
Tożsamość zarządzana przypisana przez użytkownika może być używana przez podanie identyfikatora klienta, identyfikatora zasobu lub identyfikatora obiektu.
{
"credential": "managedidentity",
"managedIdentityClientId": "<managed_identity_client_id>"
}
Zarządzana tożsamość jako poświadczenie tożsamości federacyjnej
Tożsamość zarządzana jako funkcja poświadczeń tożsamości federacyjnej jest obsługiwana w Microsoft.Extensions.Azure wersjach 1.12.0 i nowszych. Ta funkcja nie działa z tożsamością zarządzaną przypisaną przez system. Poświadczenia można skonfigurować przy użyciu tożsamości zarządzanej przypisanej przez użytkownika, podając identyfikator klienta, identyfikator zasobu lub identyfikator obiektu.
{
"credential": "managedidentityasfederatedidentity",
"azureCloud": "<azure_cloud>",
"tenantId": "<tenant_id>",
"clientId": "<client_id>",
"managedIdentityClientId": "<managed_identity_client_id>"
}
Wartość azureCloud klucza służy do ustawiania zakresu tokenu dostępu firmy Microsoft Entra. Może to być jedna z następujących wartości:
-
publicdla chmury publicznej platformy Azure -
usgovdla chmury rządowej Azure US Government Cloud -
chinadla platformy Azure obsługiwanej przez firmę 21Vianet
Tworzenie wystąpienia AzurePipelinesCredential
Aby utworzyć instancję Azure.Identity.AzurePipelinesCredential, dodaj następujące klucze i wartości do pliku appsettings.json.
{
"credential": "azurepipelines",
"clientId": "<client_id>",
"tenantId": "<tenant_id>",
"serviceConnectionId": "<service_connection_id>",
"systemAccessToken": "<system_access_token>"
}
Ważne
AzurePipelinesCredential jest obsługiwany w Microsoft.Extensions.Azure wersji 1.11.0 i nowszych.
Tworzenie wystąpienia WorkloadIdentityCredential
Aby utworzyć instancję Azure.Identity.WorkloadIdentityCredential, dodaj następujące klucze i wartości do pliku appsettings.json.
{
"credential": "workloadidentity",
"tenantId": "<tenant_id>",
"clientId": "<client_id>",
"tokenFilePath": "<token_file_path>"
}
Tworzenie wystąpienia ClientSecretCredential
Aby utworzyć instancję Azure.Identity.ClientSecretCredential, dodaj następujące klucze i wartości do pliku appsettings.json.
{
"tenantId": "<tenant_id>",
"clientId": "<client_id>",
"clientSecret": "<client_secret>"
}
Tworzenie wystąpienia ClientCertificateCredential
Aby utworzyć instancję Azure.Identity.ClientCertificateCredential, dodaj następujące klucze i wartości do pliku appsettings.json.
{
"tenantId": "<tenant_id>",
"clientId": "<client_id>",
"clientCertificate": "<client_certificate>",
"clientCertificateStoreLocation": "<client_certificate_store_location>"
}
Uwaga
Klucz clientCertificateStoreLocation jest opcjonalny. Jeśli klucz:
- Jest obecna i ma pustą wartość, jest ignorowana.
- Nie jest obecny, wartość domyślna
CurrentUserjest używana z wyliczenia X509Credentials.StoreLocation .
Tworzenie wystąpienia DefaultAzureCredential
Aby utworzyć instancję Azure.Identity.DefaultAzureCredential, dodaj następujące klucze i wartości do pliku appsettings.json.
{
"tenantId": "<tenant_id>",
"clientId": "<client_id>",
"managedIdentityResourceId": "<managed_identity_resource_id>"
}