收集 Microsoft Dynamics 365 用户活动日志

支持:

本文档介绍如何使用 Microsoft Azure Blob Storage V2 设置 Google SecOps Feed,以收集 Microsoft Dynamics 365 用户活动日志。

Microsoft Dynamics 365 是一个基于云的企业应用平台,它将 CRM 和 ERP 功能相结合。用户活动日志会捕获用户在 Dynamics 365 应用中执行的操作和事件,包括实体操作、数据访问权限和管理活动。Dynamics 365 基于 Microsoft Dataverse 构建,后者通过 Microsoft Purview 统一审核日志提供全面的审核日志记录。

准备工作

确保您满足以下前提条件:

  • Google SecOps 实例
  • Microsoft Azure 门户的特权访问权限,包括:
    • 创建存储账号
    • 配置 Azure Synapse Link for Dataverse
    • 管理访问密钥
  • 包含 Dynamics 365 的 Microsoft 365 订阅
  • Dynamics 365 环境中的系统管理员安全角色
  • Power Platform 管理中心 的全局管理员或 Power Platform 管理员访问权限

启用 Dataverse 审核

在导出 Dynamics 365 用户活动日志之前,您必须在 Power Platform 管理中心内启用审核。

  1. 登录 Power Platform 管理中心
  2. 在导航窗格中,选择环境
  3. 选择包含 Dynamics 365 部署的环境。
  4. 在命令栏中,选择设置
  5. 展开审核和日志 ,然后选择审核设置
  6. 审核 下,启用以下选项:
    • 开始审核:为环境启用审核。
    • 记录访问:跟踪用户登录。
    • 读取日志:捕获大多数用户活动和事件。
  7. 根据您的要求设置审核日志的保留政策
  8. 选择保存 以应用更改。

启用表级审核

  1. 登录 Power Apps 并选择环境。
  2. 在命令栏中,依次选择设置 > 高级设置
  3. 依次前往设置 > 自定义 > 自定义系统
  4. 在导航窗格中,展开组件下的实体,然后选择要审核的实体(例如账号)。
  5. 向下滚动到数据服务 ,然后启用审核 复选框。
  6. 审核 下,启用以下选项:
    • 单条记录审核。在打开记录时记录该记录。
    • 多条记录审核。记录打开的页面上显示的所有记录。
  7. 依次选择保存发布
  8. 针对要审核的每个表重复执行第 4-7 步。

如需了解详情,请参阅 Microsoft Dataverse 和模型驱动型应用活动日志记录

配置 Azure 存储账号

