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

如何通过Azure管理API查询仅可在Resource范围分配的角色定义

根因说明

你使用的 2018-01-01-preview 版本的Azure管理API不支持 atScopeAndBelow() 过滤参数,这是触发400错误的核心原因。该过滤能力是后续正式版API新增的特性,旧预览版仅支持按角色名称、角色类型两类基础过滤。

解决方案1:升级API版本使用服务端过滤

直接将请求的API版本替换为 2022-04-01 及以上正式版本,同时添加$filter=atScopeAndBelow()参数即可,请求示例如下:

GET https://management.azure.com/subscriptions/<subscriptionId>/resourceGroups/<resourceGroup>/providers/Microsoft.Compute/virtualMachines/<virtualMachineName>/providers/Microsoft.Authorization/roleDefinitions?$filter=atScopeAndBelow()&api-version=2022-04-01

调用该接口会直接返回仅可在当前资源层级分配的角色定义,和Azure门户显示的可选角色列表完全一致,不会出现AcrPull这类不适用于虚拟机的角色。

解决方案2:低版本API兼容方案

如果你的业务场景无法升级API版本,可以在拿到全量返回结果后,根据角色定义的assignableScopes字段做本地过滤,保留满足以下任一条件的角色即可:

  • assignableScopes包含当前查询资源的完整资源ID
  • assignableScopes包含当前资源所属的资源组ID
  • assignableScopes包含当前资源所属的订阅ID
  • assignableScopes包含租户根作用域/

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 12:54:04