授予 Azure 应用程序用户对 PowerApps API 的访问权限

问题描述 投票:0回答:1

我创建了一个单一租户应用程序,并将其分配为具有系统管理员权限的应用程序用户,以访问我的 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的申请权限):

azure authentication microsoft-dynamics powerapps
1个回答
0
投票

由于我没有任何生命周期操作,我尝试使用示例查询来访问 PowerApps API 并得到与您相同的错误:

https://api.bap.microsoft.com/providers/Microsoft.BusinessAppPlatform/scopes/admin/environments/myenv?api-version=2020-10-01&$select=properties/lifecycleOperationsEnforcement

enter image description here

应用程序 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

enter image description here

现在我通过 Postman 使用以下参数生成了

访问令牌

enter image description here

现在作为示例

我尝试访问 PowerApps API 并成功了,如下所示:

https://api.bap.microsoft.com/providers/Microsoft.BusinessAppPlatform/scopes/admin/environments/myenv?api-version=2020-10-01&$select=properties/lifecycleOperationsEnforcement

enter image description here

您可以在将应用程序注册为管理员管理应用程序后生成访问令牌,并通过

https://api.bap.microsoft.com/providers/Microsoft.BusinessAppPlatform/lifecycleOperations?api-version=2021-04-01

 访问 PowerApps API。

参考资料:

可编程性和可扩展性 - 身份验证 - Power Platform |微软

可编程性和可扩展性 - 身份验证 - Power Platform |微软

© www.soinside.com 2019 - 2024. All rights reserved.