共用方式為


驗證 (預覽版)

本文概述用於呼叫 Power Platform API (預覽版) 的 Microsoft Entra 設定。 若要透過 Power Platform API 存取可用的資源,您必須從 Microsoft Entra 取得持有人權杖,並將其當作標頭和每個要求一起傳送。 根據您支援的識別類型 (使用者 vs 服務主體),取得此持有人權杖的流程不同,如本文所述。

若要取得具有正確權限的持有人權杖,則必須執行下列步驟:

  1. 在您的 Microsoft Entra 租用戶中建立應用程式註冊
  2. 設定 API 權限
  3. 設定公開用戶端 (選用)
  4. 設定憑證與密碼 (選用)
  5. 要求存取權杖

步驟 1: 建立應用程式註冊

瀏覽至 Microsoft Entra 應用程式註冊頁面,並建立新的註冊。 為應用程式命名,並確定已選取單一租用戶選項。 您可以跳過重新導向 URI 設定。

步驟 2: 設定 API 權限

在您的新應用程式註冊中,瀏覽至管理 - API 權限索引標籤。在設定權限區段中選取新增權限。 在打開的對話方塊視窗中,選取組織使用的 API 索引標籤,然後搜尋 Power Platform API。 您可能會看到幾個名稱與此相似的項目,因此請確保將其與 GUID 8578e004-a5c6-46e7-913e-12f58912df43 一起使用。

如果您在搜尋 GUID 時清單中沒有顯示 Power Platform API,您仍可以存取它,但是不會重新整理其可見度。 若要強制重新整理,請執行以下 PowerShell 指令碼:

#Install the Microsoft Entra the module
Install-Module AzureAD

Connect-AzureAD
New-AzureADServicePrincipal -AppId 8578e004-a5c6-46e7-913e-12f58912df43 -DisplayName "Power Platform API"

您必須從此這裡選取所需的權限。 這些都是根據命名空間進行分組。 在命名空間中,您將看到資源類型和動作,例如 AppManagement.ApplicationPackages.Read,其會授予應用程式封裝讀取權限。 如需更多資訊,請參閱權限參考一文。

注意

只有在這段時間,Power Platform API 才能使用委派權限。 對於以使用者內容執行的應用程式,您必須使用範圍參數來要求委派權限。 這些權限會將登入使用者的權限委派給您的應用程式,允許其在呼叫 Power Platform API 端點時當作使用者。

對於服務主體識別,則不使用應用程式權限。 而是將服務主體視為 Power Platform 管理員,而且必須按照 PowerShell - 建立服務主體進行註冊。

將必要權限新增至應用程式之後,請選取授與管理員同意以完成設定。 如果您想讓使用者立即存取您的應用程式,而不需要互動式同意體驗,就必須這麼做。 如果您可以支援互動式同意,我們建議遵循 Microsoft 身分平台和 OAuth 2.0 授權程式碼流程

步驟 3: 設定公開用戶端 (選用)

如果您的應用程式需要代表使用者讀取和寫入資源,則您必須啟用公開用戶端設定。 這是 Microsoft Entra ID 接受權杖要求本文中的使用者名稱和密碼屬性的唯一方式。 還要注意,如果您計畫使用此功能,則其不適用於已啟用多重要素驗證的帳戶。

若要啟用,請造訪管理 - 驗證索引標籤。在進階設定區段中,將公開用戶端開關設定為

步驟 4: 設定憑證與密碼 (選用)

如果您的應用程式需要讀取和寫入資源 (也稱為服務主體),則有兩種驗證方法。 若要使用憑證,請瀏覽至管理 - 憑證及密碼索引標籤。在憑證區段中上傳可用於驗證的 x509 憑證。 另一種方式是使用秘碼區段來產生用戶端密碼。 將秘密儲存在安全的位置,以滿足自動化需求。 憑證或秘密選項可讓您透過 Microsoft Entra 進行身份驗證並接收此客戶端的權杖,您可以將該權杖傳遞給 REST API 或 PowerShell cmdlet。

步驟 5: 要求存取權杖

有兩種方式可以取得存取持有人權杖。 一種用於使用者名稱和密碼,另一種用於服務主體。

使用者名稱與密碼流程

務必閱讀上方的 [公開用戶端] 區段。 然後,使用使用者名稱和密碼承載透過 HTTP 將 POST 要求傳送至 Microsoft Entra ID。

Content-Type: application/x-www-form-urlencoded
Host: login.microsoftonline.com
Accept: application/json
POST https://login.microsoftonline.com/YOUR_TENANT.COM/oauth2/v2.0/token
BODY:
client_id={CLIENT_ID_FROM_AZURE_CLIENT_APP}&scope=https://api.powerplatform.com/.default&username={USER_EMAIL_ADDRESS}&password={PASSWORD}&grant_type=password

上方的範例包含預留位置,您可以從 Microsoft Entra ID 中的客戶端應用程式檢索這些預留位置。 您會收到一個回覆,該回覆可用於對 Power Platform 進行後續呼叫。

{
  "token_type": "Bearer",
  "scope": "https://api.powerplatform.com/AppManagement.ApplicationPackages.Install https://api.powerplatform.com/AppManagement.ApplicationPackages.Read https://api.powerplatform.com/.default",
  "expires_in": 4747,
  "ext_expires_in": 4747,
  "access_token": "eyJ0eXAiOiJKV1QiLCJu..."
}

在隨後使用驗證 HTTP 標頭對 Power Platform API 的叫用中,使用 access_token 值。

服務主體流程

務必閱讀上方的 [憑證和密碼] 區段。 然後,使用用戶端密碼承載透過 HTTP 將 POST 要求傳送至 Microsoft Entra ID。 這通常稱為服務主體驗證。

重要

這只能在您按照相關的 PowerShellREST 文件,透過 Microsoft Power Platform 註冊此用戶端應用程式識別碼後使用。

Content-Type: application/x-www-form-urlencoded
Host: login.microsoftonline.com
Accept: application/json
POST https://login.microsoftonline.com/YOUR_TENANT.COM/oauth2/v2.0/token
BODY:
client_id={CLIENT_ID_FROM_AZURE_CLIENT_APP}&scope=https://api.powerplatform.com/.default&client_secret={SECRET_FROM_AZURE_CLIENT_APP}&grant_type=client_credentials

上方的範例包含預留位置,您可以從 Microsoft Entra ID 中的客戶端應用程式檢索這些預留位置。 您會收到一個回覆,該回覆可用於對 Power Platform 進行後續呼叫。

{
  "token_type": "Bearer",
  "expires_in": 3599,
  "ext_expires_in": 3599,
  "access_token": "eyJ0eXAiOiJKV1..."
}

在隨後使用驗證 HTTP 標頭對 Power Platform API 的叫用中,使用 access_token 值。 如上所述,服務主體流程不會使用應用程式權限,而是視為其進行所有呼叫的 Power Platform 管理員。

請參閱

透過 API 建立服務主體應用程式 (預覽版)
PowerShell - 建立服務主體