【问题标题】:How to grant a Service Principal read access to the Active Directory Groups?如何授予服务主体对 Active Directory 组的读取权限?
【发布时间】:2020-12-23 18:32:34
【问题描述】:

目前我正在尝试从我使用服务主体登录的 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-active-directory microsoft-graph-api github-actions active-directory-group azure-service-principal


    【解决方案1】:

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

    1. 这个命令本质上是调用Azure AD Graph而不是Microsoft Graph,所以Microsoft Graph的权限不会生效,这里需要的是应用权限(不是委托权限) Directory.Read.All in Azure AD Graph

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

    【讨论】:

    • 谢谢乔伊,我接受了你的第二次推荐,效果很好,感谢您的回答
    猜你喜欢
    • 2021-04-13
    • 1970-01-01
    • 1970-01-01
    • 2020-09-25
    • 2023-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-17
    相关资源
    最近更新 更多