Autenticação de utilizador final com Azure Data Lake Storage Gen1 utilizando a API REST

Neste artigo, aprende-se a usar a API REST para fazer a autenticação do utilizador final com Azure Data Lake Storage Gen1. Para autenticação de serviço-a-serviço com Data Lake Storage Gen1 utilizando a API REST, consulte a autenticação de serviço-a-serviço com Data Lake Storage Gen1 utilizando a API REST.

Pré-requisitos

Autenticação de utilizador final

A autenticação do utilizador final é a abordagem recomendada se pretender que um utilizador faça login na sua aplicação utilizando a Azure AD. A sua aplicação tem acesso a recursos Azure com o mesmo nível de acesso que o utilizador com sessão iniciada. O utilizador necessita de fornecer as suas credenciais periodicamente para que a sua aplicação mantenha o acesso.

O resultado de ter o login do utilizador final é que a sua aplicação recebe um token de acesso e um token de atualização. O token de acesso é anexado a cada pedido feito para Data Lake Storage Gen1 ou Data Lake Analytics, e é válido por uma hora por padrão. O token de atualização pode ser usado para obter um novo token de acesso, e é válido por padrão até duas semanas, se usado regularmente. Pode utilizar duas abordagens diferentes para o login do utilizador final.

Neste cenário, a aplicação pede ao utilizador para iniciar sessão e todas as operações são efetuadas no contexto do utilizador. Efetue os seguintes passos:

  1. Através da sua aplicação, redirecione o utilizador para o seguinte URL:

    https://login.microsoftonline.com/<TENANT-ID>/oauth2/authorize?client_id=<APPLICATION-ID>&response_type=code&redirect_uri=<REDIRECT-URI>

    Nota

    <O REDIRECT-URI> precisa de ser codificado para utilização num URL. Assim, para https://localhost, usar https%3A%2F%2Flocalhost)

    Para o objetivo deste tutorial, pode substituir os valores de marcador de posição no URL acima e colá-lo na barra de endereço do browser. Será redirecionado para a autenticação utilizando o seu início de sessão do Azure. Depois de iniciar sessão com êxito, a resposta é apresentada na barra de endereço do browser. A resposta estará no seguinte formato:

    http://localhost/?code=<AUTHORIZATION-CODE>&session_state=<GUID>

  2. Capture o código de autorização na resposta. Para este tutorial, pode copiar o código de autorização da barra de endereços do navegador web e passá-lo no pedido DO POST para o ponto final simbólico, como mostra o seguinte corte:

    curl -X POST https://login.microsoftonline.com/<TENANT-ID>/oauth2/token \
    -F redirect_uri=<REDIRECT-URI> \
    -F grant_type=authorization_code \
    -F resource=https://management.core.windows.net/ \
    -F client_id=<APPLICATION-ID> \
    -F code=<AUTHORIZATION-CODE>
    

    Nota

    Neste caso, o <REDIRECT-URI> não precisa de ser codificado.

  3. A resposta é um objeto JSON que contém um token de acesso (por exemplo, "access_token": "<ACCESS_TOKEN>") e um token refresh (por exemplo, "refresh_token": "<REFRESH_TOKEN>"). A sua aplicação utiliza o token de acesso ao aceder a Azure Data Lake Storage Gen1 e o token de atualização para obter outro token de acesso quando um token de acesso expirar.

    {"token_type":"Bearer","scope":"user_impersonation","expires_in":"3599","expires_on":"1461865782","not_before":    "1461861882","resource":"https://management.core.windows.net/","access_token":"<REDACTED>","refresh_token":"<REDACTED>","id_token":"<REDACTED>"}
    
  4. Quando o token de acesso expirar, pode solicitar um novo token de acesso utilizando o token refresh, como mostra o seguinte corte:

    curl -X POST https://login.microsoftonline.com/<TENANT-ID>/oauth2/token  \
         -F grant_type=refresh_token \
         -F resource=https://management.core.windows.net/ \
         -F client_id=<APPLICATION-ID> \
         -F refresh_token=<REFRESH-TOKEN>
    

Para obter mais informações sobre a autenticação de utilizador interativa, veja Fluxo de concessão de códigos de autorização.

Passos seguintes

Neste artigo, aprendeu a usar a autenticação de serviço-a-serviço para autenticar com Azure Data Lake Storage Gen1 usando a API REST. Agora pode olhar para os seguintes artigos que falam sobre como usar a API REST para trabalhar com Azure Data Lake Storage Gen1.