Autenticar soluções de gerenciamento de lote com o Ative Directory

Os aplicativos que chamam o serviço Azure Batch Management são autenticados com a Biblioteca de Autenticação da Microsoft (ID do Microsoft Entra). O Microsoft Entra ID é o diretório multilocatário baseado em nuvem e serviço de gerenciamento de identidades da Microsoft. O próprio Azure usa a ID do Microsoft Entra para a autenticação de seus clientes, administradores de serviço e usuários organizacionais.

A biblioteca .NET do Batch Management expõe tipos para trabalhar com contas em lote, chaves de conta, aplicativos e pacotes de aplicativos. A biblioteca .NET do Batch Management é um cliente do provedor de recursos do Azure e é usada junto com o Azure Resource Manager para gerenciar esses recursos programaticamente. A ID do Microsoft Entra é necessária para autenticar solicitações feitas por meio de qualquer cliente de provedor de recursos do Azure, incluindo a biblioteca .NET de Gerenciamento de Lotes, e por meio do Gerenciador de Recursos do Azure.

Neste artigo, exploramos o uso do Microsoft Entra ID para autenticar a partir de aplicativos que usam a biblioteca .NET do Batch Management. Mostramos como usar o Microsoft Entra ID para autenticar um administrador ou coadministrador de assinatura, usando autenticação integrada. Usamos o projeto de exemplo AccountManagement , disponível no GitHub, para percorrer o uso do Microsoft Entra ID com a biblioteca .NET do Batch Management.

Para saber mais sobre como usar a biblioteca .NET do Batch Management e o exemplo AccountManagement, consulte Manage Batch accounts and quotas with the Batch Management client library for .NET.

Registe a sua candidatura com o Microsoft Entra ID

A Biblioteca de Autenticação da Microsoft (MSAL) fornece uma interface programática para o Microsoft Entra ID para uso em seus aplicativos. Para chamar o MSAL a partir do seu aplicativo, você deve registrar seu aplicativo em um locatário do Microsoft Entra. Ao registrar seu aplicativo, você fornece à ID do Microsoft Entra informações sobre seu aplicativo, incluindo um nome para ele dentro do locatário do Microsoft Entra. Em seguida, a ID do Microsoft Entra fornece uma ID de aplicativo que você usa para associar seu aplicativo à ID do Microsoft Entra em tempo de execução. Para saber mais sobre a ID do aplicativo, consulte Objetos principais de aplicativo e serviço na ID do Microsoft Entra.

