Udostępnij przez


Tworzenie poświadczeń biblioteki tożsamości platformy Azure za pomocą plików konfiguracji

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:

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.

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:

  • public dla chmury publicznej platformy Azure
  • usgov dla chmury rządowej Azure US Government Cloud
  • china dla 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 CurrentUser jest 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>"
}