Vytvoření typů přihlašovacích údajů Microsoft Entra pomocí konfiguračních souborů
Knihovna 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. Typy přihlašovacích údajů 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
Knihovna Microsoft.Extensions.Azure
může automaticky poskytovat klientům TokenCredential
služeb Azure třídu vyhledáváním appsettings.json nebo jiných konfiguračních souborů pro hodnoty přihlašovacích údajů pomocí IConfiguration
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.
Konfigurace podporuje následující typy přihlašovacích údajů:
- ClientCertificateCredential
- ClientSecretCredential
- DefaultAzureCredential
- ManagedIdentityCredential
- WorkloadIdentityCredential
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í hodnoty můžete také přepsat DefaultAzureCredential
pomocí hodnot přihlašovacích údajů z konfiguračních souborů při registraci klienta a vytvořit konkrétní typ přihlašovacích údajů:
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");
});
Přidružený soubor appsettings.json :
"Storage": {
"serviceUri": "<service_uri>",
"credential": "managedidentity",
"clientId": "<clientId>"
}
Následující typy přihlašovacích údajů také podporují AdditionallyAllowedTenants
vlastnost, která určuje další tenanty Microsoft Entra nad rámec výchozího tenanta, pro kterého mohou přihlašovací údaje získat tokeny:
Přidejte hodnotu se zástupnými znamény "*", aby přihlašovací údaje mohly získat tokeny pro libovolného tenanta Microsoft Entra, ke které má přihlášený účet přístup. Pokud nejsou zadána žádná ID tenanta, tato možnost nebude mít žá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í ManagedIdentityCredential
typu
Spravované identity přiřazené uživatelem i systémem můžete vytvářet pomocí hodnot konfigurace. Přidejte do souboru appsettings.json následující páry klíč-hodnota pro vytvoření instance Azure.Identity.ManagedIdentityCredential.
Spravované identity 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:
ID klienta:
{ "credential": "managedidentity", "clientId": "<clientId>" }
ID prostředku:
{ "credential": "managedidentity", "managedIdentityResourceId": "<managedIdentityResourceId>" }
ID prostředku má tvar
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}
.ID objektu:
{ "credential": "managedidentity", "managedIdentityObjectId": "<managedIdentityObjectId>" }
Důležité
Vlastnost
managedIdentityObjectId
JSON je podporována veMicrosoft.Extensions.Azure
verzích 1.8.0 a novějších.
Spravované identity přiřazené systémem
{
"credential": "managedidentity"
}
Vytvoření WorkloadIdentityCredential
typu
Do souboru appsettings.json přidejte následující páry klíč-hodnota a vytvořteAzure.Identity.WorkloadIdentityCredential:
{
"credential": "workloadidentity",
"tenantId": "<tenantId>",
"clientId": "<clientId>",
"tokenFilePath": "<tokenFilePath>"
}
Vytvoření ClientSecretCredential
typu
Do souboru appsettings.json přidejte následující páry klíč-hodnota a vytvořteAzure.Identity.ClientSecretCredential:
{
"tenantId": "<tenantId>",
"clientId": "<clientId>",
"clientSecret": "<clientSecret>"
}
Vytvoření ClientCertificateCredential
typu
Do souboru appsettings.json přidejte následující páry klíč-hodnota a vytvořteAzure.Identity.ClientCertificateCredential:
{
"tenantId": "<tenantId>",
"clientId": "<clientId>",
"clientCertificate": "<clientCertificate>",
"clientCertificateStoreLocation": "<clientCertificateStoreLocation>",
"additionallyAllowedTenants": "<tenant-ids-separated-by-semicolon>"
}
Poznámka:
additionallyAllowedTenants
Páry clientCertificateStoreLocation
klíč-hodnota jsou volitelné. Pokud jsou klíče přítomné a mají prázdné hodnoty, budou ignorovány. Pokud není zadána žádná clientCertificateStoreLocation
, použije se výchozí hodnota CurrentUser
z výčtu X509Credentials.StoreLocation .
Vytvoření DefaultAzureCredential
typu
Do souboru appsettings.json přidejte následující páry klíč-hodnota a vytvořteAzure.Identity.DefaultAzureCredential:
{
"tenantId": "<tenantId>",
"clientId": "<clientId>",
"managedIdentityResourceId": "<managedIdentityResourceId>"
}