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

求获取所有应用注册的Resource Graph API权限的Resource Graph GET请求地址

通过Resource Graph获取应用注册的Resource Graph API权限的可行性及实现方案

可行性结论

完全可行。Azure Resource Graph支持查询Microsoft Entra应用注册的资源信息,包括其配置的API权限,可通过Kusto查询语句筛选出针对Resource Graph API的权限条目,配合Logic Apps可实现对高敏感写入类权限的监控。

Resource Graph查询实现

请求地址与调用方式

Resource Graph的资源查询接口为:

https://management.azure.com/providers/Microsoft.ResourceGraph/resources?api-version=2021-03-01

需以POST方法调用,请求头需包含有效的Azure AD访问令牌和Content-Type: application/json。

权限查询Kusto语句

以下语句可筛选所有应用注册中配置的Resource Graph API权限,并区分权限类型及名称:

resources
| where type == "microsoft.directory/applications"
| extend requiredResourceAccess = properties.requiredResourceAccess
| mv-expand requiredResourceAccess
| // 筛选Resource Graph API服务主体(固定ID:d9e6a7a5-f819-459e-b2e7-6f6d38279f93)
| where requiredResourceAccess.resourceAppId == "d9e6a7a5-f819-459e-b2e7-6f6d38279f93"
| mv-expand permissions = requiredResourceAccess.resourceAccess
| project 
    应用名称 = properties.displayName,
    应用ID = appId,
    权限类型 = iif(permissions.type == 'Scope', '委派权限', '应用权限'),
    权限名称 = case(
        permissions.id == 'e1fe6dd8-ba31-4d61-89e7-88639da4683d', 'Resource Graph Data Reader',
        permissions.id == '7ab1d382-f21e-4acd-a863-ba3e13f7da61', 'Resource Graph Data Writer',
        permissions.id == 'a057708d-8222-4375-9142-f92e8c5b7325', 'Resource Graph Data Contributor',
        '未知权限'
    )

Logic Apps监控高敏感权限的步骤

  1. 创建定时触发器:选择"Recurrence"触发器,设置监控频率(如每小时执行一次)。
  2. 调用Resource Graph API:添加"HTTP"动作,配置:
    • 方法:POST
    • URL:上述Resource Graph接口地址
    • 请求头:Authorization: Bearer {access-token}(通过托管身份或服务主体获取令牌)、Content-Type: application/json
    • 请求体:包含上述Kusto查询的JSON结构,示例:
      {
          "query": "resources | where type == \"microsoft.directory/applications\" | extend requiredResourceAccess = properties.requiredResourceAccess | mv-expand requiredResourceAccess | where requiredResourceAccess.resourceAppId == \"d9e6a7a5-f819-459e-b2e7-6f6d38279f93\" | mv-expand permissions = requiredResourceAccess.resourceAccess | project 应用名称 = properties.displayName, 应用ID = appId, 权限类型 = iif(permissions.type == 'Scope', '委派权限', '应用权限'), 权限名称 = case(permissions.id == 'e1fe6dd8-ba31-4d61-89e7-88639da4683d', 'Resource Graph Data Reader', permissions.id == '7ab1d382-f21e-4acd-a863-ba3e13f7da61', 'Resource Graph Data Writer', permissions.id == 'a057708d-8222-4375-9142-f92e8c5b7325', 'Resource Graph Data Contributor', '未知权限')"
      }
      
  3. 筛选高敏感权限:添加"Filter array"动作,以API返回的value数组为输入,筛选条件设为权限名称 contains 'Writer' or 权限名称 contains 'Contributor'。
  4. 触发告警:添加条件判断,若筛选结果不为空,执行告警动作(如发送Office 365邮件、Teams消息),将包含敏感权限的应用详情通知管理员。

权限要求

  • 调用Resource Graph的身份需拥有Resource Graph Reader RBAC角色。
  • 需具备读取Microsoft Entra应用注册的权限(如Directory Readers角色)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 09:33:32