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.
O Lote do Azure dá suporte à autenticação com o Microsoft Entra ID, o serviço de gerenciamento de diretório e identidade multilocatário baseado em nuvem da Microsoft. O Azure usa o Microsoft Entra ID para autenticar seus clientes, administradores de serviços e usuários organizacionais.
A maneira recomendada de autenticar aplicativos Lote do Azure é usar a biblioteca de clientes Azure Identity que fornece classes de autenticação baseadas em token (como DefaultAzureCredential, ManagedIdentityCredential, ClientSecretCredential e InteractiveBrowserCredential) que funcionam consistentemente se o aplicativo é executado localmente, em Azure ou local. Para obter uma visão geral das estratégias de autenticação recomendadas, consulte:
- Autenticar aplicativos .NET em serviços do Azure usando a biblioteca Azure Identity
- Autenticar aplicativos Python em serviços do Azure usando a biblioteca Azure Identity
Este artigo descreve dois cenários comuns para autenticação em Lote do Azure com Microsoft Entra ID:
A autenticação integrada (interativa) autentica um usuário que está interagindo com um aplicativo. Use uma credencial como
InteractiveBrowserCredentialouDefaultAzureCredential(que pode ser encadeada por meio de logins em ferramentas de desenvolvedor, como CLI do Azure, Visual Studio e Visual Studio Code).A autenticação por entidade de serviço ou identidade gerenciada autentica um aplicativo sem supervisão. Use uma credencial como
ManagedIdentityCredentialpara aplicativos hospedados em Azure ouClientSecretCredential/ClientCertificateCredentialpara aplicativos que se autenticam com o segredo ou certificado de um aplicativo registrado.
Para obter mais informações sobre a ID do Microsoft Entra, consulte a documentação do Microsoft Entra.
Coletar pontos de extremidade para autenticação
Para autenticar aplicativos do Lote com Microsoft Entra ID, você precisa incluir o ponto de extremidade do Microsoft Entra ID e o ponto de extremidade de recurso do Lote em seu código.
Ponto de extremidade do Microsoft Entra
O endpoint base de autoridade do Microsoft Entra é https://login.microsoftonline.com/. Para autenticar com o Microsoft Entra ID, use esse ponto de extremidade com a ID do locatário que identifica o locatário do Microsoft Entra ID a ser usado para autenticação:
https://login.microsoftonline.com/<tenant-id>
Você pode obter sua ID de locatário na página principal do Microsoft Entra ID no portal do Azure. Você também pode selecionar Propriedades no painel de navegação esquerdo e ver a ID do Locatário na página Propriedades.
Importante
O ponto de extremidade específico ao locatário do Microsoft Entra é necessário quando você realiza uma autenticação usando uma entidade de serviço.
Quando você autentica usando a autenticação integrada, o ponto de extremidade específico do locatário é recomendado, mas opcional. Você também pode usar o ponto de extremidade comum do Microsoft Entra para fornecer uma interface de coleta de credenciais genérica quando um locatário específico não é fornecido. O ponto de extremidade comum é
https://login.microsoftonline.com/common.
Para obter mais informações sobre os endpoints do Microsoft Entra, consulte Autenticação versus autorização.
Ponto de extremidade de recursos do Lote
Use o ponto de extremidade de recursos do https://batch.core.windows.net/ para adquirir um token para autenticar solicitações no serviço do Lote.
Registrar seu aplicativo em um locatário
A primeira etapa para usar a autenticação do Microsoft Entra é registrar seu aplicativo em um locatário do Microsoft Entra. Depois que seu aplicativo for registrado, você poderá usar em seu código as credenciais da biblioteca Azure Identity library para adquirir tokens do Microsoft Entra para o serviço Batch. É necessário registrar seu aplicativo para os fluxos de cliente confidencial (entidade de serviço) e para qualquer fluxo interativo que exija um registro de aplicativo específico do locatário.
Dica
Se o código usar DefaultAzureCredential e entrar por meio de uma ferramenta de desenvolvedor (CLI do Azure, Azure PowerShell, Visual Studio ou Visual Studio Code) ou uma identidade gerenciada, você não precisará registrar um aplicativo separado – a credencial usará a identidade já configurada nesse ambiente.
Ao registrar o aplicativo, você fornece informações sobre ele ao Microsoft Entra ID. O Microsoft Entra ID, em seguida, fornece um ID do aplicativo (também chamado de ID do Cliente) que você usa para associar o aplicativo ao Microsoft Entra ID no runtime. Para obter mais informações sobre a ID do aplicativo, consulte objetos de aplicativo e entidade de serviço no Microsoft Entra ID.
Para registrar seu aplicativo Batch, siga as etapas em Registrar um aplicativo.
Depois de registrar seu aplicativo, você pode ver a ID do aplicativo (cliente) na página Visão geral do aplicativo.
Configurar a autenticação integrada
Para se autenticar com a autenticação integrada, você precisa conceder ao seu aplicativo permissão para se conectar à API do serviço Batch. Esta etapa permite que seu aplicativo use o Microsoft Entra ID para autenticar chamadas à API do serviço Batch.
Depois de registrar sua aplicação, siga estas etapas para conceder à aplicação acesso ao serviço Batch:
- No portal do Azure, pesquise e selecione Registros de aplicativo.
- Na página Registros de aplicativo, selecione seu aplicativo.
- Na página do aplicativo, selecione Permissões de API na navegação à esquerda.
- Na página Permissões de API, escolha Adicionar uma permissão.
- Na página Solicitar permissões de API, selecione Lote do Azure.
- Na página Lote do Azure, em Selecionar permissões, marque a caixa de seleção ao lado de user_impersonation e, em seguida, selecione Adicionar permissões.
A página Permissões de API agora mostra que seu aplicativo Microsoft Entra tem acesso ao Microsoft Graph e ao Lote do Azure. As permissões são concedidas ao Microsoft Graph automaticamente quando você registra um aplicativo com o Microsoft Entra ID.
Configurar uma entidade de serviço
Para autenticar um aplicativo que é executado não assistido, use uma entidade de serviço. Quando o aplicativo é autenticado com uma entidade de serviço, ele envia a ID do aplicativo e uma chave secreta para o Microsoft Entra ID.
Depois de registrar sua aplicação, siga estas etapas no portal do Azure para configurar uma entidade de serviço principal:
- Solicite um segredo para o aplicativo.
- Atribua permissões de controle de acesso baseado em função do Azure (Azure RBAC) ao seu aplicativo.
Solicitar um segredo para o aplicativo
Siga estas etapas para criar e copiar a chave secreta a ser usada em seu código:
- No portal do Azure, pesquise e selecione Registros de aplicativo.
- Na página Registros de aplicativo, selecione seu aplicativo.
- Na página do seu aplicativo, selecione Certificados e segredos na navegação à esquerda.
- Na página Certificados e segredos, selecione Novo segredo do cliente.
- Na página Adicionar um segredo do cliente, insira uma descrição e selecione um período de expiração para o segredo.
- Selecione Adicionar para criar o segredo e exibi-lo na página Certificados e segredos.
- Copie o segredo Valor para um local seguro, pois você não poderá acessá-lo novamente depois de sair da página. Se você perder o acesso à sua chave, poderá gerar uma nova.
Atribuir Azure RBAC ao seu aplicativo
Siga estas etapas para atribuir uma função RBAC do Azure ao seu aplicativo. Para saber mais, consulte Controle de acesso baseado em funções para o serviço Lote do Azure.
- No portal do Azure, vá até a conta do Batch que seu aplicativo usa.
- Selecione Controle de acesso (IAM) na navegação à esquerda.
- Na página Controle de acesso (IAM), selecione Adicionar atribuição de função.
- Na página Adicionar atribuição de função, selecione a guia Função e, em seguida, selecione uma das funções internas do RBAC do Lote do Azure para seu aplicativo.
- Selecione a guia Membros e selecione Selecionar membros em Membros.
- Na tela Selecionar membros, pesquise e selecione seu aplicativo e selecione Selecionar.
- Selecione Examinar + atribuir na página Adicionar atribuição de função.
Seu aplicativo agora deve aparecer na aba Atribuições de função da página Controle de acesso (IAM) da conta do Batch.
Exemplos de código
Os exemplos de código nesta seção mostram como autenticar para Lote do Azure com Microsoft Entra ID usando credenciais da biblioteca Azure Identity. Os exemplos usam .NET e Python, mas os mesmos padrões se aplicam a outros idiomas SDK do Azure.
Observação
Um token de autenticação do Microsoft Entra expirará após uma hora. Quando você usa um objeto BatchClient de longa duração, a Azure IdentityTokenCredential que você fornece armazena em cache e atualiza o token de forma transparente, de modo que um novo token é obtido do Microsoft Entra ID somente quando necessário. Para mais informações sobre tokens no Microsoft Entra ID, confira Tokens de segurança.
Dica
Para a maioria dos cenários, use DefaultAzureCredential. Ele tenta automaticamente vários métodos de autenticação (identidade gerenciada, variáveis de ambiente, entradas de ferramenta de desenvolvedor e assim por diante), portanto, o mesmo código funciona se seu aplicativo é executado localmente durante o desenvolvimento, em Azure ou local. Consulte Authenticate .NET apps e Authenticate Python apps para obter orientação sobre como escolher a credencial correta.
Exemplo de código: autenticar-se no Lote do Azure usando .NET
Este exemplo usa Azure. Compute.Batch com o Azure. Identidade biblioteca.
Instale os pacotes NuGet
Azure.Compute.BatcheAzure.Identity.Declare as seguintes instruções
usingno seu código:using Azure.Compute.Batch; using Azure.Core; using Azure.Identity;Consulte o ponto de extremidade da sua conta do Lote:
private const string BatchAccountUrl = "https://<myaccount>.<mylocation>.batch.azure.com";Crie uma credencial e passe-a para o construtor
BatchClient. Use o cliente para as operações subsequentes no serviço Lote.Recomendado:
DefaultAzureCredential— funciona localmente com logons das ferramentas de desenvolvedor (CLI do Azure, Visual Studio, Visual Studio Code) e usa a identidade gerenciada automaticamente quando o aplicativo é executado no Azure:TokenCredential credential = new DefaultAzureCredential(); BatchClient client = new BatchClient(new Uri(BatchAccountUrl), credential); await foreach (BatchJob job in client.GetJobsAsync()) { Console.WriteLine(job.Id); }Entrada interativa (integrada) – solicita que um usuário entre por meio do navegador do sistema. Use isso quando seu aplicativo precisar autenticar um usuário específico interativamente:
TokenCredential credential = new InteractiveBrowserCredential( new InteractiveBrowserCredentialOptions { TenantId = "<tenant-id>", ClientId = "<application-id>", // optional; required only if you registered your own app RedirectUri = new Uri("http://localhost") }); BatchClient client = new BatchClient(new Uri(BatchAccountUrl), credential);Entidade de serviço (segredo do cliente) – use-a para os aplicativos não assistidos que se autenticam com um segredo do registro do aplicativo:
TokenCredential credential = new ClientSecretCredential( tenantId: "<tenant-id>", clientId: "<application-id>", clientSecret: "<client-secret>"); BatchClient client = new BatchClient(new Uri(BatchAccountUrl), credential);Identidade gerenciada — use quando seu aplicativo é executado em um recurso do Azure (como uma VM, App Service ou Container App) que tem uma identidade gerenciada atribuída pelo sistema ou pelo usuário:
// System-assigned managed identity TokenCredential credential = new ManagedIdentityCredential(); // Or, user-assigned managed identity // TokenCredential credential = new ManagedIdentityCredential(clientId: "<user-assigned-client-id>"); BatchClient client = new BatchClient(new Uri(BatchAccountUrl), credential);
Exemplo de código: autenticar-se no Lote do Azure usando Python
Este exemplo usa o cliente azure-batch com credenciais da biblioteca azure-identity. A classe legada azure.common.credentials.ServicePrincipalCredentials está obsoleta; use as credenciais azure-identity em seu lugar.
Instale os pacotes necessários:
pip install azure-batch azure-identityConsulte o ponto de extremidade da conta do Lote e o escopo de recurso do Lote:
BATCH_ACCOUNT_URL = "https://<myaccount>.<mylocation>.batch.azure.com" BATCH_SCOPE = "https://batch.core.windows.net/.default"Crie uma credencial e passe-a para
BatchServiceClient.Recomendado:
DefaultAzureCredential— funciona localmente com logins nas ferramentas de desenvolvedor e usa identidade gerenciada automaticamente ao executar no Azure:from azure.batch import BatchServiceClient from azure.identity import DefaultAzureCredential credential = DefaultAzureCredential() batch_client = BatchServiceClient( credentials=credential, batch_url=BATCH_ACCOUNT_URL, )Entrada interativa (integrada) – solicita que um usuário entre por meio do navegador do sistema:
from azure.batch import BatchServiceClient from azure.identity import InteractiveBrowserCredential credential = InteractiveBrowserCredential( tenant_id="<tenant-id>", client_id="<application-id>", # optional; required only if you registered your own app ) batch_client = BatchServiceClient( credentials=credential, batch_url=BATCH_ACCOUNT_URL, )Entidade de serviço (segredo do cliente) – use para os aplicativos não assistidos:
from azure.batch import BatchServiceClient from azure.identity import ClientSecretCredential credential = ClientSecretCredential( tenant_id="<tenant-id>", client_id="<application-id>", client_secret="<client-secret>", ) batch_client = BatchServiceClient( credentials=credential, batch_url=BATCH_ACCOUNT_URL, )Identidade gerenciada — use quando seu aplicativo é executado em um recurso do Azure com uma identidade gerenciada:
from azure.batch import BatchServiceClient from azure.identity import ManagedIdentityCredential # System-assigned managed identity credential = ManagedIdentityCredential() # Or, user-assigned managed identity # credential = ManagedIdentityCredential(client_id="<user-assigned-client-id>") batch_client = BatchServiceClient( credentials=credential, batch_url=BATCH_ACCOUNT_URL, )
Próximas etapas
- Autentique as soluções de Batch Management com o Active Directory
- Autenticar aplicativos .NET em serviços do Azure usando a biblioteca Azure Identity
- Autenticar aplicativos Python em serviços do Azure usando a biblioteca Azure Identity
- Biblioteca do cliente Azure Identity para .NET
- Biblioteca de clientes do Azure Identity para Python
- Objetos de entidade de serviço e aplicativo no Microsoft Entra ID
- Como criar uma entidade de serviço e um aplicativo do Microsoft Entra que possa acessar os recursos