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

如何用Azure Logic Apps从Entra ID提取日志并同步至Sentinel事件评论?

解决方案:Azure Logic Apps 提取Entra ID日志并同步到Sentinel事件评论

一、核心流程框架

整体逻辑链:

  • 触发:Sentinel事件响应触发Logic App
  • 提取:从事件中获取目标用户实体的标识(UPN/Object ID)
  • 查询:拉取该用户过去24小时的Entra ID登录+审计日志
  • 输出:将日志内容或链接写入Sentinel事件评论

二、方案1:提取日志内容到评论(完整版)

1. 触发与实体提取

  • 使用Sentinel连接器的 When a response to an Azure Sentinel alert is triggered 作为触发动作
  • 添加Initialize variable动作,存储用户UPN/Object ID:
    • 遍历事件实体,筛选类型为Account的条目,用表达式提取标识:
      first(body('Filter_array'))?['Name'] // 提取首个用户UPN
      
      (注:Filter_array动作用于从triggerBody()?['Entities']中筛选Type等于Account的实体)

2. 查询Entra ID日志

  • 添加Azure AD连接器的 List sign-ins 动作:
    • 筛选条件:createdDateTime ge '@{addHours(utcNow(), -24)}' and userPrincipalName eq '@{variables('UserUPN')}'
  • 添加Azure AD连接器的 List directory audit logs 动作:
    • 筛选条件:activityDateTime ge '@{addHours(utcNow(), -24)}' and targetResources/any(t: t/id eq '@{variables('UserObjectID')}')

3. 格式化日志内容

  • 添加Compose动作,将两类日志整理为可读格式,示例表达式:
    concat('### 过去24小时登录日志(', length(body('List_sign-ins')), '条)\n', join(body('List_sign-ins'), '\n---\n'), '\n\n### 过去24小时审计日志(', length(body('List_directory_audit_logs')), '条)\n', join(body('List_directory_audit_logs'), '\n---\n'))
    

4. 写入Sentinel评论

  • 使用Sentinel连接器的 Add comment to incident 动作,将Compose的输出作为评论正文

三、方案2:生成日志直接链接(简化版)

如果日志量过大或格式复杂,可直接生成Entra ID控制台的日志链接:

1. 提取用户Object ID

  • 从Account实体中提取ObjectID字段,存储为变量

2. 构造日志链接

  • 添加Compose动作,拼接Markdown格式的链接:
    concat('[用户登录日志(过去24小时)](https://entra.microsoft.com/#view/Microsoft_AAD_IAM/AuthenticationEventsMenuBlade/~/SignIns/userId/', variables('UserObjectID'), '&timeRange=24h)\n\n[用户审计日志(过去24小时)](https://entra.microsoft.com/#view/Microsoft_AAD_IAM/AuditLogsMenuBlade/~/AllAudits/userId/', variables('UserObjectID'), '&timeRange=24h)')
    

3. 写入评论

  • 同样用Add comment to incident动作,将Compose的链接内容发布到评论

四、关键注意事项

  • 权限配置:确保Logic Apps托管标识拥有:
    • Sentinel的Microsoft.SecurityInsights/incidents/comments/write权限
    • Entra ID的AuditLog.Read.All和Directory.Read.All权限
  • 实体处理:若事件包含多个用户实体,需添加分支逻辑(如For each循环)处理所有用户
  • 分页处理:若日志条目超过连接器默认返回上限,需添加Until循环遍历分页结果
  • 时间准确性:始终用addHours(utcNow(), -24)动态计算时间范围,避免硬编码

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 04:04:53