创建存储账号

  1. Azure 门户 中,搜索 存储账号
  2. 点击 + 创建
  3. 提供以下配置详细信息:

    设置
    订阅 选择您的 Azure 订阅
    资源组 选择现有组或创建新组
    存储账号名称 输入一个唯一名称(例如 secopsd365logs
    区域 选择与您的 Dataverse 环境相同的区域
    性能 标准(推荐)
    冗余 GRS(地理位置冗余存储)或 LRS(本地冗余存储)
  4. 选择高级 标签页,然后启用分层命名空间 选项。

  5. 点击 Review + create (检查 + 创建)。

  6. 查看账号概览,然后点击创建

  7. 等待部署完成。

获取存储账号凭据

  1. 前往您刚刚创建的存储账号
  2. 在左侧导航栏中,选择安全和网络 下的访问密钥
  3. 点击显示密钥
  4. 复制并保存以下内容以供日后使用:
    • 存储账号名称secopsd365logs
    • 密钥 1密钥 2:共享访问密钥(采用 base-64 编码的 512 位随机字符串)

获取 Blob 服务端点

  1. 在同一存储账号中,从左侧导航栏中选择端点
  2. 复制并保存 Blob 服务 端点网址。
    • 示例:https://secopsd365logs.blob.core.windows.net/

授予存储账号权限

向将配置 Azure Synapse Link 的 Power Platform 管理员授予权限:

  1. 存储账号 中,选择左侧窗格中的访问权限控制 (IAM)
  2. 点击 + 添加 > 添加角色分配
  3. 将以下角色分配给 Power Platform 管理员:
    • Storage Blob Data Contributor
    • Storage Blob Data Owner

Azure Synapse Link for Dataverse 会将 Dataverse 审核表导出到 Azure Data Lake Storage Gen2,后者与 Azure Blob Storage V2 Feed 兼容。

创建 Azure Synapse 工作区

  1. Azure 门户 中,搜索 Synapse Analytics
  2. 点击 + 创建
  3. 提供以下配置详细信息:
    • 订阅:选择您在其中创建存储账号的订阅。
    • 资源组:选择与存储账号相同的资源组。
    • 工作区名称:输入一个唯一名称(例如 synapse-d365-secops)。
    • 区域:选择与您的 Dataverse 环境相同的区域。
    • 存储账号名称:选择您之前创建的存储账号 (secopsd365logs)。
    • 文件系统名称:点击新建 ,然后输入一个名称(例如 d365-audit)。
  4. 依次点击 Review + create (检查 + 创建)和创建
  5. 等待部署完成。

创建 Apache Spark 池

  1. Azure 门户 中,前往您创建的 Synapse 工作区。
  2. 点击 + 新建 Apache Spark 池
  3. 提供以下配置详细信息:
    • Apache Spark 池名称:输入一个名称(例如 sparkpoold365)。
    • 节点数:输入 5
  4. 选择其他设置 标签页,然后在空闲分钟数 中输入 5
  5. 依次点击 Review + create (检查 + 创建)和创建

将 Dataverse 审核表连接到 Synapse 工作区

  1. 登录 Power Apps 并选择包含 Dynamics 365 部署的环境。
  2. 在左侧导航窗格中,选择 Azure Synapse Link 。如果该项不可见,请依次选择 更多 > 发现所有 ,然后找到 Azure Synapse Link
  3. 点击新建关联
  4. 新建关联 页面上:
    • 选择连接到您的 Azure Synapse Analytics 工作区 选项。
    • 订阅:选择 Azure 订阅。
    • 资源组:选择包含 Synapse 工作区的资源组。
    • 存储账号:选择存储账号 (secopsd365logs)。
    • 选择使用 Spark 池进行 Delta Lake 数据转换作业 选项。
    • Spark 池:选择您创建的 Spark 池 (sparkpoold365)。
    • 存储账号:选择相同的存储账号。
  5. 点击下一步
  6. 展开高级 标签页,然后在时间间隔 字段中输入 480 分钟。
  7. 在表列表中,选择审核 表和用户 表。
  8. 点击保存

如需了解详情,请参阅使用 Azure Synapse Link 和 Power BI 访问审核数据

在 Google SecOps 中配置 Feed 以注入 Microsoft Dynamics 365 用户活动日志

  1. 前往 SIEM 设置 > Feed
  2. 点击 Add New Feed (添加新 Feed)。
  3. 在下一页上,点击 Configure a single feed (配置单个 Feed)。
  4. Feed 名称字段中,输入 Feed 的名称(例如 Microsoft Dynamics 365 User Activity)。
  5. 选择 Microsoft Azure Blob Storage V2 作为来源类型
  6. 选择 Microsoft Dynamics 365 作为日志类型
  7. 点击下一步
  8. 为以下输入参数指定值:

    • Azure URI:输入 Blob 服务端点网址和容器路径:
    https://secopsd365logs.blob.core.windows.net/d365-audit/
    

    替换以下内容:

    • secopsd365logs:您的 Azure 存储账号名称。
    • d365-audit:在 Synapse 工作区中配置的文件系统(容器)名称。
    • 来源删除选项:根据您的偏好选择删除选项:
    • 永不:转移后永不删除任何文件。
    • 删除已转移的文件:在成功转移后删除文件。
    • 删除已转移的文件和空目录:在成功转移后删除文件和空目录。
    • 最长文件存在时间:包含在过去指定天数内修改的文件(默认值为 180 天)
    • 共享密钥:输入您之前从存储账号捕获的共享密钥值(访问密钥)
    • 资产命名空间资产命名空间
    • 提取标签:要应用于此 Feed 中的事件的标签
  9. 点击下一步

  10. 完成 屏幕中查看新 Feed 配置,然后点击提交

配置 Azure Storage 防火墙(如果已启用)

如果您的 Azure 存储账号使用防火墙,则必须添加 Google SecOps IP 范围。

  1. Azure 门户 中,前往您的 存储账号
  2. 安全和网络 下,选择网络
  3. 防火墙和虚拟网络 下,选择从所选虚拟网络和 IP 地址启用
  4. 防火墙 部分的地址范围 下,点击 + 添加 IP 范围
  5. 以 CIDR 表示法添加每个 Google SecOps IP 范围。

    如需获取当前的 IP 范围,请执行以下操作:

  6. 点击保存

UDM 映射表

日志字段 UDM 映射 逻辑
BuildNumber about.labels 如果 about_BuildNumber 不为空,则将其与键“BuildNumber”和值合并
RECORD_IDENTIFIER additional.fields 如果每个字段不为空,则将其与根据每个字段创建的标签合并
LastProcessedChange_DateTime additional.fields
DataLakeModified_DateTime additional.fields
Application_Object_Server_node additional.fields
ClientType additional.fields
LogoutDateTime additional.fields
LOGOUTDATETIMETZID additional.fields
TerminatedOk additional.fields
Type additional.fields
Alive additional.fields
PARTITION additional.fields
has_user metadata.event_type 如果 has_user 为 true,则设置为“GENERIC_EVENT”,然后设置为“USER_UNCATEGORIZED”;否则,如果 has_principal 为 true,则设置为“STATUS_UPDATE”
has_principal metadata.event_type
RECVERSION metadata.product_version 如果不为空,则直接复制值
SessionId network.session_id 如果不为空,则直接复制值
LOG_SEQUENCE_NUMBER security_result.detection_fields 如果 LOG_SEQUENCE_NUMBER 不为空,则将其与键“LOG_SEQUENCE_NUMBER”和值合并
UserId target.user.userid 如果不为空,则直接复制值
timestamp timestamp 如果不为空,则使用日期匹配(采用 ISO8601 或 RFC 3339 格式)进行解析
metadata.product_name metadata.product_name 设置为“MICROSOFT_DYNAMICS_365”
metadata.vendor_name metadata.vendor_name 设置为“MICROSOFT_DYNAMICS_365”

更新日志

查看此解析器的更新日志

需要更多帮助?获得社区成员和 Google SecOps 专业人士的解答。