Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
A integração da biblioteca de clientes do Azure para ASP.NET Core (Microsoft.Extensions.Azure
) dá suporte à criação de tipos diferentes Azure.Core.TokenCredential de pares chave-valor definidos em appsettings.json e outros arquivos de configuração. As credenciais correspondem a um subconjunto das classes de credencial na biblioteca de clientes da Identidade do Azure. Este artigo descreve o suporte a diferentes tipos TokenCredential
e como configurar os pares de chave-valor necessários para cada tipo.
Suporte para credenciais do Azure por meio da configuração
Microsoft.Extensions.Azure
pode automaticamente fornecer aos clientes de serviço do Azure uma classe TokenCredential
pesquisando valores de credencial em appsettings.json ou outros arquivos de configuração usando a abstração IConfiguration
para .NET. Essa abordagem permite que os desenvolvedores definam explicitamente os valores de credenciais em diferentes ambientes por meio da configuração, em vez de usar diretamente o código do aplicativo.
As seguintes credenciais podem ser criadas por meio da configuração:
- AzurePipelinesCredential
- ClientCertificateCredential
- ClientSecretCredential
- DefaultAzureCredential
- ManagedIdentityCredential
- WorkloadIdentityCredential
Configurar as credenciais do Azure
Os clientes de serviço do Azure registrados com o método AddAzureClients são automaticamente configurados com uma instância de DefaultAzureCredential
se nenhuma credencial explícita for fornecida por meio do método de extensão WithCredential. Você também pode substituir o global DefaultAzureCredential
usando valores de credencial de arquivos de configuração ao registrar um cliente para criar uma credencial específica:
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");
});
O arquivo appsettings.json associado:
"Storage": {
"serviceUri": "<service_uri>",
"credential": "managedidentity",
"clientId": "<client_id>"
}
As credenciais a seguir também dão suporte à propriedade AdditionallyAllowedTenants
, que especifica locatários do Microsoft Entra além do locatário padrão para o qual a credencial pode adquirir tokens:
- AzurePipelinesCredential
- ClientCertificateCredential
- ClientSecretCredential
- DefaultAzureCredential
- WorkloadIdentityCredential
Adicione o valor curinga *
para permitir que a credencial adquira tokens para qualquer locatário do Microsoft Entra que a conta conectada possa acessar. Se nenhuma ID de locatário for especificada, essa opção não terá efeito sobre esse método de autenticação e a credencial adquirirá tokens para qualquer locatário solicitado ao usar esse método.
{
"additionallyAllowedTenants": "<tenant_ids_separated_by_semicolon>"
}
Criar uma instância de ManagedIdentityCredential
Você pode configurar uma credencial para utilizar uma identidade gerenciada das seguintes maneiras usando valores de configuração:
- Identidade gerenciada atribuída pelo sistema
- Identidade gerenciada atribuída pelo usuário
- Identidade gerenciada como uma credencial de identidade federada
Para criar uma instância de Azure.Identity.ManagedIdentityCredential, adicione os seguintes pares chave-valor ao arquivo appsettings.json .
Identidade gerenciada atribuída pelo sistema
{
"credential": "managedidentity"
}
Identidade gerenciada atribuída pelo usuário
Uma identidade gerenciada atribuída pelo usuário pode ser usada fornecendo uma ID do cliente, uma ID de recurso ou uma ID de objeto.
{
"credential": "managedidentity",
"managedIdentityClientId": "<managed_identity_client_id>"
}
Identidade gerenciada como uma credencial de identidade federada
A identidade gerenciada como credencial de identidade federada é compatível nas Microsoft.Extensions.Azure
versões 1.12.0 e posteriores. O recurso não funciona com a identidade gerenciada atribuída pelo sistema. A credencial pode ser configurada com uma identidade gerenciada atribuída pelo usuário fornecendo uma ID do cliente, uma ID de recurso ou uma ID de objeto.
{
"credential": "managedidentityasfederatedidentity",
"azureCloud": "<azure_cloud>",
"tenantId": "<tenant_id>",
"clientId": "<client_id>",
"managedIdentityClientId": "<managed_identity_client_id>"
}
O azureCloud
valor da chave é usado para definir o escopo do token de acesso do Microsoft Entra. Pode ser um dos seguintes valores:
-
public
para a Nuvem Pública do Azure -
usgov
para a nuvem do Azure US Government -
china
para Azure operado pela 21Vianet
Criar uma instância de AzurePipelinesCredential
Para criar uma instância de Azure.Identity.AzurePipelinesCredential, adicione os seguintes pares chave-valor ao arquivo appsettings.json :
{
"credential": "azurepipelines",
"clientId": "<client_id>",
"tenantId": "<tenant_id>",
"serviceConnectionId": "<service_connection_id>",
"systemAccessToken": "<system_access_token>"
}
Importante
AzurePipelinesCredential
tem suporte nas Microsoft.Extensions.Azure
versões 1.11.0 e posteriores.
Criar uma instância de WorkloadIdentityCredential
Para criar uma instância de Azure.Identity.WorkloadIdentityCredential, adicione os seguintes pares chave-valor ao arquivo appsettings.json :
{
"credential": "workloadidentity",
"tenantId": "<tenant_id>",
"clientId": "<client_id>",
"tokenFilePath": "<token_file_path>"
}
Criar uma instância de ClientSecretCredential
Para criar uma instância de Azure.Identity.ClientSecretCredential, adicione os seguintes pares chave-valor ao arquivo appsettings.json :
{
"tenantId": "<tenant_id>",
"clientId": "<client_id>",
"clientSecret": "<client_secret>"
}
Criar uma instância de ClientCertificateCredential
Para criar uma instância de Azure.Identity.ClientCertificateCredential, adicione os seguintes pares chave-valor ao arquivo appsettings.json :
{
"tenantId": "<tenant_id>",
"clientId": "<client_id>",
"clientCertificate": "<client_certificate>",
"clientCertificateStoreLocation": "<client_certificate_store_location>"
}
Observação
A clientCertificateStoreLocation
chave é opcional. Se a chave:
- Está presente e tem um valor vazio, ela é ignorado.
- Não está presente, o
CurrentUser
padrão é usado na enumeração X509Credentials.StoreLocation.
Criar uma instância de DefaultAzureCredential
Para criar uma instância de Azure.Identity.DefaultAzureCredential, adicione os seguintes pares chave-valor ao arquivo appsettings.json :
{
"tenantId": "<tenant_id>",
"clientId": "<client_id>",
"managedIdentityResourceId": "<managed_identity_resource_id>"
}