Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
A integração da biblioteca de cliente do Azure para o ASP.NET Core (Microsoft.Extensions.Azure) dá suporte à criação de tipos diferentes Azure.Core.TokenCredential a partir de pares chave-valor definidos em appsettings.json e outros arquivos de configuração. As credenciais correspondem a um subconjunto das classes de credenciais na biblioteca de cliente do Azure Identity. Este artigo descreve o suporte para diferentes TokenCredential tipos e como configurar os pares chave-valor necessários para cada tipo.
Suporte para credenciais do Azure através da configuração
Microsoft.Extensions.Azure pode fornecer automaticamente uma classe TokenCredential aos clientes de serviço do Azure ao procurar valores de credenciais no appsettings.json ou em outros arquivos de configuração, usando a abstração IConfiguration para .NET. Essa abordagem permite que os desenvolvedores definam explicitamente valores de credenciais em diferentes ambientes por meio da configuração, em vez de diretamente pelo código do aplicativo.
As seguintes credenciais podem ser criadas por meio da configuração:
- AzurePipelinesCredential
- ClientCertificateCredential
- ClientSecretCredential
- DefaultAzureCredential
- ManagedIdentityCredential
- WorkloadIdentityCredential
Configurar credenciais do Azure
Os clientes de serviço do Azure registrados com o AddAzureClients método são configurados automaticamente com uma instância de se nenhuma credencial explícita for fornecida por meio do DefaultAzureCredential método de WithCredential extensão. Você também pode substituir o global DefaultAzureCredential usando valores de credenciais 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 de appsettings.json associado:
"Storage": {
"serviceUri": "<service_uri>",
"credential": "managedidentity",
"clientId": "<client_id>"
}
As credenciais a seguir também oferecem suporte à AdditionallyAllowedTenants propriedade, que especifica os 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 coringa * para permitir que as credenciais adquiram tokens para qualquer tenant do Microsoft Entra ao qual a conta conectada tenha acesso. Se nenhum ID de locatário for especificado, 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 do Azure.Identity.ManagedIdentityCredential, adicione os seguintes pares chave-valor ao seu 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 de cliente, ID de recurso ou ID de objeto.
{
"credential": "managedidentity",
"managedIdentityClientId": "<managed_identity_client_id>"
}
Identidade gerenciada como uma credencial de identidade federada
A identidade gerida como uma credencial de identidade federada é suportada nas Microsoft.Extensions.Azure versões 1.12.0 e posteriores. O recurso não funciona com a identidade gerenciada atribuída ao sistema. A credencial pode ser configurada com uma identidade gerenciada atribuída pelo usuário fornecendo uma ID de cliente, ID de recurso ou 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:
-
publicpara Azure Public Cloud -
usgovpara Azure Cloud do Governo dos EUA -
chinapara Azure operado pela 21Vianet
Criar uma instância de AzurePipelinesCredential
Para criar uma instância do Azure.Identity.AzurePipelinesCredential, adicione os seguintes pares chave-valor ao seu arquivo appsettings.json :
{
"credential": "azurepipelines",
"clientId": "<client_id>",
"tenantId": "<tenant_id>",
"serviceConnectionId": "<service_connection_id>",
"systemAccessToken": "<system_access_token>"
}
Importante
AzurePipelinesCredential é suportado nas Microsoft.Extensions.Azure versões 1.11.0 e posteriores.
Criar uma instância de WorkloadIdentityCredential
Para criar uma instância do Azure.Identity.WorkloadIdentityCredential, adicione os seguintes pares chave-valor ao seu 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 do Azure.Identity.ClientSecretCredential, adicione os seguintes pares chave-valor ao seu arquivo appsettings.json :
{
"tenantId": "<tenant_id>",
"clientId": "<client_id>",
"clientSecret": "<client_secret>"
}
Criar uma instância de ClientCertificateCredential
Para criar uma instância do Azure.Identity.ClientCertificateCredential, adicione os seguintes pares chave-valor ao seu arquivo appsettings.json :
{
"tenantId": "<tenant_id>",
"clientId": "<client_id>",
"clientCertificate": "<client_certificate>",
"clientCertificateStoreLocation": "<client_certificate_store_location>"
}
Nota
A clientCertificateStoreLocation chave é opcional. Se a chave:
- Está presente e tem um valor vazio, é ignorado.
- Não está presente, o padrão
CurrentUseré utilizado a partir da enumeração X509Credentials.StoreLocation.
Criar uma instância de DefaultAzureCredential
Para criar uma instância do Azure.Identity.DefaultAzureCredential, adicione os seguintes pares chave-valor ao seu arquivo appsettings.json :
{
"tenantId": "<tenant_id>",
"clientId": "<client_id>",
"managedIdentityResourceId": "<managed_identity_resource_id>"
}