Para registrar o aplicativo de exemplo AccountManagement, siga as etapas na seção Adicionando um aplicativo em Integrando aplicativos com o Microsoft Entra ID. Especifique Aplicativo Cliente Nativo para o tipo de aplicativo. O URI OAuth 2.0 padrão do setor para o URI de redirecionamento é urn:ietf:wg:oauth:2.0:oob. No entanto, você pode especificar qualquer URI válido (como http://myaccountmanagementsample) para o URI de redirecionamento, pois ele não precisa ser um ponto de extremidade real.

Adding an application

Depois de concluir o processo de registro, você verá o ID do aplicativo e o ID do objeto (entidade de serviço) listados para seu aplicativo.

Completed registration process

Conceder à API do Azure Resource Manager acesso ao seu aplicativo

Em seguida, você precisará delegar o acesso ao seu aplicativo à API do Azure Resource Manager. O identificador do Microsoft Entra para a API do Resource Manager é a API de Gerenciamento de Serviços do Windows Azure.

Siga os passos abaixo no portal do Azure:

  1. No painel de navegação esquerdo do portal do Azure, escolha Todos os serviços, clique em Registros de Aplicativo e clique em Adicionar.

  2. Procure o nome da sua aplicação na lista de registos de aplicações:

    Search for your application name

  3. Exiba a folha Configurações . Na seção Acesso à API, selecione Permissões necessárias.

  4. Clique em Adicionar para adicionar uma nova permissão necessária.

  5. Na etapa 1, insira a API de Gerenciamento de Serviços do Windows Azure, selecione essa API na lista de resultados e clique no botão Selecionar .

  6. Na etapa 2, marque a caixa de seleção ao lado de Modelo de implantação clássico do Access Azure como usuários da organização e clique no botão Selecionar .

  7. Clique no botão Concluído .

A folha Permissões Necessárias agora mostra que as permissões para seu aplicativo são concedidas às APIs do MSAL e do Gerenciador de Recursos. As permissões são concedidas à MSAL por padrão quando você registra seu aplicativo pela primeira vez com o Microsoft Entra ID.

Delegate permissions to the Azure Resource Manager API

Pontos de extremidade Microsoft Entra

Para autenticar suas soluções de gerenciamento de lotes com o Microsoft Entra ID, você precisará de dois pontos de extremidade bem conhecidos.

  • O ponto de extremidade comum do Microsoft Entra fornece uma interface genérica de coleta de credenciais quando um locatário específico não é fornecido, como no caso da autenticação integrada:

    https://login.microsoftonline.com/common

  • O ponto de extremidade do Azure Resource Manager é usado para adquirir um token para autenticar solicitações para o serviço de gerenciamento de lote:

    https://management.core.windows.net/

O aplicativo de exemplo AccountManagement define constantes para esses pontos de extremidade. Deixe estas constantes inalteradas:

// Azure Active Directory "common" endpoint.
private const string AuthorityUri = "https://login.microsoftonline.com/common";
// Azure Resource Manager endpoint
private const string ResourceUri = "https://management.core.windows.net/";

Referenciar o ID da sua candidatura

Seu aplicativo cliente usa a ID do aplicativo (também conhecida como ID do cliente) para acessar a ID do Microsoft Entra em tempo de execução. Depois de registrar seu aplicativo no portal do Azure, atualize seu código para usar a ID do aplicativo fornecida pela ID do Microsoft Entra para seu aplicativo registrado. No aplicativo de exemplo AccountManagement, copie sua ID de aplicativo do portal do Azure para a constante apropriada:

// Specify the unique identifier (the "Client ID") for your application. This is required so that your
// native client application (i.e. this sample) can access the Microsoft Graph API. For information
// about registering an application in Azure Active Directory, please see "Register an application with the Microsoft identity platform" here:
// https://learn.microsoft.com/azure/active-directory/develop/quickstart-register-app
private const string ClientId = "<application-id>";

Copie também o URI de redirecionamento especificado durante o processo de registro. O URI de redirecionamento especificado em seu código deve corresponder ao URI de redirecionamento que você forneceu quando registrou o aplicativo.

// The URI to which Azure AD will redirect in response to an OAuth 2.0 request. This value is
// specified by you when you register an application with AAD (see ClientId comment). It does not
// need to be a real endpoint, but must be a valid URI (e.g. https://accountmgmtsampleapp).
private const string RedirectUri = "http://myaccountmanagementsample";

Adquirir um token de autenticação do Microsoft Entra

Depois de registrar o exemplo AccountManagement no locatário do Microsoft Entra e atualizar o código-fonte de exemplo com seus valores, o exemplo está pronto para autenticar usando o Microsoft Entra ID. Quando você executa o exemplo, o MSAL tenta adquirir um token de autenticação. Nesta etapa, ele solicita suas credenciais da Microsoft:

// Obtain an access token using the "common" AAD resource. This allows the application
// to query AAD for information that lies outside the application's tenant (such as for
// querying subscription information in your Azure account).
AuthenticationContext authContext = new AuthenticationContext(AuthorityUri);
AuthenticationResult authResult = authContext.AcquireToken(ResourceUri,
                                                        ClientId,
                                                        new Uri(RedirectUri),
                                                        PromptBehavior.Auto);

Depois de fornecer suas credenciais, o aplicativo de exemplo pode continuar a emitir solicitações autenticadas para o serviço de gerenciamento de lote.

Próximos passos