Sdílet prostřednictvím


Vytvoření přihlašovacích údajů knihovny Identit Azure prostřednictvím konfiguračních souborů

Integrace klientské knihovny Azure pro ASP.NET Core (Microsoft.Extensions.Azure) podporuje vytváření různých Azure.Core.TokenCredential typů z párů klíč-hodnota definovaných v appsettings.json a dalších konfiguračních souborech. Přihlašovací údaje odpovídají podmnožině tříd přihlašovacích údajů v klientské knihovně azure Identity. Tento článek popisuje podporu různých TokenCredential typů a způsob konfigurace požadovaných párů klíč-hodnota pro každý typ.

Podpora přihlašovacích údajů Azure prostřednictvím konfigurace

Microsoft.Extensions.Azure může automaticky poskytovat klientům služeb Azure třídu TokenCredential tím, že vyhledá hodnoty přihlašovacích údajů v konfiguračních souborech, jako je appsettings.json, pomocí abstrakce pro .NET. Tento přístup umožňuje vývojářům explicitně nastavit hodnoty přihlašovacích údajů v různých prostředích prostřednictvím konfigurace, nikoli přímo prostřednictvím kódu aplikace.

Pomocí konfigurace je možné vytvořit následující přihlašovací údaje:

Konfigurace přihlašovacích údajů Azure

Klienti služby Azure zaregistrovaní v metodě AddAzureClients se automaticky konfigurují s instancí, pokud DefaultAzureCredential prostřednictvím metody rozšíření nejsou zadány WithCredential žádné explicitní přihlašovací údaje. Globální DefaultAzureCredential můžete také přepsat pomocí hodnot přihlašovacích údajů z konfiguračních souborů při registraci klienta k vytvoření specifických přihlašovacích údajů.

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");
});

Přidružený soubor appsettings.json :

"Storage": {
    "serviceUri": "<service_uri>",
    "credential": "managedidentity",
    "clientId": "<client_id>"
}

Následující přihlašovací údaje také podporují AdditionallyAllowedTenants vlastnost, která určuje tenanty Microsoft Entra nad rámec výchozího tenanta, pro kterého mohou přihlašovací údaje získat tokeny:

Přidejte hodnotu * zástupného znaku, která umožní přihlašovacím údajům získat tokeny pro jakéhokoli tenanta Microsoft Entra, ke které má přihlášený účet přístup. Pokud nejsou zadána žádná ID tenanta, tato možnost nemá žádný vliv na tuto metodu ověřování a přihlašovací údaje při použití této metody získají tokeny pro libovolného požadovaného tenanta.

{
    "additionallyAllowedTenants": "<tenant_ids_separated_by_semicolon>"
}

Vytvoření instance ManagedIdentityCredential

Přihlašovací údaje můžete nakonfigurovat tak, aby využívaly spravovanou identitu následujícími způsoby pomocí hodnot konfigurace:

  • Spravovaná identita přiřazená systémem
  • Spravovaná identita přiřazená uživatelem
  • Spravovaná identita jako přihlašovací údaje federované identity

Pokud chcete vytvořit instanci Azure.Identity.ManagedIdentityCredential, přidejte do souboruappsettings.json následující páry klíčů a hodnot.

Spravovaná identita přiřazená systémem

{
    "credential": "managedidentity"
}

Spravovaná identita přiřazená uživatelem

Spravovanou identitu přiřazenou uživatelem je možné použít zadáním ID klienta, ID prostředku nebo ID objektu.

{
    "credential": "managedidentity",
    "managedIdentityClientId": "<managed_identity_client_id>"
}

Spravovaná identita jako přihlašovací údaje federované identity

Spravovaná identita jako přihlašovací údaj federované identity je podporována ve Microsoft.Extensions.Azure verzích 1.12.0 a novějších. Tato funkce nefunguje se spravovanou identitou přiřazenou systémem. Přihlašovací údaje je možné nakonfigurovat pomocí spravované identity přiřazené uživatelem zadáním ID klienta, ID prostředku nebo ID objektu.

{
    "credential": "managedidentityasfederatedidentity",
    "azureCloud": "<azure_cloud>",
    "tenantId": "<tenant_id>",
    "clientId": "<client_id>",
    "managedIdentityClientId": "<managed_identity_client_id>"
}

Hodnota azureCloud klíče se používá k nastavení oboru přístupového tokenu Microsoft Entra. Může to být jedna z následujících hodnot:

  • public pro veřejný cloud Azure
  • usgov pro cloud Azure pro vládu USA
  • china pro Azure provozovaný společností 21Vianet

Vytvoření instance AzurePipelinesCredential

Pokud chcete vytvořit instanci Azure.Identity.AzurePipelinesCredential, přidejte do souboru appsettings.json následující páry klíč-hodnota:

{
    "credential": "azurepipelines",
    "clientId": "<client_id>",
    "tenantId": "<tenant_id>",
    "serviceConnectionId": "<service_connection_id>",
    "systemAccessToken": "<system_access_token>"
}

Důležité

AzurePipelinesCredential podporuje se ve Microsoft.Extensions.Azure verzích 1.11.0 a novějších.

Vytvoření instance WorkloadIdentityCredential

Pokud chcete vytvořit instanci Azure.Identity.WorkloadIdentityCredential, přidejte do souboru appsettings.json následující páry klíč-hodnota:

{
    "credential": "workloadidentity",
    "tenantId": "<tenant_id>",
    "clientId": "<client_id>",
    "tokenFilePath": "<token_file_path>"
}

Vytvoření instance ClientSecretCredential

Pokud chcete vytvořit instanci Azure.Identity.ClientSecretCredential, přidejte do souboru appsettings.json následující páry klíč-hodnota:

{
    "tenantId": "<tenant_id>",
    "clientId": "<client_id>",
    "clientSecret": "<client_secret>"
}

Vytvoření instance ClientCertificateCredential

Pokud chcete vytvořit instanci Azure.Identity.ClientCertificateCredential, přidejte do souboru appsettings.json následující páry klíč-hodnota:

{
    "tenantId": "<tenant_id>",
    "clientId": "<client_id>",
    "clientCertificate": "<client_certificate>",
    "clientCertificateStoreLocation": "<client_certificate_store_location>"
}

Poznámka:

Klíč clientCertificateStoreLocation je volitelný. Pokud klíč:

  • Pokud je přítomna a má prázdnou hodnotu, je ignorována.
  • Není k dispozici, výchozí hodnota CurrentUser se používá z výčtu X509Credentials.StoreLocation .

Vytvoření instance DefaultAzureCredential

Pokud chcete vytvořit instanci Azure.Identity.DefaultAzureCredential, přidejte do souboru appsettings.json následující páry klíč-hodnota:

{
    "tenantId": "<tenant_id>",
    "clientId": "<client_id>",
    "managedIdentityResourceId": "<managed_identity_resource_id>"
}