You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AAD目录角色权限与Graph权限的差异及映射方法问询

AAD目录角色权限与Microsoft Graph权限的差异及映射方法

我正在尝试通过编程确定用户分配到特定AAD目录角色时继承的Graph权限。查看内置Azure Active Directory角色时,权限是以路径形式列出的,比如Global Reader角色的首个权限是microsoft.directory/accessReviews/allProperties/read,可以通过Azure门户查看,也能用Microsoft.Graph PowerShell模块查询:

PS> $roleDef = Get-MgRoleManagementDirectoryRoleDefinition -Filter "DisplayName eq 'Global Reader'"
PS> $roleDef.RolePermissions.AllowedResourceActions
microsoft.directory/accessReviews/allProperties/read
microsoft.directory/accessReviews/definitions/allProperties/read

但Graph权限通常是User.Read、Directory.ReadWrite.All这类格式,比如可以通过以下命令查看用户的委托权限和应用权限:

Get-MgUserOauth2PermissionGrant -UserId $userId
Get-MgUserAppRoleAssignment -UserId $userId

针对这两种权限的疑问,解答如下:

1. AAD角色权限与Graph权限存在差异的原因

两者是为不同场景设计的权限体系,核心差异在于定位和作用范围:

  • 定位不同:
    • AAD目录角色是Azure AD的租户管理权限体系,面向租户内的管理操作,粒度更细,以资源路径形式定义对Azure AD内部资源(如用户、组、访问评审)的具体操作权限,属于RBAC模型,用于管控管理员对租户核心管理功能的访问。
    • Graph权限是Microsoft Graph API的调用授权体系,面向API接口的访问控制,分为委托权限(代表用户调用API)和应用权限(应用自身调用API),粒度相对较粗,用于控制哪些API接口可以被访问,属于OAuth2授权模型,针对Graph API的数据访问面。
  • 设计目标不同:
    • AAD角色的目标是让管理员精细化管控租户内的管理动作,比如限制某角色只能重置普通用户密码、不能修改全局设置。
    • Graph权限的目标是让应用/用户安全调用Graph API获取或修改数据,比如允许应用读取所有用户信息、禁止修改邮箱配置。
  • 作用范围不同:
    • AAD角色的权限范围通常是整个Azure AD租户(或特定范围的资源),是针对租户管理面的全局权限。
    • Graph权限可以有不同粒度范围,比如User.Read仅允许访问当前用户的数据,Directory.Read.All允许访问整个租户的目录数据。

2. 如何将AAD目录角色权限映射到Graph权限

目前没有官方的一对一精准映射,但可以通过以下几种方式实现近似映射:

  • 参考官方角色文档:微软官方会在每个AAD内置角色的说明中,明确列出该角色对应的Graph API访问能力。比如Global Reader角色基本对应所有Read类的目录级Graph权限(如Directory.Read.All、Group.Read.All、User.Read.All等),可直接查阅角色权限说明对应到Graph权限。
  • 通过权限路径推导:AAD角色的权限路径可拆解为「资源类型+操作」,比如microsoft.directory/users/allProperties/read对应Graph API中用户资源的读取操作,匹配User.Read.All或Directory.Read.All权限;microsoft.directory/groups/allProperties/write对应Group.ReadWrite.All权限。
  • API调用验证:模拟拥有目标AAD角色的用户,调用对应的Graph API,通过返回结果判断是否具备对应的Graph权限。比如调用Get-MgUser -All $true如果成功,说明用户具备Directory.Read.All或User.Read.All权限。
  • 自定义角色关联:如果是自定义AAD角色,创建时可根据需要关联的Graph API操作,直接在AllowedResourceActions中添加对应的路径,或反向根据自定义角色的权限路径,匹配对应的Graph权限范围。

内容的提问来源于stack exchange,提问作者geoced

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 12:30:51