收集 Microsoft Entra ID 登录日志(以前称为 Azure Active Directory)

解析器版本:26.0

支持的平台:

本文档介绍了如何通过设置 Google Security Operations Feed 来收集 Microsoft Entra ID(以前称为 Azure Active Directory)登录日志。您可以使用两种方法配置数据提取:Azure 事件中心(推荐)或第三方 API。

准备工作

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

  • Google SecOps 实例。
  • 对 Microsoft Azure 门户的特权访问权限。
  • Microsoft Entra ID 中的安全管理员或全局管理员角色(诊断设置需要此角色)。
  • 对于第三方 API 方法,用于授予管理员同意权限的角色如下:
    • 全局管理员:可以为任何 API 的任何权限授予同意书。
    • 特许角色管理员:可以为任何 API 的任何权限授予同意书。
    • 云应用管理员:可以针对任何 API 授予任何权限的同意,但 Microsoft Graph 应用角色(应用权限)除外。

此方法通过 Azure 事件中心使用诊断设置来流式传输 Microsoft Entra ID 登录日志。Google SecOps 使用 Azure Event Hub Feed 类型直接从 Event Hub 提取日志。

创建事件中心命名空间

事件中心命名空间是一个管理容器,用于容纳一个或多个事件中心。

  1. Azure 门户中,搜索事件中心
  2. 点击 + 创建
  3. 提供以下配置详细信息:

    设置
    订阅 选择您的 Azure 订阅
    资源组 选择现有组或创建新组
    命名空间名称 输入唯一名称(例如 secops-entraid-signin
    位置 选择离您的 Microsoft Entra 租户最近的区域
    价格层级 标准(建议用于生产环境)
    吞吐量单位 从 1 开始,启用自动充气功能(推荐)
  4. 点击 Review + create(检查 + 创建)。

  5. 查看概览,然后点击创建

  6. 等待部署完成(1-2 分钟)。

创建事件中心

  1. 部署命名空间后,前往事件中心命名空间。
  2. 在左侧导航栏中,选择实体下的事件中心
  3. 点击 + 活动中心
  4. 提供以下配置详细信息:

    设置
    名称 输入唯一名称(例如 entraid-signin-logs
    分区数 40(建议采用此值,以便实现最佳的 Google SecOps 伸缩)
    消息保留 7 天(建议的最低限度)
    拍摄 已停用(Google SecOps 不需要)
  5. 点击创建

获取事件中心连接字符串

Google SecOps 需要连接字符串才能向事件中心进行身份验证。

  1. 前往事件中心命名空间
  2. 在左侧导航栏中,选择设置下的共享访问权限政策
  3. 点击默认政策 RootManageSharedAccessKey
  4. 复制连接字符串 - 主密钥
  5. 请妥善保存此连接字符串。
  • 示例:

    Original: Endpoint=sb://secops-entraid-signin.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=abc123==;EntityPath=entraid-signin-logs
    
    Remove EntityPath: Endpoint=sb://secops-entraid-signin.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=abc123==
    

选项 B:事件中心级连接字符串

  1. 前往事件中心(而非命名空间)。
  2. 在左侧导航栏中,选择设置下的共享访问权限政策
  3. 点击 + 添加以创建新政策。
  4. 提供以下配置详细信息:
    • 政策名称:输入一个描述性名称(例如 chronicle-read
    • 权限:仅选择收听(只读权限)
  5. 点击创建
  6. 点击新创建的政策。
  7. 复制连接字符串 - 主密钥
  8. 请妥善保存此连接字符串。

配置 Microsoft Entra ID 诊断设置

  1. 以至少安全管理员身份登录 Microsoft Entra 管理中心
  2. 依次前往 Entra ID > 监控和运行状况 > 诊断设置
  3. 点击 + 添加诊断设置
  4. 提供以下配置详细信息:
    • 诊断设置名称:输入一个描述性名称(例如 signin-logs-to-eventhub)。
    • 日志部分,选择要导出的登录日志类别:
      • SignInLogs:交互式用户登录。
      • NonInteractiveUserSignInLogs:非交互式用户登录(推荐)。
      • ServicePrincipalSignInLogs:服务主账号登录信息(可选)。
      • ManagedIdentitySignInLogs:托管式身份登录信息(可选)。
      • ADFSSignInLogs:AD FS 登录日志(可选,如果使用 AD FS,则需要提供)。
      • RiskyUsers:Microsoft Entra ID Protection 标记为有风险的用户(可选)。
      • UserRiskEvents:有风险的登录事件详情(可选)。
    • 目标详细信息部分中,选择流式传输到事件中心
    • 订阅:选择包含 Event Hub 命名空间的订阅。
    • 事件中心命名空间:选择您创建的命名空间(例如 secops-entraid-signin)。
    • 事件中心名称:选择您创建的事件中心(例如 entraid-signin-logs)。
    • 事件中心政策名称:选择 RootManageSharedAccessKey
  5. 点击保存

(可选)配置 Azure Blob Storage 以进行检查点设置

Google SecOps 可以使用 Azure Blob Storage 来存储事件中心检查点,这些检查点用于跟踪已处理的事件。这样可以防止在 Feed 暂时中断时重复提取数据。

创建用于检查点设置的存储账号

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

    设置
    订阅 选择您的 Azure 订阅
    资源组 使用与事件中心相同的资源组
    存储账号名称 输入唯一名称(例如 secopsaadsignin
    区域 与事件中心位于同一区域
    性能 标准
    冗余 LRS(本地冗余存储)
  4. 点击 Review + create(检查 + 创建)。

  5. 点击创建

创建 Blob 容器

  1. 前往您创建的存储账号。
  2. 在左侧导航栏中,选择数据存储区下的容器
  3. 点击 + 容器
  4. 提供以下配置详细信息:
    • 名称:输入 checkpoints
    • 公开访问权限级别:私密(不允许匿名访问)
  5. 点击创建

获取存储账号凭据

  1. 在存储账号中,选择安全性 + 网络下的访问密钥
  2. 点击显示密钥
  3. 复制并保存:
    • 存储账号名称:存储账号的名称。
    • 密钥 1:访问密钥值。

(可选)创建专用消费者群组

默认情况下,事件中心提供名为 $Default 的消费者群组。对于生产环境,建议为 Google SecOps 创建专用消费者群组。

  1. 前往事件中心(而非命名空间)。
  2. 在左侧导航栏中,选择实体下的消费群体
  3. 点击 + 消费群体
  4. 提供以下配置详细信息:
    • 名称:输入一个描述性名称(例如 chronicle
  5. 点击创建

在 Google SecOps 中配置 Feed 以注入 Microsoft Entra ID 登录日志

  1. 依次前往 SIEM 设置 > Feed
  2. 点击添加新 Feed
  3. 在下一页上,点击配置单个 Feed
  4. Feed 名称字段中,输入 Feed 的名称(例如 Microsoft Entra ID Sign-In Logs - Event Hub)。
  5. 选择 Microsoft Azure Event Hub 作为来源类型
  6. 选择 Microsoft Azure AD 作为日志类型
  7. 点击下一步
  8. 为以下输入参数指定值:

    • 事件中心连接字符串:输入您之前捕获的事件中心连接字符串。

    如果使用命名空间级连接字符串

    • 请确保您已移除 EntityPath 参数。
    • 您还必须在下一个字段中提供事件中心名称

    如果使用 Event Hub 级连接字符串

    • 按原样使用连接字符串(包括 EntityPath)。
    • 事件中心名称字段可以留空。

      • 事件中心名称:输入事件中心名称(例如 entraid-signin-logs)。

      如果使用命名空间级连接字符串,则为必需属性。如果使用事件中心级连接字符串,则为可选。

    • 消费群组(可选):输入消费群组名称。

    • 留空可使用默认的 $Default 使用方群组。

    • 如果您创建了专用消费者群组,请输入其名称(例如 chronicle)。

    • Blob Storage 容器名称(可选):对于检查点,请输入容器名称(例如 checkpoints)。

    如果提供 Blob 存储空间用于检查点设置

    • Azure 存储账号名称:输入来自检查点配置的存储账号名称。
    • Azure 存储账号密钥:输入来自检查点配置的访问密钥。

    • 资产命名空间资产命名空间

    • 注入标签:要应用于此 Feed 中事件的标签。

  9. 点击下一步

  10. 最终确定界面中查看新的 Feed 配置,然后点击提交

方法 2:第三方 API

此方法使用 Microsoft Graph API 直接从 Microsoft 租户检索 Microsoft Entra ID 登录日志。

配置 IP 许可名单

在创建 Feed 之前,您必须在 Microsoft Azure 网络设置或条件访问政策中将 Google SecOps IP 范围列入许可名单。

获取 Google SecOps IP 范围

  1. 依次前往 SIEM 设置 > Feed
  2. 点击添加新 Feed
  3. 记下 Feed 创建界面中显示的 IP 范围。
  4. 或者,您也可以使用 Feed Management API 以编程方式检索 IP 范围。

为工作负载身份配置条件访问权限(如果需要)

如果您的组织使用按位置限制访问权限的条件访问政策,请执行以下操作:

  1. Microsoft Entra 管理中心内,依次前往保护 > 条件访问 > 命名位置
  2. 点击 + 新地点
  3. 提供以下配置详细信息:
    • 名称:输入 Google SecOps IP Ranges
    • 标记为可信位置:可选,具体取决于您的安全政策。
    • IP 范围:以 CIDR 表示法添加每个 Google SecOps IP 范围。
  4. 点击创建
  5. 前往条件访问> 政策
  6. 对于适用于工作负载身份的任何政策,请为 Google SecOps IP Ranges 命名位置或特定服务正文配置排除对象。

配置 Microsoft Entra ID API 访问权限

创建应用注册

  1. 登录 Microsoft Entra 管理中心Azure 门户
  2. 依次前往身份 > 应用 > 应用注册
  3. 点击 New registration(新注册)。
  4. 提供以下配置详细信息:

    • 名称:输入一个描述性名称(例如 Google SecOps Sign-In Logs Integration)。
    • 支持的账号类型:选择仅此组织目录中的账号(单租户)
    • 重定向 URI:留空(服务正文身份验证不需要此字段)。
  5. 点击注册

  6. 注册后,复制并保存以下值:

    • 应用(客户端)ID
    • 目录(租户)ID

配置 API 权限

此集成需要以下 Microsoft Graph 应用权限:

  1. 在应用注册中,前往 API 权限
  2. 点击添加权限
  3. 依次选择 Microsoft Graph > 应用权限
  4. 选择以下权限:
    • AuditLog.Read.All:读取登录日志所需的权限。
    • Directory.Read.All:Microsoft Graph API 需要此权限才能访问登录日志(已知问题)。
    • SecurityEvents.Read.All:Google Security Operations 需要此权限。
  5. 点击添加权限
  6. 点击为 [您的组织]授予管理员同意书
  7. 验证状态列是否针对所有三项权限显示已授予 [您的组织]
权限 类型 说明
AuditLog.Read.All 应用 读取所有登录和审核日志数据
Directory.Read.All 应用 读取目录数据(API 访问权限必需)
SecurityEvents.Read.All 应用 读取安全事件

创建客户端密钥

  1. 前往证书和密钥
  2. 点击 New client secret(新建客户端密钥)。
  3. 提供以下配置详细信息:

    • 说明:输入描述性名称(例如 Google SecOps Feed)。
    • 失效:选择失效期限。
  4. 点击 Add(添加)。

  5. 重要提示:请立即复制客户端密钥。此值仅显示一次,以后无法再检索。

在创建 Feed 之前验证 API 访问权限

在创建 Google SecOps Feed 之前,请验证服务正文是否可以成功进行身份验证并访问 Microsoft Graph API。

  • 使用 PowerShell 测试身份验证

    # Replace with your actual values
    $tenantId = "your-tenant-id"
    $clientId = "your-client-id"
    $clientSecret = "your-client-secret"
    
    # Token request parameters (must be lowercase)
    $tokenBody = @{
        grant_type    = "client_credentials"
        client_id     = $clientId
        client_secret = $clientSecret
        scope         = "https://graph.microsoft.com/.default"
    }
    
    # Request access token
    $tokenEndpoint = "https://login.microsoftonline.com/$tenantId/oauth2/v2.0/token"
    $tokenResponse = Invoke-RestMethod -Method Post -Uri $tokenEndpoint -Body $tokenBody -ContentType "application/x-www-form-urlencoded"
    
    if ($tokenResponse.access_token) {
        Write-Host "✓ Successfully obtained access token" -ForegroundColor Green
    
        # Test API call to sign-ins endpoint
        $apiUrl = "https://graph.microsoft.com/v1.0/auditLogs/signIns?`$top=1"
        $headers = @{
            Authorization = "Bearer $($tokenResponse.access_token)"
        }
    
        try {
            $signInResponse = Invoke-RestMethod -Method Get -Uri $apiUrl -Headers $headers
            Write-Host "✓ Successfully accessed sign-ins API" -ForegroundColor Green
            Write-Host "Sample sign-in log retrieved successfully" -ForegroundColor Green
        }
        catch {
            Write-Host "✗ Failed to access sign-ins API" -ForegroundColor Red
            Write-Host "Error: $($_.Exception.Message)" -ForegroundColor Red
        }
    }
    else {
        Write-Host "✗ Failed to obtain access token" -ForegroundColor Red
    }
    
    • 预期输出:

      ✓ Successfully obtained access token
      ✓ Successfully accessed sign-ins API
      Sample sign-in log retrieved successfully
      
  • 使用 curl 测试身份验证

    # Replace with your actual values
    TENANT_ID="your-tenant-id"
    CLIENT_ID="your-client-id"
    CLIENT_SECRET="your-client-secret"
    
    # Request access token
    curl -X POST "https://login.microsoftonline.com/$TENANT_ID/oauth2/v2.0/token" \
    -H "Content-Type: application/x-www-form-urlencoded" \
    -d "grant_type=client_credentials" \
    -d "client_id=$CLIENT_ID" \
    -d "client_secret=$CLIENT_SECRET" \
    -d "scope=https://graph.microsoft.com/.default"
    
    # Test API access
    curl -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
    "https://graph.microsoft.com/v1.0/auditLogs/signIns?\$top=1"
    

在 Google SecOps 中配置 Feed 以注入 Microsoft Entra ID 登录日志

设置 Feed

  1. 依次前往 SIEM 设置 > Feed
  2. 点击添加新 Feed
  3. 在下一页上,点击配置单个 Feed
  4. Feed 名称字段中,输入 Feed 的名称(例如 Microsoft Entra ID Sign-In Logs)。
  5. 选择第三方 API 作为来源类型
  6. 选择 Microsoft Azure AD 作为日志类型
  7. 点击下一步

配置 Feed 参数

为以下输入参数指定值:

  • OAuth 客户端 ID:应用注册中的应用(客户端)ID。
  • OAuth 客户端密钥:您之前复制的客户端密钥值。
  • 租户 ID:应用注册中的 Microsoft 租户 ID(UUID 格式,例如 0fc279f9-fe30-41be-97d3-abe1d7681418)。
  • API 完整路径:Microsoft Graph REST API 端点网址:

    graph.microsoft.com/v1.0/auditLogs/signIns
    
  • API 身份验证端点:Microsoft Active Directory 身份验证端点:

    login.microsoftonline.com
    
  • 高级选项

    • Feed 名称:用于标识 Feed 的预填充值。
    • 来源类型:第三方 API(用于将日志收集到 Google SecOps 中的机制)。
    • 素材资源命名空间:Feed 将关联的素材资源命名空间
    • 提取标签:系统会将标签添加到相应 Feed 中的所有事件。
  1. 点击下一步
  2. 最终确定界面中查看新的 Feed 配置,然后点击提交

区域端点

对于主权云中的 Microsoft Entra ID 部署,请使用相应的区域端点:

云环境 API 完整路径 API 身份验证端点
全球 graph.microsoft.com/v1.0/auditLogs/signIns login.microsoftonline.com
美国政府 L4 graph.microsoft.us/v1.0/auditLogs/signIns login.microsoftonline.us
美国政府 L5 (DOD) dod-graph.microsoft.us/v1.0/auditLogs/signIns login.microsoftonline.us
中国(世纪互联) microsoftgraph.chinacloudapi.cn/v1.0/auditLogs/signIns login.chinacloudapi.cn

UDM 映射表

日志字段 UDM 映射 逻辑
activityDateTime principal.event_timestamp activityDateTime 字段解析。如果该字段未采用预期的“yyyy-MM-ddTHH:mm:ss.SSSZ”格式或“ISO8601”格式,解析器将尝试其他格式,例如“MM/dd/yyyy HH:mm:ss A”或“MM/d/yyyy HH:mm:ss A”。
activityDisplayName security_result.summary 直接从 activityDisplayName 映射。
additionalDetails.0.value network.http.user_agent 直接从 additionalDetails.0.value 映射。
additionalDetails.1.key target.resource.attribute.labels.key 直接从 additionalDetails.1.key 映射。
additionalDetails.1.value target.resource.attribute.labels.value 直接从 additionalDetails.1.value 映射。
additionalInfo.[].Key network.http.user_agenttarget.url 如果 KeyuserAgent,则将 Value 映射到 network.http.user_agentnetwork.http.parsed_user_agent。如果 KeyalertUrl,则将 Value 映射到 target.url
additionalInfo.[].Value network.http.user_agenttarget.url 如果 KeyuserAgent,则将 Value 映射到 network.http.user_agentnetwork.http.parsed_user_agent。如果 KeyalertUrl,则将 Value 映射到 target.url
am_category metadata.description 直接从 am_category 映射。
am_tenantId metadata.product_deployment_id 直接从 am_tenantId 映射。
appId target.resource.attribute.labels.value 直接从 appId 映射,标签键为“应用 ID”。
appDisplayName target.application 直接从 appDisplayName 映射。
appliedConditionalAccessPolicies.[].displayName security_result.[].rule_nameabout.[].user.user_display_name 直接从 appliedConditionalAccessPolicies.[].displayName 映射。
appliedConditionalAccessPolicies.[].enforcedGrantControls security_result.[].rule_labels.value 直接从 appliedConditionalAccessPolicies.[].enforcedGrantControls 映射,标签键为“applied_conditional_access_policies_enforced_grant_controls”。
appliedConditionalAccessPolicies.[].enforcedSessionControls security_result.[].rule_labels.value 直接从 appliedConditionalAccessPolicies.[].enforcedSessionControls 映射,标签键为“applied_conditional_access_policies_enforced_session_controls”。
appliedConditionalAccessPolicies.[].id security_result.[].rule_idabout.[].user.userid 直接从 appliedConditionalAccessPolicies.[].id 映射。
appliedConditionalAccessPolicies.[].result security_result.[].detection_fields.valueabout.[].labels.value 直接从 appliedConditionalAccessPolicies.[].result 映射,标签键为“Result”。
authenticationDetails.[].authenticationMethod security_result.[].detection_fields.value 直接从 authenticationDetails.[].authenticationMethod 映射,标签键为“authenticationMethod”。
authenticationDetails.[].authenticationMethodDetail security_result.[].detection_fields.value 直接从 authenticationDetails.[].authenticationMethodDetail 映射,标签键为“authenticationMethodDetail”。
authenticationDetails.[].authenticationStepDateTime security_result.[].detection_fields.value 直接从 authenticationDetails.[].authenticationStepDateTime 映射,标签键为“authenticationStepDateTime”。
authenticationDetails.[].authenticationStepRequirement security_result.[].detection_fields.value 直接从 authenticationDetails.[].authenticationStepRequirement 映射,标签键为“authenticationStepRequirement”。
authenticationDetails.[].authenticationStepResultDetail security_result.[].detection_fields.value 直接从 authenticationDetails.[].authenticationStepResultDetail 映射,标签键为“authenticationStepResultDetail”。
authenticationDetails.[].succeeded security_result.action 如果值为“true”,则为 ALLOW;否则为 BLOCK
authenticationRequirement additional.fields.value.string_value 直接从 authenticationRequirement 映射,标签键为“AuthenticationRequirement”。
authenticationRequirementPolicies.[].detail security_result.detection_fields.value 直接从 authenticationRequirementPolicies.[].detail 映射,标签键为“detail”。
authenticationRequirementPolicies.[].requirementProvider security_result.detection_fields.value 直接从 authenticationRequirementPolicies.[].requirementProvider 映射,标签键为“requirementProvider”。
callerIpAddress principal.ipprincipal.asset.ip 直接从 callerIpAddress 映射。
category metadata.description 直接从 category 映射。
clientAppUsed principal.application 直接从 clientAppUsed 映射。
conditionalAccessStatus additional.fields.value.string_value 直接从 conditionalAccessStatus 映射,标签键为“conditionalAccessStatus”。
correlationId network.session_idsecurity_result.detection_fields.value 直接从 correlationId 映射。也可用作 security_result.detection_fields.value,标签键为“CorrelationId”。
createdDateTime when when 字段派生自 createdDateTime 字段。日期和时间使用 grok 从 createdDateTime 字段中提取,然后合并以形成 when 字段。
deviceDetail.browser network.http.user_agent 直接从 deviceDetail.browser 映射。
deviceDetail.deviceId principal.asset.asset_idprincipal.asset_id 直接从 deviceDetail.deviceId 映射,并带有“设备 ID:”前缀。
deviceDetail.displayName principal.asset.hostname 直接从 deviceDetail.displayName 映射。
deviceDetail.isCompliant principal.asset.attribute.labels.value 直接从 deviceDetail.isCompliant 映射,标签键为“isCompliant”。
deviceDetail.isManaged principal.asset.attribute.labels.value 直接从 deviceDetail.isManaged 映射,标签键为“isManaged”。
deviceDetail.operatingSystem principal.platform_version 直接从 deviceDetail.operatingSystem 映射。
deviceDetail.trustType principal.asset.attribute.labels.value 直接从 deviceDetail.trustType 映射,标签键为“trustType”。
durationMs additional.fields.value.string_value 直接从 durationMs 映射,标签键为“durationMs”。
event.id - 未按说明(第 3 点)进行映射。
id metadata.product_log_id 直接从 id 映射。
identity target.user.user_display_name 如果 identityuserId 不同且不是电子邮件地址,则直接从 identity 映射。
initiatedBy.user.displayName principal.user.user_display_name 直接从 initiatedBy.user.displayName 映射。
initiatedBy.user.id principal.user.useridprincipal.user.windows_sid 直接从 initiatedBy.user.id 映射。
initiatedBy.user.ipAddress principal.ipprincipal.asset.ip 直接从 initiatedBy.user.ipAddress 映射。
initiatedBy.user.userPrincipalName principal.user.email_addressesprincipal.user.userid 直接从 initiatedBy.user.userPrincipalName 映射。如果它是电子邮件地址,则映射到 email_addresses,否则映射到 userid
Level security_result.severity_detailslevel 直接从 Level 映射。
level security_result.severity_detailssecurity_result.severity 直接从 level 映射。在转换为大写后,还映射到 security_result.severity。针对“信息”“信息性”“0”“4”“警告”“1”“3”“错误”“2”和“严重”值进行特殊处理。
location.city principal.location.city 直接从 location.city 映射。
location.countryOrRegion principal.location.country_or_region 直接从 location.countryOrRegion 映射。
location.geoCoordinates.altitude additional.fields.value.string_value 直接从 location.geoCoordinates.altitude 映射,标签键为“location_geoCoordinates_altitude”。
location.geoCoordinates.latitude principal.location.region_latitudeprincipal.location.region_coordinates.latitude 直接从 location.geoCoordinates.latitude 映射。
location.geoCoordinates.longitude principal.location.region_longitudeprincipal.location.region_coordinates.longitude 直接从 location.geoCoordinates.longitude 映射。
location.state principal.location.state 直接从 location.state 映射。
location principal.location.name 直接从 location 映射。
log_type metadata.log_type 直接从 log_type 映射。
networkLocationDetails.[].networkNames additional.fields.value.string_value 来自 networkLocationDetails.[].networkNames 的串联值,标签键为“networkName {index}”。
networkLocationDetails.[].networkType security_result.detection_fields.valueadditional.fields.value.string_value 直接从 networkLocationDetails.[].networkType 映射,标签键为“networkType”。还可用作 additional.fields.value.string_value,标签键为“networkType {index}”。
operationName event_type 如果 operationName 为“登录活动”,则为 USER_LOGIN。如果 operationName 是“向群组添加成员”,则为 USER_CHANGE_PERMISSIONS
operationType security_result.action_details 直接从 operationType 映射。
properties.activity security_result.summary 直接从 properties.activity 映射。
properties.activityDateTime when properties.activityDateTime 字段解析。如果该字段未采用预期的“yyyy-MM-ddTHH:mm:ss.SSSZ”格式或“ISO8601”格式,解析器将尝试其他格式,例如“MM/dd/yyyy HH:mm:ss A”或“MM/d/yyyy HH:mm:ss A”。
properties.activityDisplayName security_result.summary 直接从 properties.activityDisplayName 映射。
properties.additionalInfo network.http.user_agenttarget.url 解析为 JSON,如果键是 userAgent,则将值映射到 network.http.user_agentnetwork.http.parsed_user_agent。如果键是 alertUrl,则将值映射到 target.url
properties.appliedConditionalAccessPolicies.[].displayName security_result.[].rule_name 直接从 properties.appliedConditionalAccessPolicies.[].displayName 映射。
properties.appliedConditionalAccessPolicies.[].enforcedGrantControls security_result.[].rule_labels.value 直接从 properties.appliedConditionalAccessPolicies.[].enforcedGrantControls 映射,标签键为“applied_conditional_access_policies_enforced_grant_controls”。
properties.appliedConditionalAccessPolicies.[].enforcedSessionControls security_result.[].rule_labels.value 直接从 properties.appliedConditionalAccessPolicies.[].enforcedSessionControls 映射,标签键为“applied_conditional_access_policies_enforced_session_controls”。
properties.appliedConditionalAccessPolicies.[].id security_result.[].rule_id 直接从 properties.appliedConditionalAccessPolicies.[].id 映射。
properties.appliedConditionalAccessPolicies.[].result security_result.[].detection_fields.value 直接从 properties.appliedConditionalAccessPolicies.[].result 映射,标签键为“Result”。
properties.appId appId 直接从 properties.appId 映射。
properties.appDisplayName target.application 直接从 properties.appDisplayName 映射。
properties.authenticationDetails.[].authenticationMethod security_result.detection_fields.value 直接从 properties.authenticationDetails.[].authenticationMethod 映射,标签键为“authenticationMethod”。
properties.authenticationDetails.[].authenticationMethodDetail security_result.detection_fields.value 直接从 properties.authenticationDetails.[].authenticationMethodDetail 映射,标签键为“authenticationMethodDetail”。
properties.authenticationDetails.[].authenticationStepDateTime security_result.detection_fields.value 直接从 properties.authenticationDetails.[].authenticationStepDateTime 映射,标签键为“authenticationStepDateTime”。
properties.authenticationDetails.[].authenticationStepRequirement security_result.detection_fields.value 直接从 properties.authenticationDetails.[].authenticationStepRequirement 映射,标签键为“authenticationStepRequirement”。
properties.authenticationDetails.[].authenticationStepResultDetail security_result.detection_fields.value 直接从 properties.authenticationDetails.[].authenticationStepResultDetail 映射,标签键为“authenticationStepResultDetail”。
properties.authenticationRequirement additional.fields.value.string_value 直接从 properties.authenticationRequirement 映射,标签键为“AuthenticationRequirement”。
properties.authenticationRequirementPolicies.[].detail security_result.detection_fields.value 直接从 properties.authenticationRequirementPolicies.[].detail 映射,标签键为“detail”。
properties.authenticationRequirementPolicies.[].requirementProvider security_result.detection_fields.value 直接从 properties.authenticationRequirementPolicies.[].requirementProvider 映射,标签键为“requirementProvider”。
properties.clientAppUsed principal.application 直接从 properties.clientAppUsed 映射。
properties.conditionalAccessStatus additional.fields.value.string_value 直接从 properties.conditionalAccessStatus 映射,标签键为“conditionalAccessStatus”。
properties.crossTenantAccessType additional.fields.value.string_value 直接从 properties.crossTenantAccessType 映射,标签键为“crossTenantAccessType”。
properties.detectedDateTime additional.fields.value.string_value 直接从 properties.detectedDateTime 映射,标签键为“detectedDateTime”。
properties.detectionTimingType additional.fields.value.string_value 直接从 properties.detectionTimingType 映射,标签键为“detectionTimingType”。
properties.homeTenantId additional.fields.value.string_value 直接从 properties.homeTenantId 映射,标签键为“homeTenantId”。
properties.id metadata.product_log_id 直接从 properties.id 映射。
properties.initiatedBy.user.displayName principal.user.user_display_name 直接从 properties.initiatedBy.user.displayName 映射。
properties.initiatedBy.user.id principal.user.windows_sid 直接从 properties.initiatedBy.user.id 映射。
properties.initiatedBy.user.ipAddress principal.ipprincipal.asset.ip 直接从 properties.initiatedBy.user.ipAddress 映射。
properties.initiatedBy.user.userPrincipalName principal.user.email_addressesprincipal.user.userid 直接从 properties.initiatedBy.user.userPrincipalName 映射。如果它是电子邮件地址,则映射到 email_addresses,否则映射到 userid
properties.ipAddress principal.ipprincipal.asset.ip 直接从 properties.ipAddress 映射。
properties.isGuest additional.fields.value.string_value 直接从 properties.isGuest 映射,标签键为“isGuest”。
properties.isDeleted additional.fields.value.string_value 直接从 properties.isDeleted 映射,标签键为“isDeleted”。
properties.isProcessing additional.fields.value.string_value 直接从 properties.isProcessing 映射,标签键为“isProcessing”。
properties.lastUpdatedDateTime additional.fields.value.string_value 直接从 properties.lastUpdatedDateTime 映射,标签键为“lastUpdatedDateTime”。
properties.location.city principal.location.city 直接从 properties.location.city 映射。
properties.location.countryOrRegion principal.location.country_or_region 直接从 properties.location.countryOrRegion 映射。
properties.location.geoCoordinates.latitude principal.location.region_latitudeprincipal.location.region_coordinates.latitude 直接从 properties.location.geoCoordinates.latitude 映射。
properties.location.geoCoordinates.longitude principal.location.region_longitudeprincipal.location.region_coordinates.longitude 直接从 properties.location.geoCoordinates.longitude 映射。
properties.location.state principal.location.state 直接从 properties.location.state 映射。
properties.networkLocationDetails.[].networkNames additional.fields.value.string_value properties.networkLocationDetails.[].networkNames 中的值与标签键“properties networkName {index}”串联。
properties.networkLocationDetails.[].networkType additional.fields.value.string_value 直接从 properties.networkLocationDetails.[].networkType 映射,标签键为“properties networkType {index}”。
properties.riskEventType additional.fields.value.string_value 直接从 properties.riskEventType 映射,标签键为“riskEventType”。
properties.riskLastUpdatedDateTime additional.fields.value.string_value 直接从 properties.riskLastUpdatedDateTime 映射,标签键为“riskLastUpdatedDateTime”。
properties.riskLevel additional.fields.value.string_value 直接从 properties.riskLevel 映射,标签键为“riskLevel”。
properties.riskLevelDuringSignIn additional.fields.value.string_value 直接从 properties.riskLevelDuringSignIn 映射,标签键为“riskLevelDuringSignIn”。
properties.riskState additional.fields.value.string_value 直接从 properties.riskState 映射,标签键为“riskState”。
properties.riskDetail additional.fields.value.string_value 直接从 properties.riskDetail 映射,标签键为“riskDetail”。
properties.riskType additional.fields.value.string_value 直接从 properties.riskType 映射,标签键为“riskType”。
properties.source additional.fields.value.string_value 直接从 properties.source 映射,标签键为“source”。
properties.targetResources.0.id target.user.product_object_id 直接从 properties.targetResources.0.id 映射。
properties.targetResources.modifiedProperties.0.newValue target.group.product_object_id 直接从 properties.targetResources.modifiedProperties.0.newValue 映射。
properties.tokenIssuerType additional.fields.value.string_value 直接从 properties.tokenIssuerType 映射,标签键为“tokenIssuerType”。
properties.userAgent network.http.user_agentnetwork.http.parsed_user_agent 直接从 properties.userAgent 映射。
properties.userDisplayName target.user.user_display_name 直接从 properties.userDisplayName 映射。
properties.userId target.user.product_object_id 直接从 properties.userId 映射。
properties.userPrincipalName target.user.useridtarget.user.email_addresses 直接从 properties.userPrincipalName 映射。如果它是电子邮件地址,则映射到 email_addresses,否则映射到 userid
result security_result.actionsecurity_result.action_details 如果 result 为“success”,则为 ALLOW
resultDescription security_result.description 直接从 resultDescription 映射。
resultSignature additional.fields.value.string_value 直接从 resultSignature 映射,标签键为“resultSignature”。
resultType security_result.rule_idactionsecurity_result.summary 如果 resultType 为“0”,则 ALLOW 为“Successful login occurred”。否则,为 BLOCK 和“登录失败”。
resourceId target.resource.idtarget.resource.product_object_id 直接从 resourceId 映射。
resourceDisplayName target.resource.nameappDisplayName 直接从 resourceDisplayName 映射。
riskDetail additional.fields.value.string_value 直接从 riskDetail 映射,标签键为“riskDetail”。
riskEventTypes.[]. additional.fields.value.string_valueadditional.fields.value.list_value.values.string_value 值会添加到 additional.fields 中以“riskEventTypes”为键的列表中。此外,每个值都会作为单独的字段添加到 additional.fields 中,键为“riskEventType”。
riskEventTypes_v2.[]. additional.fields.value.list_value.values.string_value 值会添加到 additional.fields 中以“riskEventTypes_v2”为键的列表中。
riskLevelAggregated additional.fields.value.string_value 直接从 riskLevelAggregated 映射,标签键为“riskLevelAggregated”。
riskLevelDuringSignIn additional.fields.value.string_value 直接从 riskLevelDuringSignIn 映射,标签键为“riskLevelDuringSignIn”。
riskState additional.fields.value.string_value 直接从 riskState 映射,标签键为“riskState”。
status.additionalDetails security_result.description 直接从 status.additionalDetails 映射。
status.errorCode security_result.rule_iderrorCode 直接从 status.errorCode 映射。
target.displayName resourceDisplayName 直接从 target.displayName 映射。
target.id resourceId 直接从 target.id 映射。
target.modifiedProperties.[].displayName target.resource.attribute.labels.key 直接从 target.modifiedProperties.[].displayName 映射。
target.modifiedProperties.[].newValue target.resource.attribute.labels.valuetarget.resource.product_object_id 直接从 target.modifiedProperties.[].newValue 映射。
target.modifiedProperties.[].oldValue target.resource.attribute.labels.value 直接从 target.modifiedProperties.[].oldValue 映射。
target.type target.resource.type 直接从 target.type 映射。
tenantId metadata.product_deployment_id 直接从 tenantId 映射。
time when when 字段派生自 time 字段。日期和时间使用 grok 从 time 字段中提取,然后合并以形成 when 字段。
userAgent network.http.user_agentnetwork.http.parsed_user_agent 直接从 userAgent 映射。
userDisplayName target.user.user_display_name 直接从 userDisplayName 映射。
userId target.user.product_object_id 直接从 userId 映射。
userPrincipalName target.user.useridprincipal.administrative_domaintarget.user.email_addresses 直接从 userPrincipalName 映射。如果它是电子邮件地址,则会映射到 email_addresses,并提取网域部分映射到 principal.administrative_domain。否则,它会映射到 userid
(解析器逻辑) event.idm.is_alertevent.idm.is_significant 如果级别为“严重”,则设置为 true。
(解析器逻辑) event.idm.read_only_udm.metadata.event_type 如果 has_target_user 为“true”,则设置为“USER_LOGIN”。如果 has_principal_user 为“true”,则设置为“USER_UNCATEGORIZED”。如果 has_principal 为“true”,则设置为“STATUS_UPDATE”。否则,设置为“GENERIC_EVENT”。
(解析器逻辑) event.idm.read_only_udm.metadata.vendor_name 设置为“Microsoft”。
(解析器逻辑) event.idm.read_only_udm.metadata.product_name 设置为“Azure AD”。
(解析器逻辑) event.idm.read_only_udm.extensions.auth.type 设置为“SSO”。
(解析器逻辑) event.idm.read_only_udm.extensions.auth.mechanism 如果 isInteractive 为“true”,则设置为“INTERACTIVE”。否则,请设置为“MECHANISM_OTHER”。
(解析器逻辑) security_result.action 如果结果为成功,则设置为 ALLOW。
(解析器逻辑) security_result.action 如果 resultType 为 0,则设置为 ALLOW。
(解析器逻辑) security_result.action 如果 resultType 不为 0 且不为“”,则设置为 BLOCK。
(解析器逻辑) security_result.category 如果 resultType 不为 0 且不为“”,则设置为“AUTH_VIOLATION”。
(解析器逻辑) security_result.description 如果 operationName 为“将成员添加到群组”,且结果为“成功”,则设置为“群组成员资格已修改”。
(解析器逻辑) security_result.priority 如果 properties.riskLevelDuringSignIn 为“medium”,则设置为“MEDIUM_PRIORITY”。
(解析器逻辑) security_result.summary 如果 resultType 为 0,则设置为“成功登录”。
(解析器逻辑) security_result.summary 如果 resultType 不为 0 且不为“”,则设置为“Failed login occurred”。
(解析器逻辑) security_result.summary 设置为 properties.activityDisplayName(如果存在)。
(解析器逻辑) security_result.severity 如果级别为“信息”“信息性”“0”或“4”,则设置为 INFORMATIONAL。如果级别为“警告”“1”或“3”,则设置为“中”。如果级别为“Error”或“2”,则设置为 ERROR。如果级别为“严重”,则设置为 CRITICAL。
(解析器逻辑) security_result.severity 如果 resultType 不为 0 且不为“”,则设置为 ERROR。

更新日志

查看相应解析器的更改日志

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