Partilhar via


Autenticar uma aplicação cliente (API REST do Azure Catálogo de Dados)


Este artigo mostra-lhe como autenticar uma aplicação cliente Catálogo de Dados. Inclui exemplos em C#; no entanto, o processo de autenticação é o mesmo para outras linguagens de programação.

Catálogo de Dados aplicações cliente utilizam o Active Directory (Azure AD) para autenticar utilizadores e proteger aplicações. A autenticação é o processo de identificação de uma aplicação ou utilizador. Para identificar a sua aplicação cliente no Azure AD, registe a sua aplicação com Azure AD. Quando regista uma aplicação cliente no Azure Active Directory, dá à sua aplicação acesso às APIs Catálogo de Dados. Para saber como registar a sua aplicação cliente Catálogo de Dados, consulte Registar uma aplicação cliente.

Catálogo de Dados chamadas à API REST são efetuadas em nome de um utilizador autenticado ao transmitir um token no cabeçalho "Autorização" do pedido. O token é adquirido através do Azure Active Directory.

O que precisa para autenticar uma aplicação cliente Catálogo de Dados

Para autenticar uma aplicação cliente Catálogo de Dados e efetuar um pedido Web REST, tem de:

  1. Registar a aplicação cliente – para registar uma aplicação cliente Catálogo de Dados, consulte Registar uma aplicação cliente. Quando regista uma aplicação cliente no Azure Active Directory, dá à sua aplicação acesso às APIs Catálogo de Dados.

  2. Atribuir o ID de cliente para a sua aplicação – para obter o ID de cliente da sua aplicação, consulte Como obter um ID de aplicação cliente. O ID de cliente é utilizado pela aplicação para se identificar aos utilizadores aos quais está a pedir permissões.

    • No código da aplicação cliente, atribua a variável clientID ao clientID da sua aplicação do Azure.
  3. Atribuir o Uri de redirecionamento – para uma aplicação cliente, um uri de redirecionamento fornece Azure AD mais detalhes sobre a aplicação específica que autentica. Um identificador de recursos uniforme (URI) é um valor para identificar um nome de um recurso.

    • No código da aplicação cliente, atribua o redirectUri a https://login.live.com/oauth20_desktop.srf. Uma vez que uma aplicação cliente não tem um serviço externo para o qual redirecionar, este URI é o marcador de posição padrão para aplicações cliente.
  4. Atribuir o Uri de recurso para Catálogo de Dados API – o Uri de recurso identifica o recurso da API Catálogo de Dados.

    • No código da aplicação cliente, atribua o resourceUri a https://datacatalog.azure.com.
  5. Atribuir o uri de autoridade OAuth2 – a autoridade Uri identifica o recurso de autoridade OAuth2.

    • No código da aplicação cliente, atribua um Uri de autoridade a https://login.windows.net/common/oauth2/authorize.

Para fazer um pedido de dados ao serviço REST Catálogo de Dados, tem de fornecer um token de acesso. Numa aplicação cliente .NET, utilize a Biblioteca de Autenticação da Microsoft (MSAL) para obter um token de acesso.

Importante

Para autenticar uma aplicação cliente, tem de adicionar uma referência ao Microsoft.Identity.Client, que está incluído na Biblioteca de Autenticação da Microsoft (MSAL). Se a sua aplicação continuar a utilizar a ADAL, migre-a para MSAL. Para obter mais informações, veja diferenças entre ADAL.NET e aplicações MSAL.NET.

Install-Package Microsoft.Identity.Client -Version 4.48.1 

Passos para obter um token de acesso

A aquisição de um token de acesso com MSAL depende se está a criar um cliente público ou uma aplicação cliente confidencial. Veja os seguintes passos para adquirir um token de acesso para o seu cenário:

Se tiver um catálogo de Dados que ainda esteja a utilizar a biblioteca ADAL preterida, migre a sua aplicação da ADAL para a MSAL.

Fazer um pedido para Catálogo de Dados API REST com um token

Depois de obter um token de acesso do Active Directory (Azure AD), utilize o token para fazer um pedido Web à API REST Catálogo de Dados. Para criar uma Catálogo de Dados pedido Web REST, adicione um token de acesso a um cabeçalho de pedido. Por exemplo, numa aplicação .NET, adicione o

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

Fluxo de Contexto de Autenticação do Azure

Numa aplicação cliente .NET, utiliza AuthenticationContext para adquirir um token de acesso do Azure. AuthenticationContext é a classe principal que representa a autoridade emissora de tokens para recursos Azure AD. AuthenticationContext faz o seguinte:

  1. AuthenticationContext inicia o fluxo ao redirecionar o agente de utilizador para o ponto final de autorização do Azure Active Directory. O utilizador autentica e autoriza, se for necessário consentimento.
  2. O ponto final de autorização do Azure Active Directory redireciona o agente de utilizador novamente para AuthenticationContext com um código de autorização. O agente de utilizador devolve um código de autorização ao URI de redirecionamento da aplicação cliente.
  3. O AuthenticationContext pede um token de acesso a partir do ponto final de emissão de tokens do Azure Active Directory. Apresenta o código de autorização para provar que o utilizador consentiu.
  4. O ponto final de emissão de tokens do Azure Active Directory devolve um token de acesso.
  5. A aplicação cliente utiliza o token de acesso para autenticar na API Web.
  6. Depois de autenticar a aplicação cliente, a API REST Catálogo de Dados devolve os dados pedidos.

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