Compartilhar via


Autenticar um aplicativo cliente (API REST do Azure Catálogo de Dados)


Este artigo mostra como autenticar um aplicativo cliente Catálogo de Dados. Ele inclui exemplos em C#; entretanto, o processo de autenticação é igual ao de outras linguagens de programação.

Catálogo de Dados aplicativos cliente usam o Active Directory (Azure AD) para autenticar usuários e proteger aplicativos. A autenticação é o processo de identificação de um usuário ou aplicativo. Para identificar seu aplicativo cliente no Azure AD, registre seu aplicativo com Azure AD. Ao registrar um aplicativo cliente no Azure Active Directory, você dá ao seu aplicativo acesso às APIs Catálogo de Dados. Para saber como registrar seu aplicativo cliente Catálogo de Dados, consulte Registrar um aplicativo cliente.

Catálogo de Dados chamadas à API REST são feitas em nome de um usuário autenticado passando um token no cabeçalho "Autorização" da solicitação. O token é adquirido por meio do Azure Active Directory.

O que você precisa para autenticar um aplicativo cliente Catálogo de Dados

Para autenticar um aplicativo cliente Catálogo de Dados e executar uma solicitação da Web REST, você precisa:

  1. Registrar seu aplicativo cliente – para registrar um aplicativo cliente Catálogo de Dados, consulte Registrar um aplicativo cliente. Ao registrar um aplicativo cliente no Azure Active Directory, você dá ao seu aplicativo acesso às APIs Catálogo de Dados.

  2. Atribuir a ID do cliente para seu aplicativo – para obter a ID do cliente para seu aplicativo, consulte Como obter uma ID de aplicativo cliente. A ID do cliente é usada pelo aplicativo para se identificar aos usuários dos quais eles estão solicitando permissões.

    • No código do aplicativo cliente, atribua a variável clientID à clientID do aplicativo do Azure.
  3. Atribuir o URI de redirecionamento – para um aplicativo cliente, um URI de redirecionamento fornece Azure AD mais detalhes sobre o aplicativo específico que ele autentica. Um URI (Uniform Resource Identifier) é um valor para identificar o nome de um recurso.

    • No código do aplicativo cliente, atribua o redirectUri a https://login.live.com/oauth20_desktop.srf. Como um aplicativo cliente não tem um serviço externo para o qual redirecionar, esse URI é o espaço reservado padrão para aplicativos cliente.
  4. Atribuir o URI do recurso para Catálogo de Dados API – o URI do recurso identifica o recurso de API do Catálogo de Dados.

    • No código do aplicativo cliente, atribua o resourceUri a https://datacatalog.azure.com.
  5. Atribuir o URI de autoridade do OAuth2 - O URI de autoridade identifica o recurso de autoridade do OAuth2.

    • No código do aplicativo cliente, atribua um URI de autoridade a https://login.windows.net/common/oauth2/authorize.

Para fazer uma solicitação de dados para o serviço REST Catálogo de Dados, você precisa fornecer um token de acesso. Em um aplicativo cliente .NET, você usa a MSAL (Biblioteca de Autenticação da Microsoft) para obter um token de acesso.

Importante

Para autenticar um aplicativo cliente, você deve adicionar uma referência a Microsoft.Identity.Client, que está incluída na MSAL (Biblioteca de Autenticação da Microsoft). Se o aplicativo ainda usar a ADAL, migre-a para a MSAL. Para obter mais informações, consulte diferenças entre aplicativos ADAL.NET e MSAL.NET.

Install-Package Microsoft.Identity.Client -Version 4.48.1 

Etapas para obter um token de acesso

Adquirir um token de acesso usando a MSAL depende se você está criando um cliente público ou um aplicativo cliente confidencial. Consulte as seguintes etapas para adquirir um token de acesso para seu cenário:

Se você tiver um catálogo de dados que ainda está usando a biblioteca ADAL preterida, migre seu aplicativo da ADAL para a MSAL.

Fazer uma solicitação para Catálogo de Dados API REST usando um token

Depois de obter um token de acesso do Active Directory (Azure AD), use o token para fazer uma solicitação da Web para a API REST Catálogo de Dados. Para criar uma solicitação da Web REST Catálogo de Dados, adicione um token de acesso a um cabeçalho de solicitação. Por exemplo, em um aplicativo .NET, adicione o

HttpWebRequest request = System.Net.WebRequest.Create(apiUrl) as System.Net.HttpWebRequest;  
...  
string authHeader = authResult.CreateAuthorizationHeader();             
request.Headers.Add("Authorization", authHeader);  

Fluxo do contexto de autenticação do Azure

Em um aplicativo cliente .NET, use AuthenticationContext para adquirir um token de acesso do Azure. AuthenticationContext é a classe principal que representa o token que emite a autoridade para os recursos do AD do Azure. AuthenticationContext faz o seguinte:

  1. AuthenticationContext inicia o fluxo ao redirecionar o agente do usuário para o ponto de extremidade de autorização do Azure Active Directory. O usuário é autenticado e consente se o consentimento for necessário.
  2. O ponto de extremidade de autorização do Azure Active Directory redireciona o agente do usuário de volta a AuthenticationContext com um código de autorização. O agente do usuário retorna um código de autorização ao URI de redirecionamento do aplicativo cliente.
  3. O AuthenticationContext solicita um token de acesso do ponto de extremidade de emissão de token do Azure Active Directory. Ele apresenta o código de autorização para comprovar que o usuário consentiu.
  4. O ponto de extremidade de emissão de token do Azure Active Directory retorna um token de acesso.
  5. O aplicativo cliente usa o token de acesso para autenticar para a API Web.
  6. Depois de autenticar o aplicativo cliente, a API REST Catálogo de Dados retorna os dados solicitados.

Para saber mais sobre o fluxo de autorização do Azure AD (Azure Active Directory), veja Fluxo de concessão de código de autorização.