Azure服务主体:为服务主体授予appRoleAssignment确实会更新原始权限的状态

问题描述

我正在尝试使用Microsoft图形API向管理员授予分配的权限的同意。 我执行的步骤如下:

  1. 创建定义了“ appRoles”数组的应用程序。

  2. 使用appId创建服务主体。

  3. 为服务主体授予appRoleAssignment。 我运行了http发布请求:

https://graph.microsoft.com/v1.0/servicePrincipals/{id}/appRoleAssignedTo

  1. 在Azure门户中,我看到它正在创建另一个权限并向其授予同意,而不是授予最初的当前权限,如下图所示。

enter image description here

为什么即使'appRoleId'相同,它也不授予原始权限?我想授予原始权限,有人可以告诉我吗?谢谢。

解决方法

当然,它不会授予原始权限,当您创建应用程序并公开API权限时,此权限和Exchange中的权限完全是来自不同API的两种不同权限,无论{他们使用了{1}}。

要为您的应用授予appRoleId 应用许可,请按照以下步骤操作。

1。在门户中导航至AD App-> full_access_as_app-> Manifest,获取requiredResourceAccessresourceAppId,记下idid

enter image description here

2。导航至门户网站中的appRoleId-> Azure Active Directory->搜索在步骤1中获得的Enterprise applications,然后您会找到resourceAppId->单击它-> Office 365 Exchange Online->得到Overview,记为Object ID

注意:此resourceId在不同的AAD租户中是不同的。

enter image description here

3。导航至广告应用程序->单击Object ID,然后获取Managed application in local directory,记为Object ID

enter image description here

enter image description here

4。然后调用您使用的Microsoft Graph-Grant an appRoleAssignment for a service principal,使用之前获得的值。

principalId

我在Graph Explorer中对其进行了测试:

enter image description here

在门户中检查结果,效果很好。

enter image description here