(Azure 資料目錄 REST API) 驗證用戶端應用程式
本文說明如何驗證資料目錄用戶端應用程式。 其中包含 C# 範例;不過,這個驗證程序也適用於其他程式語言。
資料目錄用戶端應用程式會使用 Active Directory (Azure AD) 來驗證使用者和保護應用程式。 驗證是識別應用程式或使用者的程序。 若要在 Azure AD 中識別用戶端應用程式,請使用 Azure AD 註冊您的應用程式。 當您在 Azure Active Directory 中註冊用戶端應用程式時,您會將應用程式存取權授與資料目錄 API。 若要瞭解如何註冊您的資料目錄用戶端應用程式,請參閱註冊用戶端應用程式。
資料目錄 REST API 呼叫是代表已驗證的使用者,方法是在要求的「授權」標頭中傳遞權杖。 這個權杖是透過 Azure Active Directory 所取得。
您需要驗證資料目錄用戶端應用程式的內容
若要驗證資料目錄用戶端應用程式並執行 REST Web 要求,您需要:
註冊用戶端應用程式- 若要註冊資料目錄用戶端應用程式,請參閱註冊用戶端應用程式。 當您在Azure Active Directory中註冊用戶端應用程式時,您會將應用程式存取權授與資料目錄 API。
指派應用程式的用戶端 識別碼 - 若要取得應用程式的用戶端識別碼,請參閱 如何取得用戶端應用程式識別碼。 應用程式會使用用戶端識別碼,向要求許可權的使用者自行識別。
- 在用戶端應用程式程式碼中,將 clientID 變數指派給 Azure 應用程式的 clientID。
指派重新導向 URI - 針對用戶端應用程式,重新導向 URI 會提供 Azure AD 其驗證特定應用程式的詳細資料。 統一資源識別碼 (URI) 是用來識別資源名稱的值。
- 在用戶端應用程式程式碼中,將 redirectUri 指派給 https://login.live.com/oauth20_desktop.srf 。 由於用戶端應用程式並沒有要重新導向的外部服務,因此這個 URI 是用戶端應用程式的標準預留位置。
指派資料目錄 API 的資源 URI - 資源 URI 可識別資料目錄 API 資源。
- 在您的用戶端應用程式程式碼中,將 resourceUri 指派給
https://datacatalog.azure.com
。
- 在您的用戶端應用程式程式碼中,將 resourceUri 指派給
指派 OAuth2 授權單位 URI - 此授權單位 URI 可識別 OAuth2 授權單位資源。
- 在您的用戶端應用程式程式碼中,將授權單位 URI 指派給
https://login.windows.net/common/oauth2/authorize
。
- 在您的用戶端應用程式程式碼中,將授權單位 URI 指派給
若要對資料目錄 REST 服務提出資料要求,您必須提供存取權杖。 在 .NET 用戶端應用程式中,您可以使用 Microsoft 驗證程式庫 (MSAL) 來取得存取權杖。
重要
若要驗證用戶端應用程式,您必須將 參考新增至 ,此參考 Microsoft.Identity.Client
包含在 Microsoft 驗證程式庫 (MSAL) 。 如果您的應用程式仍使用 ADAL,請將它移轉至 MSAL。 如需詳細資訊,請參閱 ADAL.NET 與 MSAL.NET 應用程式之間的差異。
Install-Package Microsoft.Identity.Client -Version 4.48.1
取得存取權杖的步驟
使用 MSAL 取得存取權杖取決於您要建置 公用用戶端或機密用戶端應用程式。 請參閱下列步驟,以取得案例的存取權杖:
如果您有仍在使用已取代 ADAL 程式庫的資料目錄, 請將您的應用程式從 ADAL 遷移至 MSAL。
使用權杖對資料目錄 REST API 提出要求
從 Active Directory (Azure AD) 取得存取權杖之後,您可以使用權杖對資料目錄 REST API 提出 Web 要求。 若要建立資料目錄 REST Web 要求,請將存取權杖新增至要求標頭。 例如,在 .NET 應用程式中,新增
HttpWebRequest request = System.Net.WebRequest.Create(apiUrl) as System.Net.HttpWebRequest;
...
string authHeader = authResult.CreateAuthorizationHeader();
request.Headers.Add("Authorization", authHeader);
Azure 驗證內容流程
在 .NET 用戶端應用程式中,您可以使用 AuthenticationContext 來取得 Azure 存取 Token。 AuthenticationContext 是代表 Azure AD 資源之權杖發行授權單位的主要類別。 AuthenticationContext 會執行下列作業:
- AuthenticationContext 將使用者代理程式重新導向至 Azure Active Directory 授權端點,以啟動流程。 使用者驗證並同意 (如果需要同意的話)。
- Azure Active Directory 授權端點將使用者代理程式重新導向回到 AuthenticationContext,並提供一個授權碼。 使用者代理程式將授權碼傳回用戶端應用程式的重新導向 URI。
- AuthenticationContext 向 Azure Active Directory 權杖發行端點要求存取權杖。 它會呈現授權碼以證明使用者已同意。
- Azure Active Directory 權杖發行端點傳回存取權杖。
- 用戶端應用程式使用這個存取權杖對 Web API 進行驗證。
- 驗證用戶端應用程式之後,資料目錄 REST API 會傳回要求的資料。
如需深入了解 Azure Active Directory (Azure AD) 授權流程,請參閱授權碼授與流程。