Share via


使用 REST API 向 Azure Data Lake Storage Gen1 驗證終端使用者

在本文中,您會了解如何使用 REST API 向 Azure Data Lake Storage Gen1 驗證終端使用者。 如需使用 REST API 向 Data Lake Storage Gen1 進行服務對服務驗證,請參閱使用 REST API 向 Data Lake Storage Gen1 進行服務對服務驗證

必要條件

終端使用者驗證

如果您想要讓使用者使用 Microsoft Entra ID 登入應用程式,建議使用用戶驗證。 您的應用程式能夠以與登入的使用者相同的存取層級,來存取 Azure 資源。 使用者必須定期提供其認證,您的應用程式才能繼續存取。

讓終端使用者登入的結果,是系統會提供一個存取權杖和一個重新整理權杖給您的應用程式。 存取權杖會附加到每個對 Data Lake Storage Gen1 或 Data Lake Analytics 提出的要求,預設的有效期是一小時。 重新整理權杖可用來取得新的存取權杖,預設的有效期是二小時,如果定期使用則最多兩週。 您可以使用兩種不同方法讓終端使用者登入。

在此案例中,應用程式會提示使用者登入,且會在使用者的內容中執行所有作業。 執行下列步驟:

  1. 透過您的應用程式,將使用者重新導向至下列 URL:

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

    注意

    <REDIRECT-URI> 需要編碼才能在 URL 中使用。 所以,針對 https://localhost 使用 https%3A%2F%2Flocalhost)

    本教學課程的目的是讓您取代以上 URL 中的預留位置值,並將此值貼在網路瀏覽器網址列中。 系統會將您重新導向,以使用 Azure 登入資料來進行驗證。 一旦成功登入,回應會顯示在瀏覽器網址列中。 回應格式如下:

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

  2. 擷取回應中的授權碼。 在本教學課程中,您可以從網路瀏覽器的網址列中複製授權碼,並在 POST 要求中傳遞至權杖端點,如下列程式碼片段所示:

    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>
    

    注意

    在此案例中,<REDIRECT-URI> 則不需要編碼。

  3. 回應為 JSON 物件,包含存取權杖 (例如 "access_token": "<ACCESS_TOKEN>") 重新整理權杖 (例如:"refresh_token": "<REFRESH_TOKEN>")。 您的應用程式會在存取 Azure Data Lake Storage Gen1 時使用存取權杖,並會在存取權杖過期時重新整理以取得另一個存取權杖。

    {"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. 存取權杖過期時,您可以使用重新整理權杖要求新的存取權杖,如下列程式碼片段所示:

    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>
    

如需互動使用者驗證的詳細資料,請參閱 授權碼授與流程

下一步

在本文中,您已了解如何使用 REST API,使用服務對服務驗證向 Azure Data Lake Storage Gen1 驗證。 您現在可以查看下列文章,了解如何搭配使用 REST API 與 Azure Data Lake Storage Gen1。