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

Neste artigo, irá aprender a utilizar a API REST para efetuar a autenticação do utilizador final com Azure Data Lake Storage Gen1. Para autenticação serviço a serviço com Data Lake Storage Gen1 através da API REST, veja Autenticação serviço a serviço com Data Lake Storage Gen1 com a API REST.

Pré-requisitos

Autenticação de utilizador final

A autenticação do utilizador final é a abordagem recomendada se quiser que um utilizador inicie sessão na sua aplicação com Microsoft Entra ID. A sua aplicação consegue aceder aos recursos do Azure com o mesmo nível de acesso que o utilizador com sessão iniciada. O utilizador tem de fornecer as credenciais periodicamente para que a sua aplicação mantenha o acesso.

O resultado de ter o início de sessão do utilizador final é o facto de a sua aplicação receber um token de acesso e um token de atualização. O token de acesso é anexado a cada pedido feito a Data Lake Storage Gen1 ou Data Lake Analytics e é válido por uma hora por predefinição. O token de atualização pode ser utilizado para obter um novo token de acesso e é válido até duas semanas por predefinição, se utilizado regularmente. Pode utilizar duas abordagens diferentes para o início de sessão 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> tem de ser codificado para utilização num URL. Assim, para https://localhost, utilize 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ço do browser e passá-lo no pedido POST para o ponto final do token, conforme mostrado no fragmento seguinte:

    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 de atualização (por exemplo, "refresh_token": "<REFRESH_TOKEN>"). A sua aplicação utiliza o token de acesso ao aceder ao Azure Data Lake Storage Gen1 e ao 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 pedir um novo token de acesso com o token de atualização, conforme mostrado no fragmento seguinte:

    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 utilizar a autenticação serviço a serviço para se autenticar com Azure Data Lake Storage Gen1 com a API REST. Agora, pode ver os seguintes artigos que falam sobre como utilizar a API REST para trabalhar com Azure Data Lake Storage Gen1.