查询特定用户角色分配需使用哪个Azure RBAC API?
Azure RBAC API 查询特定用户角色相关问题解答
1. 指定用户维度角色分配查询的API支持
Azure 本身提供直接面向用户/服务主体/用户组等主体维度的角色分配查询能力,不需要必须从资源组、单个资源维度逐层遍历查询:
- 调用角色分配列表REST API时,先把请求scope设置为你需要查询的范围:要查用户在整个租户的角色分配就填根范围
/,查特定订阅/管理组/资源组下的分配就填对应资源的资源ID,再在$filter查询参数中传入atScope() and principalId eq '{待查询用户的Azure AD对象ID}',就能直接过滤出目标用户在对应范围内的所有角色分配结果。 - 调用该接口要求身份持有
Microsoft.Authorization/roleAssignments/read权限,内置的所有者、用户访问管理员、读取者等角色默认包含该权限。 - 如果要查询用户跨租户的角色分配,在请求头添加
x-ms-authorization-auxiliary参数传入对应租户的合法认证令牌即可。
2. API返回roleDefinitionName字段与CLI结果一致性问题
- 2022-04-01及之后发布的正式稳定版RBAC API,已经对齐Azure CLI的返回逻辑:接口响应默认携带
roleDefinitionName字段,值为对应角色定义的显示名称,不需要额外单独调用角色定义接口做ID到名称的映射。 - 如果你调用API时发现响应里没有这个字段,首先检查你使用的API版本:2015-07-01、2018-01-01-preview等早期旧版本、预览版本API确实不会默认返回该字段,把API版本升级到最新稳定版就能拿到和CLI一致的返回结果。
- 目前没有计划对旧版本API回溯调整响应逻辑,所有字段对齐、体验优化类的更新,都会仅在最新发布的稳定版API中上线。
内容的提问来源于stack exchange,提问作者Moris
相关产品推荐
相关产品推荐

