Azure active directory 如何授予服务主体对Active Directory组的读取权限?

Azure active directory 如何授予服务主体对Active Directory组的读取权限?,azure-active-directory,microsoft-graph-api,github-actions,active-directory-group,azure-service-principal,Azure Active Directory,Microsoft Graph Api,Github Actions,Active Directory Group,Azure Service Principal,目前,我正在尝试从使用服务主体登录的GitHub操作读取Active Directory组的ObjectId 服务主体是具有以下附加权限的参与者: "Microsoft.Authorization/roleAssignments/write", "Microsoft.Authorization/roleAssignments/read" Directory.Read.All (Granted) Group.Read.All (Granted) 使用Az

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

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

"Microsoft.Authorization/roleAssignments/write",
"Microsoft.Authorization/roleAssignments/read"
Directory.Read.All (Granted)
Group.Read.All (Granted)
使用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通过以下权限向服务主体授予权限:

"Microsoft.Authorization/roleAssignments/write",
"Microsoft.Authorization/roleAssignments/read"
Directory.Read.All (Granted)
Group.Read.All (Granted)
但是,这些不足以授予读取权限。

有两种方法可以解决此问题(建议使用第二种方法):

  • 此命令实质上调用
    Azure AD Graph
    而不是
    Microsoft Graph
    ,因此Microsoft Graph的权限将不会生效,此处需要的是应用程序权限(非委派权限)
    目录。读取
    Azure AD Graph
    中的所有
  • 另一种方法是向服务主体提供,例如,此角色的权限小于上面的
    Directory.Read.All
    ,并且AAD Graph是受支持的遗留API,因此建议使用第二种方法。赋予角色后,等待一段时间生效,然后它就会正常工作
  • 解决问题的两种方法(建议使用第二种方法):

  • 此命令实质上调用
    Azure AD Graph
    而不是
    Microsoft Graph
    ,因此Microsoft Graph的权限将不会生效,此处需要的是应用程序权限(非委派权限)
    目录。读取
    Azure AD Graph
    中的所有
  • 另一种方法是向服务主体提供,例如,此角色的权限小于上面的
    Directory.Read.All
    ,并且AAD Graph是受支持的遗留API,因此建议使用第二种方法。赋予角色后,等待一段时间生效,然后它就会正常工作

  • 谢谢Joy,我接受了你的第二次推荐,效果很好,我感谢你的回答谢谢Joy,我接受了你的第二次推荐,效果很好,我感谢你的回答