使用 API 创建服务主体应用程序(预览)
[本文为预发布文档,可能会发生变化。]
通过用户名和密码进行身份验证通常并不理想,尤其是随着多重身份验证的兴起。 在这种情况下,首选使用服务主体(或客户端凭据流)身份验证。 您可以在自己的 Microsoft Entra 租户中注册一个新的服务主体应用程序,然后在 Power Platform 中注册相同的应用程序,从而使用服务主体进行身份验证。
备注
Power Platform CLI 提供了一种更简单的方法。 了解更多信息,请参阅使用 PAC CLI 创建服务主体应用程序。
注册管理员管理应用程序
首先,客户端应用程序需要在您的 Microsoft Entra 租户中注册。 查看身份验证一文中的 Power Platform API,了解如何进行身份验证。
在 Microsoft Entra ID 中注册了客户端应用程序之后,还需要向 Microsoft Power Platform 注册。 现在,无法通过 Power Platform 管理中心执行此操作;必须通过 Power Platform API 或 PowerShell 以编程方式为 Power Platform 管理员完成此操作。 服务主体无法自行注册。 根据设计,使用用户名和密码上下文的管理员必须注册应用程序。 此限制可确保只有租户应用程序的管理员才能注册应用程序。
要注册新的管理应用程序,请将以下请求与使用用户名和密码身份验证获得的持有者令牌一起使用:
PUT https://api.bap.microsoft.com/providers/Microsoft.BusinessAppPlatform/adminApplications/{CLIENT_ID_FROM_AZURE_APP}?api-version=2020-10-01
Host: api.bap.microsoft.com
Accept: application/json
Authorization: Bearer eyJ0eXAiOi...
将请求作为服务主体
既然服务主体已在 Microsoft Power Platform 中注册,您就可以服务主体的身份进行身份验证。 使用以下请求查询您的管理应用程序列表。 该请求可以使用通过客户端凭据身份验证流程获得的承载令牌:
GET https://api.bap.microsoft.com/providers/Microsoft.BusinessAppPlatform/adminApplications?api-version=2020-10-01
Host: api.bap.microsoft.com
Accept: application/json
Authorization: Bearer eyJ0eXAiOi...
使用 PAC CLI 创建服务主体应用程序
使用 Microsoft Power Platform CLI(PAC CLI) 将 Microsoft Entra ID 应用程序(SPN)和相关应用程序用户添加到 Dataverse 环境中。
admin create-service-principal
命令创建 Microsoft Entra ID 应用程序(SPN),并在 Microsoft Power Platform 中注册。
pac admin create-service-principal --environment <environment id>
进一步了解 pac admin create-service-principal 命令以及如何安装 PAC CLI。
服务主体的限制
当前,服务主体身份验证可用于环境管理、租户设置和 Power Apps 管理。 在不需要许可证的情况下,支持与流相关的 API 用于服务主体身份验证,因为无法将许可证分配给 Microsoft Entra ID 中的服务主体身份。
服务主体应用程序在 Power Platform 中的处理方式类似于分配有 Power Platform 管理员角色的普通用户。 不能分配细粒度角色和权限来限制其功能。 应用程序在 Microsoft Entra ID 中不会被分配任何特殊角色,因为这是平台服务处理服务主体提出的请求的方式。