如何解决如何授予服务主体对 Active Directory 组的读取访问权限?
目前,我正在尝试从使用服务主体登录的 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的权限不会生效,这里你需要的是应用程序权限(不是委托权限)Directory.Read.All
中的Azure AD Graph
。
- 另一种方法是将 Azure AD admin role 提供给服务主体,例如
Directory Readers
,这个角色的权限小于上面的Directory.Read.All
,而且AAD Graph是Supported legacy API,所以推荐第二种方式。赋予角色后,稍等片刻生效,即可正常工作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。