0

目前,我正在尝试从使用服务主体登录的 GitHub 操作中读取 Active Directory 组的 ObjectId。

服务主体是具有以下附加权限的贡献者:

"Microsoft.Authorization/roleAssignments/write",
"Microsoft.Authorization/roleAssignments/read"

使用 Azure CLI 运行以下命令时:

az ad group show -g {NAME OF GROUP}

我收到以下输出:

ValidationError: Insufficient privileges to complete the operation.
Error: Error: az cli script failed.

我尝试通过以下权限通过 Microsoft Graph API 向服务主体授予权限:

Directory.Read.All (Granted)
Group.Read.All (Granted)

但是,这些不足以授予读取权限。

4

1 回答 1

2

解决问题的两种方法(推荐第二种):

  1. 该命令本质上调用了Azure AD Graphnot Microsoft Graph,所以 Microsoft Graph 的权限不会生效,这里需要的是Application权限(不是Delegated 权限Directory.Read.AllAzure AD Graph

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

  1. 另一种方式是将Azure AD admin 角色赋予服务主体,例如Directory Readers,该角色的权限小于Directory.Read.All上述,并且 AAD Graph 是 Supported legacy API,因此推荐第二种方式。赋予角色后,等待一段时间生效,然后就可以正常工作了。

在此处输入图像描述

在此处输入图像描述

于 2020-12-24T01:23:42.823 回答