如何通过API获取Azure Security Center任务且无需浏览器授权
无需浏览器授权获取Azure Security Center安全任务解决方案
你提到的Security Center Tasks List接口并非仅支持隐式流,完全可以通过非交互式的客户端凭据流完成授权,无需浏览器弹窗,也可选择替代的Resource Graph方案获取相同数据。
方案一:通过服务主体调用原生Tasks接口
- 在Azure AD中注册应用,为该应用分配目标范围(订阅/管理组/租户)下的
Security ReaderRBAC权限,权限分配完成后等待15分钟生效。 - 调用Azure AD令牌接口获取访问令牌,全程无需用户交互,向
https://login.microsoftonline.com/{你的租户ID}/oauth2/v2.0/token发送POST请求,请求体携带以下参数:grant_type=client_credentials client_id=<注册应用的客户端ID> client_secret=<注册应用生成的客户端密钥> scope=https://management.azure.com/.default - 将获取到的访问令牌添加到请求头
Authorization: Bearer <令牌值>,直接调用Tasks接口即可返回全量安全任务数据。
方案二:使用Azure Resource Graph获取等效数据
如果需要更灵活的筛选、批量查询能力,可以调用Azure Resource Graph接口,直接查询安全评估表获取完全等效的安全建议数据,同样支持服务主体非交互式授权。
示例查询语句如下:
securityresources | where type == "microsoft.security/assessments" | extend 建议名称 = properties.displayName, 严重级别 = properties.metadata.severity, 修复状态 = properties.status.code, 关联资源ID = properties.resourceDetails.Id | project 建议名称, 严重级别, 修复状态, 关联资源ID
内容的提问来源于stack exchange,提问作者tamir michaeli
相关产品推荐
相关产品推荐

