使用 Log Analytics 分析 Microsoft Entra 活动日志

将 Microsoft Entra 活动日志与 Azure Monitor 日志集成之后,可以使用 Log Analytics 和 Azure Monitor 日志的强大功能来深入了解自己的环境。

  • 比较 Microsoft Entra 登录日志与 Microsoft Defender for Cloud 发布的安全日志。

  • 通过从 Azure Application Insights 关联应用程序性能数据,可以解决应用程序登录页上的性能瓶颈。

  • 分析标识保护风险用户和风险检测日志,以检测环境中的威胁。

本文介绍如何在 Log Analytics 工作区中分析 Microsoft Entra 活动日志。

先决条件

若要使用 Log Analytics 分析活动日志,需要:

  • 一个工作 Microsoft Entra 租户,具有与之关联的 Microsoft Entra P1 或 P2 许可证。
  • 一个 Log Analytics 工作区对该工作区的访问权限
  • Azure Monitor 和 Microsoft Entra ID 的相应角色

Log Analytics 工作区

必须创建 Log Analytics 工作区。 有多种因素决定对 Log Analytics 工作区的访问权限。 需要为工作区和发送数据的资源提供适当的角色。

有关详细信息,请参阅管理对 Log Analytics 工作区的访问权限

Azure Monitor 角色

Azure Monitor 提供两个内置角色,用于查看监视数据和编辑监视设置。 Azure 基于角色的访问控制 (RBAC) 还提供两个授予类似访问权限的 Log Analytics 内置角色。

  • 视图

    • 监视查阅者
    • Log Analytics 读者
  • 查看和修改设置

    • 监视参与者
    • Log Analytics 参与者

有关 Azure Monitor 内置角色的详细信息,请参阅 Azure Monitor 中的角色、权限和安全性

有关 Log Analytics 角色的详细信息,请参阅 Azure 内置角色

Microsoft Entra 角色

只读访问权限允许查看工作簿内的 Microsoft Entra ID 日志数据、从 Log Analytics 查询数据或在 Microsoft Entra 管理中心读取日志。 更新访问权限增加了创建和编辑诊断设置的功能,以便将 Microsoft Entra 数据发送到 Log Analytics 工作区。

  • “读取”

    • 报告读者
    • 安全读取者
    • 全局读取者
  • 更新

    • 安全管理员

有关 Microsoft Entra 内置角色的详细信息,请参阅 Microsoft Entra 内置角色

访问 Log Analytics

若要查看 Microsoft Entra ID Log Analytics,必须已将活动日志从 Microsoft Entra ID 发送到 Log Analytics 工作区。 如何将活动日志与 Azure Monitor 集成一文中介绍了此过程。

提示

本文中的步骤可能因开始使用的门户而略有不同。

  1. 至少以报告读取者身份登录到 Microsoft Entra 管理中心

  2. 浏览到“标识”>“监视和运行状况”>“Log Analytics”。 此时将运行默认搜索查询。

    默认查询

  3. 展开“LogManagement”类别以查看与日志相关的查询的列表。

  4. 选择查询名称或悬停在查询名称上方,查看说明和其他有用的详细信息。

  5. 从列表中展开查询以查看架构。

    查询架构的屏幕截图。

查询活动日志

可以对要路由到 Log Analytics 工作区的活动日志运行查询。 例如,若要获取上周登录次数最多的应用程序列表,请输入以下查询并选择“运行”按钮。

SigninLogs 
| where CreatedDateTime >= ago(7d)
| summarize signInCount = count() by AppDisplayName
| sort by signInCount desc 

若要查找有风险的登录事件,请使用以下查询:

SigninLogs
| where RiskState contains "atRisk"

若要获取最近一周发生最多的审核事件,可使用以下查询:

AuditLogs 
| where TimeGenerated >= ago(7d)
| summarize auditCount = count() by OperationName 
| sort by auditCount desc