Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Integreringen av Azure-klientbiblioteket för ASP.NET Core (Microsoft.Extensions.Azure) har stöd för att skapa olika Azure.Core.TokenCredential typer från nyckel/värde-par som definierats i appsettings.json och andra konfigurationsfiler. Autentiseringsuppgifterna motsvarar en delmängd av autentiseringsklasserna i Azure Identity-klientbiblioteket. I den här artikeln beskrivs stöd för olika TokenCredential typer och hur du konfigurerar nödvändiga nyckel/värde-par för varje typ.
Stöd för Azure-autentiseringsuppgifter via konfiguration
Microsoft.Extensions.Azure kan automatiskt ge Azure-tjänstklienter en TokenCredential klass genom att sökaappsettings.json eller andra konfigurationsfiler efter autentiseringsvärden med hjälp av abstraktionen IConfiguration för .NET. Med den här metoden kan utvecklare uttryckligen ange värden för autentiseringsuppgifter i olika miljöer via konfiguration i stället för direkt via appkod.
Följande autentiseringsuppgifter kan skapas via konfiguration:
- AzurePipelinesCredential
- Klientcertifikatautentisering
- ClientSecretCredential
- StandardAzureCredential
- ManagedIdentityCredential
- WorkloadIdentityCredential
Konfigurera Azure-autentiseringsuppgifter
Azure-tjänstklienter AddAzureClients som registrerats med metoden konfigureras automatiskt med en instans av DefaultAzureCredential om inga explicita autentiseringsuppgifter tillhandahålls via WithCredential tilläggsmetoden. Du kan också åsidosätta det globala DefaultAzureCredential med hjälp av autentiseringsvärden från konfigurationsfiler när du registrerar en klient för att skapa en specifik autentiseringsuppgift:
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");
});
Den associerade appsettings.json filen:
"Storage": {
"serviceUri": "<service_uri>",
"credential": "managedidentity",
"clientId": "<client_id>"
}
Följande autentiseringsuppgifter stöder också egenskapen AdditionallyAllowedTenants, som anger Microsoft Entra-klienter förutom standardklientorganisationen för vilka autentiseringsuppgifterna kan hämta tokens:
- AzurePipelinesCredential
- Klientcertifikatautentisering
- ClientSecretCredential
- StandardAzureCredential
- WorkloadIdentityCredential
Lägg till jokertecknets värde * så att autentiseringsuppgifterna kan hämta token för alla Microsoft Entra-klientorganisationer som det inloggade kontot kan komma åt. Om inga hyresgäst-ID:n anges har det här alternativet ingen effekt på den autentiseringsmetoden, och autentiseringsuppgifterna hämtar tokens för alla begärda hyresgäster när den metoden används.
{
"additionallyAllowedTenants": "<tenant_ids_separated_by_semicolon>"
}
Skapa en instans av ManagedIdentityCredential
Du kan konfigurera en autentiseringsuppgift för att använda en hanterad identitet på följande sätt med hjälp av konfigurationsvärden:
- Systemtilldelad hanterad identitet
- Användartilldelad hanterad identitet
- Hanterad identitet som en federerad identitetsautentiseringsuppgift
Om du vill skapa en instans av Azure.Identity.ManagedIdentityCredentiallägger du till följande nyckel/värde-par i dinappsettings.json-fil .
Systemtilldelad hanterad identitet
{
"credential": "managedidentity"
}
Användartilldelad hanterad identitet
En användartilldelad hanterad identitet kan användas genom att ange ett klient-ID, resurs-ID eller objekt-ID.
{
"credential": "managedidentity",
"managedIdentityClientId": "<managed_identity_client_id>"
}
Hanterad identitet som en federerad identitetsautentiseringsuppgift
Funktionen hanterad identitet som federerad identitetsautentisering stöds i Microsoft.Extensions.Azure version 1.12.0 och senare. Funktionen fungerar inte med systemtilldelad hanterad identitet. Autentiseringsuppgifterna kan konfigureras med en användartilldelad hanterad identitet genom att ange ett klient-ID, resurs-ID eller objekt-ID.
{
"credential": "managedidentityasfederatedidentity",
"azureCloud": "<azure_cloud>",
"tenantId": "<tenant_id>",
"clientId": "<client_id>",
"managedIdentityClientId": "<managed_identity_client_id>"
}
Nyckelvärdet azureCloud används för att ange omfånget för Microsoft Entra-åtkomsttoken. Det kan vara något av följande värden:
-
publicför Azure Public Cloud -
usgovför Azure US Government Cloud-tjänst -
chinaför Azure som drivs av 21Vianet
Skapa en instans av AzurePipelinesCredential
Om du vill skapa en instans av Azure.Identity.AzurePipelinesCredentiallägger du till följande nyckel/värde-par i dinappsettings.json-fil :
{
"credential": "azurepipelines",
"clientId": "<client_id>",
"tenantId": "<tenant_id>",
"serviceConnectionId": "<service_connection_id>",
"systemAccessToken": "<system_access_token>"
}
Viktigt!
AzurePipelinesCredential stöds i Microsoft.Extensions.Azure versionerna 1.11.0 och senare.
Skapa en instans av WorkloadIdentityCredential
Om du vill skapa en instans av Azure.Identity.WorkloadIdentityCredentiallägger du till följande nyckel/värde-par i dinappsettings.json-fil :
{
"credential": "workloadidentity",
"tenantId": "<tenant_id>",
"clientId": "<client_id>",
"tokenFilePath": "<token_file_path>"
}
Skapa en instans av ClientSecretCredential
Om du vill skapa en instans av Azure.Identity.ClientSecretCredentiallägger du till följande nyckel/värde-par i dinappsettings.json-fil :
{
"tenantId": "<tenant_id>",
"clientId": "<client_id>",
"clientSecret": "<client_secret>"
}
Skapa en instans av ClientCertificateCredential
Om du vill skapa en instans av Azure.Identity.ClientCertificateCredentiallägger du till följande nyckel/värde-par i dinappsettings.json-fil :
{
"tenantId": "<tenant_id>",
"clientId": "<client_id>",
"clientCertificate": "<client_certificate>",
"clientCertificateStoreLocation": "<client_certificate_store_location>"
}
Kommentar
Nyckeln clientCertificateStoreLocation är valfri. Om nyckeln:
- Om det finns och har ett tomt värde, ignoreras det.
- Om det inte är närvarande, används standardvärdet
CurrentUserfrån X509Credentials.StoreLocation enum.
Skapa en instans av DefaultAzureCredential
Om du vill skapa en instans av Azure.Identity.DefaultAzureCredentiallägger du till följande nyckel/värde-par i dinappsettings.json-fil :
{
"tenantId": "<tenant_id>",
"clientId": "<client_id>",
"managedIdentityResourceId": "<managed_identity_resource_id>"
}