关于通过Graph API获取Azure AD用户角色与组的技术咨询
获取Azure AD用户角色与组的API权限、调用方式及替代方案
一、所需API权限配置
根据你的访问场景(用户登录交互/后台服务无用户上下文),需配置Microsoft Graph的对应权限,除基础的User.Read外,其余权限均需管理员同意:
获取用户所属组
- 委托权限(用户登录场景):
Group.Read.All:读取所有组及成员关系,适用于需查看任意用户所属组的场景GroupMember.Read.All:仅读取组成员关系,适合仅需确认用户组归属的轻量需求- 若仅查看当前登录用户的组,
User.Read基础权限即可满足
- 应用权限(后台服务场景):
Group.Read.All:后台应用无用户上下文时,读取所有组及成员关系
获取用户分配的Azure AD角色
- 委托权限(用户登录场景):
DirectoryRole.Read.All:读取所有目录角色分配,可查看任意用户的角色- 若仅查看当前登录用户的角色,
User.Read即可
- 应用权限(后台服务场景):
DirectoryRole.Read.All:后台应用无用户上下文时读取所有角色分配
二、用于获取角色和组的Microsoft Graph API
获取用户所属组
- 获取指定用户的直接所属组:
GET https://graph.microsoft.com/v1.0/users/{user-id}/memberOf/microsoft.graph.group - 获取用户的所有嵌套组(含间接所属):
GET https://graph.microsoft.com/v1.0/users/{user-id}/transitiveMemberOf/microsoft.graph.group
获取用户分配的Azure AD角色
- 获取指定用户的直接角色分配:
GET https://graph.microsoft.com/v1.0/users/{user-id}/directoryRoles - 获取用户的所有角色(含组继承):
GET https://graph.microsoft.com/v1.0/users/{user-id}/transitiveMemberOf/microsoft.graph.directoryRole
三、其他访问Azure AD角色和组的方式
- Azure门户:进入Azure AD的「用户」页面,打开目标用户详情页,查看「组」和「已分配的角色」标签,直观查看信息
- PowerShell:使用Microsoft Graph PowerShell模块执行命令:
- 获取用户组:
Get-MgUserMemberOf -UserId {user-id} - 获取用户角色:
Get-MgUserDirectoryRole -UserId {user-id}
- 获取用户组:
- Azure AD Graph Explorer:在浏览器中直接调用Microsoft Graph API进行测试,无需编写代码,适合快速验证数据
内容的提问来源于stack exchange,提问作者Ganesh kumar
相关产品推荐
相关产品推荐

