目前,我正在尝试从我使用服务主体登录的 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)
但是这些不足以授予读取权限。
最佳答案
解决问题的两种方法(推荐第一种):
- 此命令实质上调用的是
Azure AD Graph
而不是Microsoft Graph
,因此 Microsoft Graph 的权限不会生效,这里您需要的是 Application权限(不是委托(delegate)权限)Azure AD Graph
中的Directory.Read.All
。
- 另一种方法是给出 Azure AD admin role给服务主体,例如
Directory Readers
,该角色的权限小于上面的Directory.Read.All
,并且AAD Graph是Supported Legacy API,所以推荐第二种方式。赋予角色后,等待一段时间生效即可正常使用。
关于azure-active-directory - 如何授予服务主体对 Active Directory 组的读取权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65429219/