Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
L'integrazione della libreria client di Azure per ASP.NET Core (Microsoft.Extensions.Azure) supporta la creazione di tipi diversi Azure.Core.TokenCredential da coppie chiave-valore definite in appsettings.json e altri file di configurazione. Le credenziali corrispondono a un subset delle classi di credenziali nella libreria client di Azure Identity. Questo articolo descrive il supporto per tipi TokenCredential diversi e come configurare le coppie chiave-valore necessarie per ogni tipo.
Supporto per le credenziali di Azure tramite la configurazione
Microsoft.Extensions.Azure può fornire automaticamente ai client del servizio di Azure una TokenCredential classe cercando appsettings.json o altri file di configurazione per i valori delle credenziali usando l'astrazione IConfiguration per .NET. Questo approccio consente agli sviluppatori di impostare in modo esplicito i valori delle credenziali in ambienti diversi tramite la configurazione anziché direttamente tramite il codice dell'app.
È possibile creare le credenziali seguenti tramite la configurazione:
- AzurePipelinesCredential
- ClientCertificateCredential
- ClientSecretCredential
- DefaultAzureCredential
- ManagedIdentityCredential
- WorkloadIdentityCredential
Configurare credenziali Azure
I client del servizio di Azure registrati con il metodo AddAzureClients vengono configurati automaticamente con un'istanza di DefaultAzureCredential se non vengono fornite credenziali esplicite tramite il metodo di estensione WithCredential. È anche possibile eseguire l'override del globale DefaultAzureCredential usando i valori delle credenziali dai file di configurazione durante la registrazione di un client per creare credenziali specifiche:
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");
});
File appsettings.json associato:
"Storage": {
"serviceUri": "<service_uri>",
"credential": "managedidentity",
"clientId": "<client_id>"
}
Le seguenti credenziali supportano anche la proprietà AdditionallyAllowedTenants che specifica i tenant di Microsoft Entra oltre il tenant predefinito per cui le credenziali sono in grado di acquisire token:
- AzurePipelinesCredential
- ClientCertificateCredential
- ClientSecretCredential
- DefaultAzureCredential
- WorkloadIdentityCredential
Aggiungere il valore wildcard * per consentire alle credenziali di acquisire i token per qualsiasi tenant di Microsoft Entra a cui l'account connesso può accedere. Se non vengono specificati ID tenant, questa opzione non ha alcun effetto su tale metodo di autenticazione e le credenziali acquisiranno i token per qualsiasi tenant richiesto quando si usa tale metodo.
{
"additionallyAllowedTenants": "<tenant_ids_separated_by_semicolon>"
}
Creare un'istanza di ManagedIdentityCredential
È possibile configurare una credenziale per usare un'identità gestita nei modi seguenti usando i valori di configurazione:
- Identità gestita assegnata dal sistema
- Identità gestita assegnata dall'utente
- Identità gestita come credenziale di identità federata
Per creare un'istanza di Azure.Identity.ManagedIdentityCredential, aggiungere le coppie chiave-valore seguenti al file appsettings.json .
Identità gestita assegnata dal sistema
{
"credential": "managedidentity"
}
Identità gestita assegnata dall'utente
Un'identità gestita assegnata dall'utente può essere usata fornendo un ID client, un ID risorsa o un ID oggetto.
{
"credential": "managedidentity",
"managedIdentityClientId": "<managed_identity_client_id>"
}
Identità gestita come credenziale di identità federata
L'identità gestita come caratteristica delle credenziali delle identità federate è supportata nelle Microsoft.Extensions.Azure versioni 1.12.0 e successive. La funzionalità non funziona con l'identità gestita assegnata dal sistema. Le credenziali possono essere configurate con un'identità gestita assegnata dall'utente fornendo un ID client, un ID risorsa o un ID oggetto.
{
"credential": "managedidentityasfederatedidentity",
"azureCloud": "<azure_cloud>",
"tenantId": "<tenant_id>",
"clientId": "<client_id>",
"managedIdentityClientId": "<managed_identity_client_id>"
}
Il valore della azureCloud chiave viene usato per impostare l'ambito del token di accesso di Microsoft Entra. Può essere uno dei valori seguenti:
-
publicper il cloud pubblico di Azure -
usgovper Azure Cloud del Governo degli Stati Uniti -
chinaper Azure gestito da 21Vianet
Creare un'istanza di AzurePipelinesCredential
Per creare un'istanza di Azure.Identity.AzurePipelinesCredential, aggiungere le coppie chiave-valore seguenti al file appsettings.json :
{
"credential": "azurepipelines",
"clientId": "<client_id>",
"tenantId": "<tenant_id>",
"serviceConnectionId": "<service_connection_id>",
"systemAccessToken": "<system_access_token>"
}
Importante
AzurePipelinesCredential è supportato nelle Microsoft.Extensions.Azure versioni 1.11.0 e successive.
Creare un'istanza di WorkloadIdentityCredential
Per creare un'istanza di Azure.Identity.WorkloadIdentityCredential, aggiungere le coppie chiave-valore seguenti al file appsettings.json :
{
"credential": "workloadidentity",
"tenantId": "<tenant_id>",
"clientId": "<client_id>",
"tokenFilePath": "<token_file_path>"
}
Creare un'istanza di ClientSecretCredential
Per creare un'istanza di Azure.Identity.ClientSecretCredential, aggiungere le coppie chiave-valore seguenti al file appsettings.json :
{
"tenantId": "<tenant_id>",
"clientId": "<client_id>",
"clientSecret": "<client_secret>"
}
Creare un'istanza di ClientCertificateCredential
Per creare un'istanza di Azure.Identity.ClientCertificateCredential, aggiungere le coppie chiave-valore seguenti al file appsettings.json :
{
"tenantId": "<tenant_id>",
"clientId": "<client_id>",
"clientCertificate": "<client_certificate>",
"clientCertificateStoreLocation": "<client_certificate_store_location>"
}
Nota
La clientCertificateStoreLocation chiave è facoltativa. Se la chiave:
- È presente e ha un valore vuoto, viene ignorato.
- Non presente, viene utilizzato il valore predefinito
CurrentUserdall'enum X509Credentials.StoreLocation.
Creare un'istanza di DefaultAzureCredential
Per creare un'istanza di Azure.Identity.DefaultAzureCredential, aggiungere le coppie chiave-valore seguenti al file appsettings.json :
{
"tenantId": "<tenant_id>",
"clientId": "<client_id>",
"managedIdentityResourceId": "<managed_identity_resource_id>"
}