Autenticación del usuario final con Azure Data Lake Storage Gen1 mediante API REST

En este artículo, obtendrá información sobre cómo usar la API REST para realizar la autenticación del usuario final con Azure Data Lake Storage Gen1. Para la autenticación entre servicios con Data Lake Storage Gen1. mediante API REST, consulte Service-to-service authentication with Data Lake Storage Gen1 using REST API (Autenticación entre servicios con Data Lake Storage Gen1 mediante API REST).

Requisitos previos

Autenticación de usuario final

La autenticación del usuario final es el enfoque recomendado si desea que un usuario inicie sesión en la aplicación mediante Microsoft Entra ID. La aplicación puede acceder a los recursos de Azure con el mismo nivel de acceso que el usuario que ha iniciado sesión. El usuario tiene que proporcionar sus credenciales periódicamente para que la aplicación conserve el acceso.

El resultado del inicio de sesión por parte del usuario final es que la aplicación recibe un token de acceso y un token de actualización. El token de acceso se adjunta a cada solicitud hecha a Data Lake Storage Gen1 o Data Lake Analytics y es válido, de manera predeterminada, durante 1 hora. El token de actualización se puede usar para obtener un nuevo token de acceso y es válido, de manera predeterminada, hasta por dos semanas, si se usa de manera habitual. Puede usar dos enfoques distintos para el inicio de sesión del usuario final.

En este escenario, la aplicación pide al usuario que inicie sesión y todas las operaciones se realizan en el contexto del usuario. Lleve a cabo los siguiente pasos:

  1. A través de la aplicación, redirija al usuario a la siguiente dirección URL:

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

    Nota

    <REDIRECT-URI>; debe codificarse para utilizarse en una dirección URL. Por tanto, para https://localhost, utilice https%3A%2F%2Flocalhost.

    Para este tutorial, puede sustituir los valores de marcador de posición de la dirección URL anterior y pegarlos en la barra de direcciones del explorador web. Se le redirigirá a una página autenticarse con sus datos de inicio de sesión de Azure. Una vez que haya iniciado sesión correctamente, la respuesta se muestra en la barra de direcciones del explorador. La respuesta estará en el formato siguiente:

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

  2. Obtenga el código de autorización de la respuesta. Para este tutorial, puede copiar el código de autorización de la barra de direcciones del explorador web y pasarlo en la solicitud POST al punto de conexión de token, tal y como se muestra en el siguiente fragmento de código:

    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

    En este caso, no es necesario codificar <REDIRECT-URI>.

  3. La respuesta es un objeto JSON que contiene un token de acceso (por ejemplo, "access_token": "<ACCESS_TOKEN>") y uno de actualización (por ejemplo, "refresh_token": "<REFRESH_TOKEN>"). La aplicación usa el token de acceso al acceder a Azure Data Lake Storage Gen1 y el token de actualización para obtener otro token de acceso cuando expira un token de acceso previo.

    {"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. Cuando expira el token de acceso, puede solicitar uno nuevo con el token de actualización, tal y como se muestra en el siguiente fragmento de código:

    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 más información sobre la autenticación interactiva de usuarios, consulte el flujo de concesión de un código de autorización.

Pasos siguientes

En este artículo aprendió a usar la autenticación entre servicios con Azure Data Lake Storage Gen1 mediante la API REST. Ahora puede consultar los siguientes artículos, que tratan acerca de cómo usar la API REST con Azure Data Lake Storage Gen1.