Autentique soluções de gerenciamento de lotes com o Microsoft Entra ID

Os aplicativos que usam o serviço de gerenciamento do Lote do Azure se autenticam com Microsoft Entra ID, o serviço de gerenciamento de identidades e diretório multilocatário baseado em nuvem da Microsoft. Azure usa Microsoft Entra ID para autenticar seus clientes, administradores de serviços e usuários organizacionais.

A maneira recomendada de autenticar aplicativos de gerenciamento do Batch é usar a biblioteca de cliente Azure Identity, juntamente com a biblioteca de gerenciamento Azure.ResourceManager.Batch. A biblioteca Azure Identity fornece classes de credencial baseadas em token (como DefaultAzureCredential, ManagedIdentityCredential, ClientSecretCredential e InteractiveBrowserCredential) que funcionam consistentemente se seu aplicativo é executado localmente, em Azure ou localmente. Para obter uma visão geral das estratégias de autenticação recomendadas, consulte Authenticate .NET aplicativos para Azure serviços usando a biblioteca Azure Identity.

A biblioteca Azure.ResourceManager.Batch expõe tipos para gerenciar contas do Batch, chaves de conta, aplicações e pacotes de aplicações. É um cliente Azure provedor de recursos e trabalha em conjunto com Azure Resource Manager para gerenciar esses recursos programaticamente. Microsoft Entra ID é necessário para autenticar solicitações feitas por meio de qualquer cliente Azure provedor de recursos, incluindo essa biblioteca.

Note

O pacote Microsoft.Azure.Management.Batch herdado e os padrões de código baseados em ADAL (AuthenticationContext.AcquireToken) foram preteridos. O novo código deve usar Azure.ResourceManager.Batch com credenciais de Azure.Identity.

Para saber mais sobre como usar a biblioteca de gerenciamento do Batch para .NET, consulte Gerenciar contas e cotas do Batch com a biblioteca de cliente de gerenciamento do Batch para .NET.

Registrar um aplicativo (opcional)

Se você precisa registrar um aplicativo Microsoft Entra separado depende do tipo de credencial que você usa:

  • Se você usar DefaultAzureCredential e entrar por meio de uma ferramenta de desenvolvedor (CLI do Azure, Azure PowerShell, Visual Studio ou Visual Studio Code), ou seu aplicativo for executado em um recurso de Azure com uma identidade gerenciada, você não precisará registrar um aplicativo separado. A credencial usa a identidade já configurada nesse ambiente.
  • Se o aplicativo se autenticar como uma entidade de serviço (por exemplo, com ClientSecretCredential ou ClientCertificateCredential), você deve registrar um aplicativo no locatário do Microsoft Entra.

Para registrar um aplicativo, siga as etapas em Quickstart: Registrar um aplicativo com o plataforma de identidade da Microsoft. Após o registro, o Microsoft Entra ID fornece uma ID do aplicativo (cliente) que você usa em tempo de execução. Para obter mais informações, consulte os Objetos de aplicativo e entidade de serviço no Microsoft Entra ID.

Atribuir permissões de RBAC do Azure

Depois de decidir qual identidade seu aplicativo usa (uma conta de desenvolvedor, uma identidade gerenciada ou uma entidade de serviço), atribua a essa identidade as permissões necessárias de controle de acesso baseado em função do Azure (RBAC) no grupo de recursos ou na assinatura em que você gerencia contas do Batch. As funções internas comuns incluem Contributor, Lote do Azure Account Contributor e Reader.

Para ver as etapas, consulte Atribuir funções do Azure usando o portal do Azure.

Autenticar com a biblioteca Azure Identity

Com Azure.Identity e Azure.ResourceManager.Batch, você não precisa fazer referência manualmente aos pontos de extremidade do Microsoft Entra, aos URIs de recurso nem aos URIs de redirecionamento – a credencial lida com a aquisição do token, o armazenamento em cache e a atualização automaticamente.

  1. Instale os pacotes NuGet necessários:

    dotnet add package Azure.Identity
    dotnet add package Azure.ResourceManager.Batch
    
  2. Adicione as seguintes using instruções ao código:

    using Azure.Identity;
    using Azure.ResourceManager;
    using Azure.ResourceManager.Batch;
    
  3. Crie uma credencial e passe-a para ArmClient. Use o cliente para enumerar ou gerenciar contas do Batch.

    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:

    ArmClient arm = new ArmClient(new DefaultAzureCredential());
    
    SubscriptionResource subscription = await arm.GetDefaultSubscriptionAsync();
    await foreach (BatchAccountResource account in subscription.GetBatchAccountsAsync())
    {
        Console.WriteLine(account.Data.Name);
    }
    

    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:

    var 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")
        });
    
    ArmClient arm = new ArmClient(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:

    var credential = new ClientSecretCredential(
        tenantId: "<tenant-id>",
        clientId: "<application-id>",
        clientSecret: "<client-secret>");
    
    ArmClient arm = new ArmClient(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
    var credential = new ManagedIdentityCredential();
    
    // Or, user-assigned managed identity
    // var credential = new ManagedIdentityCredential(clientId: "<user-assigned-client-id>");
    
    ArmClient arm = new ArmClient(credential);
    

A credencial armazena em cache e atualiza os tokens de forma transparente, para que você possa manter ArmClient e os recursos de gerenciamento do Batch ativos durante todo o ciclo de vida do seu aplicativo.

Próximas etapas