使用 PowerShell 建立服務主體應用程式
使用使用者和密碼進行身份驗證通常並不理想,尤其是在多因素身份驗證興起的環境下。 在這種情況下,我們偏好使用服務主體 (或客戶端憑證流程)。 這可以透過在您自己的 Microsoft Entra 租用戶中註冊新的服務主體應用程式,然後在 Power Platform 中註冊相同的應用程式來完成。
註冊管理員管理應用程序
首先,客戶端應用程式需要在您的 Microsoft Entra 租用戶中註冊。 若要設定此設定,請查看 Power Platform API 的驗證文章,因為 PowerShell 需要相同的應用程式設定。
客戶端應用程式在您的 Microsoft Entra ID 註冊後,也必須透過 Microsoft Power Platform 註冊。 如今,無法透過 Power Platform 系統管理中心執行此操作。必須透過 Power Platform API 或 PowerShell 為 Power Platform 管理員以編程方式完成此操作。 服務主體無法自行註冊 - 根據設計,必須透過管理員使用者名稱和密碼內容來註冊應用程式。 這能確保應用程式是由租用戶的管理員建立的。
若要註冊新的管理應用程式,請使用以下指令碼:
$appId = "CLIENT_ID_FROM_AZURE_APP"
# Login interactively with a tenant administrator for Power Platform
Add-PowerAppsAccount -Endpoint prod -TenantID $tenantId
# Register a new application, this gives the SPN / client application same permissions as a tenant admin
New-PowerAppManagementApp -ApplicationId $appId
提出要求作為服務主體
現在,它已在 Microsoft Power Platform 中註冊,您可以將其本身驗證為服務主體。 請使用以下指令碼,查詢您的環境列表:
$appId = "CLIENT_ID_FROM_AZURE_APP"
$secret = "SECRET_FROM_AZURE_APP"
$tenantId = "TENANT_ID_FROM_AZURE_APP"
Add-PowerAppsAccount -Endpoint prod -TenantID $tenantId -ApplicationId $appId -ClientSecret $secret -Verbose
Get-AdminPowerAppEnvironment
服務主體的限制
目前,服務主體驗證可用於環境管理,租用戶設定和 Power Apps 管理。 在不需要授權的情況下,與流程相關的 Cmdlet 支援服務主體驗證,因為無法將授權指派給 Microsoft Entra ID 中的服務主體識別。
服務主體應用程式在 Power Platform 中的處理方式類似於已獲指派 Power Platform 管理員角色的一般使用者。 不能指派細微性角色和權限來限制其能力。 應用程式不會在 Microsoft Entra ID 中指派任何特殊角色,因為這就是平台服務處理服務主體所發出要求的方式。