Autenticar soluções de Gerenciamento do Lote com o Microsoft Entra ID

Aplicativos que chamam o serviço de Gerenciamento do Lote do Azure fazem a autenticação com a Biblioteca de Autenticação da Microsoft (Microsoft Entra ID). O Microsoft Entra ID é o serviço de gerenciamento de identidade e diretório baseado em nuvem multilocatário da Microsoft. O próprio Azure usa o Microsoft Entra ID para autenticação de seus clientes, administradores de serviços e usuários organizacionais.

A biblioteca .NET do Gerenciamento do Lote expõe os tipos para trabalhar com contas, chaves de conta, aplicativos e pacotes de aplicativos do Lote. A biblioteca .NET do Gerenciamento do Lote é um cliente do provedor de recursos do Azure e é usada com o Azure Resource Manager para gerenciar esses recursos por meio de programação. O Microsoft Entra ID é necessário para autenticar solicitações feitas por meio de qualquer cliente de provedor de recursos do Azure, incluindo a biblioteca .NET do Gerenciamento de Lote e por meio do Azure Resource Manager.

Neste artigo, exploraremos como usar o Microsoft Entra ID para autenticação em aplicativos que usam a biblioteca .NET do Gerenciamento de Lote. Mostramos como usar o Microsoft Entra ID para autenticar um administrador ou coadministrador de assinatura usando a autenticação integrada. Nesta seção, usamos o projeto de exemplo AccountManagement, disponível no GitHub, para percorrer o uso do Microsoft Entra ID com a biblioteca .NET de Gerenciamento de Lote.

Para saber mais sobre como usar a biblioteca .NET do Gerenciamento do Lote e o exemplo AccountManagement, veja Gerenciar contas e cotas do Lote com a biblioteca de cliente do Gerenciamento do Lote para .NET.

Registrar seu aplicativo junto ao Microsoft Entra ID

A Biblioteca de Autenticação da Microsoft (MSAL) fornece uma interface programática para o Microsoft Entra ID a ser usada nos aplicativos. Para chamar a MSAL de seu aplicativo, você precisará registrar o aplicativo em um locatário do Microsoft Entra. Ao registrar seu aplicativo, você fornece ao Microsoft Entra ID informações sobre seu aplicativo, incluindo um nome para ele dentro do locatário do Microsoft Entra. Em seguida, o Microsoft Entra ID fornece uma ID do aplicativo que você usa para associar seu aplicativo ao Microsoft Entra ID em runtime. Para saber mais sobre a ID do aplicativo, confira Objetos de entidade de serviço e aplicativo no Microsoft Entra ID.

Para registrar o aplicativo de exemplo AccountManagement, siga as etapas da seção Adicionar um aplicativo em Integração de aplicativos ao Microsoft Entra ID. Especifique aplicativo cliente nativo para o tipo de aplicativo. O URI do OAuth 2.0 padrão do setor para o URI de Redirecionamento é urn:ietf:wg:oauth:2.0:oob. Porém, 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.

Adicionando um aplicativo

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

Processo de registro concluído

Conceder à API do Azure Resource Manager acesso a seu aplicativo

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

Siga estas etapas 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. Pesquise pelo nome do seu aplicativo na lista de registros do aplicativo:

    Procure o nome do aplicativo

  3. Exibição de configurações folha. 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, digite API de gerenciamento de serviços do Microsoft Azure, selecione essa API da lista de resultados e clique no selecione botão.

  6. Na etapa 2, selecione a caixa de seleção Avançar ao Aceder a modelo de implantação clássico do Azure enquanto usuários da organizaçãoe clique no selecione botão.

  7. Clique no botão Concluído.

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

Delegar permissões para a API do Azure Resource Manager

Pontos de extremidade do Microsoft Entra

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

  • O ponto de extremidade comum do Microsoft Entra fornece uma interface de coleta de credenciais genérica quando um locatário específico não é fornecido, como no caso de 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 no serviço de gerenciamento do lote:

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

O aplicativo de exemplo AccountManagement define constantes para esses pontos de extremidade. Deixe essas constantes inalterados:

// 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/";

Consultar a ID do aplicativo

O aplicativo cliente usa a ID do aplicativo (também conhecida como a ID do cliente) para acessar o Microsoft Entra ID em runtime. Depois de registrar seu aplicativo no portal do Azure, atualize seu código para usar a ID do aplicativo fornecida pelo Microsoft Entra ID para seu aplicativo registrado. No aplicativo de exemplo de AccountManagement, copie a ID do aplicativo do portal do Azure à 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://video2.skills-academy.com/azure/active-directory/develop/quickstart-register-app
private const string ClientId = "<application-id>";

Também copie o URI que você especificou durante o processo de registro de redirecionamento. O URI de redirecionamento especificado no 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 ID e de atualizar o código-fonte de exemplo com os valores, o exemplo estará pronto para se autenticar usando o Microsoft Entra ID. Quando você executar o exemplo, a MSAL tentará adquirir um token de autenticação. Nesta etapa, ele solicitará 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 poderá emitir solicitações autenticadas para o serviço de Gerenciamento do Lote.

Próximas etapas