我创建了一个单一租户应用程序,并将其分配为具有系统管理员权限的应用程序用户,以访问我的 Dynamics 环境之一,但是我还想授予此应用程序访问 PowerApps API 的权限 (https://api.bap)。 microsoft.com),我找不到任何信息性文章来回答我在这里想要实现的目标,并且找不到将应用程序用户添加为 PowerApps 面板管理员的方法
具体来说,我正在尝试使用应用程序用户 OAuth2 令牌执行以下 API 调用
https://api.bap.microsoft.com/providers/Microsoft.BusinessAppPlatform/lifecycleOperations?api-version=2021-04-01
。{ “错误”: { "code": "禁止", "message": "ID为'bd0000a6-2600-4e10-8d71-6d35e900000c'的服务主体用于申请 5a00de00-79af-4400-b003-a3a136b94db9 无权 访问路径 'https://10.0.5.63:20062/providers/Microsoft.BusinessAppPlatform/lifecycleOperations?api-version=2021-04-01' 在租户 e6000e48-bd54-413e-b005-df000000bd2c 中。” } }
Azure AD 应用程序权限没有任何 PowerApps API 访问权限(应用程序用户)来帮助我获得此访问权限。
我如何向我的应用程序用户提供访问权限?
编辑: 我使用 MSAL Python 库获取了访问令牌,该库的身份验证方法与我的动态环境 URL 配合得很好。
AUTHORITY = f'https://login.microsoftonline.com/{TENANT_ID}'
SCOPES = ['https://api.bap.microsoft.com/.default']
app = ConfidentialClientApplication(
client_id=CLIENT_ID,
authority=AUTHORITY,
client_credential=CLIENT_SECRET,
)
token_response = app.acquire_token_for_client(scopes=SCOPES)
权限(我没有找到PA的申请权限):
由于我没有任何生命周期操作,我尝试使用示例查询来访问 PowerApps API 并得到与您相同的错误:
https://api.bap.microsoft.com/providers/Microsoft.BusinessAppPlatform/scopes/admin/environments/myenv?api-version=2020-10-01&$select=properties/lifecycleOperationsEnforcement
应用程序 xxx 的 ID 为“xxx”的服务主体无权访问路径“https://10.0.5.63:20062/providers/Microsoft.BusinessAppPlatform/lifecycleOperations?api-version=2021-04-01”租户xxx如果 Azure AD 应用程序没有足够的权限来执行该操作,通常会发生此错误。
要解决该错误,您必须向 Microsoft Power Platform 注册客户端应用程序 ID,才能使用客户端凭据流程访问 PowerApps。
注册管理员管理应用程序:
PUT https://api.bap.microsoft.com/providers/Microsoft.BusinessAppPlatform/adminApplications/ClientID?api-version=2020-10-01
现在我通过 Postman 使用以下参数生成了
访问令牌:
现在作为示例
我尝试访问 PowerApps API 并成功了,如下所示:
https://api.bap.microsoft.com/providers/Microsoft.BusinessAppPlatform/scopes/admin/environments/myenv?api-version=2020-10-01&$select=properties/lifecycleOperationsEnforcement
您可以在将应用程序注册为管理员管理应用程序后生成访问令牌,并通过
https://api.bap.microsoft.com/providers/Microsoft.BusinessAppPlatform/lifecycleOperations?api-version=2021-04-01
参考资料: