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.
- O que precisa para autenticar uma aplicação cliente Catálogo de Dados
- Como fazer um pedido para Catálogo de Dados API REST com um token
- Fluxo de Contexto de Autenticação do Azure
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:
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.
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.
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.
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
.
- No código da aplicação cliente, atribua o resourceUri a
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
.
- No código da aplicação cliente, atribua um Uri de autoridade a
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:
- Adquirir o token de acesso para uma aplicação cliente pública.
- Adquirir um token de acesso para uma aplicação cliente confidencial
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:
- 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.
- 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.
- 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.
- O ponto final de emissão de tokens do Azure Active Directory devolve um token de acesso.
- A aplicação cliente utiliza o token de acesso para autenticar na API Web.
- 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.