收集 Microsoft Azure AD 日志
本文档介绍了如何通过设置 Google Security Operations Feed 来收集 Microsoft Azure Active Directory (AD) 日志。
Azure Active Directory (AZURE_AD) 现在称为 Microsoft Entra ID。Azure AD 审核日志 (AZURE_AD_AUDIT) 现在称为 Microsoft Entra ID 审核日志。
如需了解详情,请参阅将数据注入 Google Security Operations。
注入标签用于标识将原始日志数据标准化为结构化 UDM 格式的解析器。
准备工作
确保您满足以下前提条件:
- 您可以登录的 Azure 订阅
- 全局管理员或 Azure AD 管理员角色
- Azure 中的 Azure AD(租户)
如何配置 Azure AD
- 登录 Azure 门户。
- 前往首页 > 应用注册,选择已注册的应用;如果您尚未创建应用,请注册应用。
- 如需注册应用,请在应用注册部分中点击新注册。
- 在名称字段中,提供应用的显示名称。
在支持的账号类型部分,选择仅此组织目录中的账号(单租户)
- 重定向 URI:留空(服务正文身份验证不需要此字段)。
点击注册。
前往概览页面,然后复制应用(客户端)ID 和目录(租户)ID,这些信息是配置 Google Security Operations Feed 所必需的。
点击 API 权限。
点击添加权限,然后在新窗格中选择 Microsoft Graph。
点击应用权限。
选择 AuditLog.Read.All、Directory.Read.All 和 SecurityEvents.Read.All 权限。确保权限是应用权限,而不是委托权限。
点击为默认目录授予管理员同意书。当应用在许可流程中获得用户或管理员授予的权限时,便有权调用 API。
依次前往设置 > 管理。
点击证书和密钥。
点击 New client secret(新建客户端密钥)。 在值字段中,系统会显示客户端密钥。
复制客户端密钥值。该值仅在创建时显示,并且是 Azure 应用注册和配置 Google Security Operations Feed 所必需的。
设置 Feed
您可以通过两种不同的入口点在 Google SecOps 平台中设置 Feed:
- SIEM 设置 > Feed > 添加新 Feed
- 内容中心 > 内容包 > 开始
如何设置 Microsoft Entra ID (Azure AD) Feed
- 点击 Azure 平台包。
- 找到 Azure AD 日志类型。
为以下字段指定值:
- 来源类型:第三方 API(推荐)
- OAuth 客户端 ID:指定您之前获得的客户端 ID。
- OAuth 客户端密钥:指定您之前获得的客户端密钥。
- 租户 ID:指定您之前获得的租户 ID。
- API 完整路径:Microsoft Graph REST API 端点网址。
- API 身份验证端点:Microsoft Active Directory 身份验证端点。
高级选项
- Feed 名称:用于标识 Feed 的预填充值。
- 资产命名空间:与 Feed 关联的命名空间。
- 提取标签:应用于相应 Feed 中所有事件的标签。
点击创建 Feed。
如需详细了解如何为相应产品系列中的不同日志类型配置多个 Feed,请参阅按产品配置 Feed。
如需详细了解 Google Security Operations Feed,请参阅 Google Security Operations Feed 文档。如需了解每种 Feed 类型的要求,请参阅按类型划分的 Feed 配置。
字段映射参考
此解析器代码将 JSON 格式的原始 Azure AD 日志转换为统一数据模型 (UDM)。它首先通过移除不必要的字段来对数据进行归一化处理,然后提取相关信息(例如用户详细信息、时间戳和事件具体信息),并将这些信息映射到相应的 UDM 字段,以便进行一致的表示和分析。
UDM 映射表
| 日志字段 | UDM 映射 | 备注 |
|---|---|---|
about |
about |
|
accountEnabled |
user.user_authentication_statususer.attribute.labels.value(键:accountEnabled) |
如果 accountEnabled 为 true,则 user.user_authentication_status 会设置为 ACTIVE,并添加一个键为 accountEnabled、值为 true 的标签。否则,系统会添加一个键为 accountEnabled、值为 false 的标签。 |
additionalDetails |
additional.fields |
|
appOwnerTenantId |
target.resource.attribute.labels |
|
authenticationAppDeviceDetails |
additional.fields |
|
authenticationContextClassReference |
security_result.detection_fields |
|
autonomousSystemNumber |
principal.resource.attribute.labels |
|
browser |
network.http.user_agent |
|
browser |
network.http.user_agent |
|
businessPhones |
user.phone_numbers |
系统会提取多个手机号码,并将其分别映射为单独的条目。 |
city |
user.personal_address.city |
|
clientCredentialType |
additional.fields |
|
companyName |
user.company_name |
|
country |
user.personal_address.country_or_region |
如果 country 为空,则该值取自 usageLocation。 |
createdDateTime |
user.attribute.creation_time |
使用 RFC 3339 格式从原始日志的 createdDateTime 字段转换为时间戳。 |
cribl_pipe |
additional.fields |
|
crossTenantAccessType |
additional.fields |
|
department |
user.department |
系统会提取多个部门,并将其分别映射为单独的条目。 |
deviceDetail.displayName |
principal.hostname,principal.asset.hostname |
|
displayName |
user.user_display_name |
|
employeeId |
user.employee_id |
如果 employeeId 为空,则该值取自 extension_employeeNumber。 |
employeeType |
user.attribute.labels.value(键:employeeType) |
从原始日志中的 employeeType 字段映射,并添加为键为 employeeType 的标签。 |
empmanager-src.accountEnabled |
user.user_authentication_statususer.attribute.labels.value(键:accountEnabled) |
如果 manager 为空且 empmanager-src.accountEnabled 为 true,则 user.user_authentication_status 会设置为 ACTIVE,并添加一个键为 accountEnabled、值为 true 的标签。否则,系统会添加一个键为 accountEnabled、值为 false 的标签。 |
empmanager-src.onPremisesDistinguishedName |
manager_role.type |
如果 gopher-manager 为空,且经理的标识名的组织单元部分包含 Users,则 manager_role.type 会设置为 ADMINISTRATOR。如果包含 Service Accounts,则将 manager_role.type 设置为 SERVICE_ACCOUNT。 |
empmanager-src.userPrincipalName |
manager_role.type |
如果 gopher-manager 为空且 empmanager-src.userPrincipalName 以 svc- 开头,则 manager_role.type 设置为 SERVICE_ACCOUNT。 |
errorCode |
security_result.detection_fields |
|
extension_employeeNumber |
user.employee_id |
如果 employeeId 为空,则映射到 user.employee_id。 |
extension_wfc_AccountingUnitName |
event.idm.entity.entity.labels.value(键:extension_wfc_AccountingUnitName) |
从原始日志中的 extension_wfc_AccountingUnitName 字段映射,并添加为键为 extension_wfc_AccountingUnitName 的标签。 |
extension_wfc_AccountType |
event.idm.entity.entity.labels.value(键:wfc_AccountType) |
从原始日志中的 extension_wfc_AccountType 字段映射,并添加为键为 wfc_AccountType 的标签。 |
extension_wfc_execDescription |
event.idm.entity.entity.labels.value(键:extension_wfc_execDescription) |
从原始日志中的 extension_wfc_execDescription 字段映射,并添加为键为 extension_wfc_execDescription 的标签。 |
extension_wfc_groupDescription |
event.idm.entity.entity.labels.value(键:extension_wfc_groupDescription) |
从原始日志中的 extension_wfc_groupDescription 字段映射,并添加为键为 extension_wfc_groupDescription 的标签。 |
extension_wfc_orgDescription |
event.idm.entity.entity.labels.value(键:extension_wfc_orgDescription) |
从原始日志中的 extension_wfc_orgDescription 字段映射,并添加为键为 extension_wfc_orgDescription 的标签。 |
failureReason |
security_result.description |
|
federatedCredentialId |
additional.fields |
|
flaggedForReview |
additional.fields |
|
givenName |
user.first_name |
|
gopher-devices |
event.idm.entity.relations |
gopher-devices 数组中的每个设备都映射到单独的关系条目。deviceId 映射到 product_object_id,operatingSystem 和 operatingSystemVersion 合并形成 platform_version 模型,直接映射,createdDateTime 转换为时间戳并映射到 created_timestamp。关系设置为 OWNS,方向设置为 UNIDIRECTIONAL。 |
gopher-groups |
event.idm.entity.relations |
gopher-groups 数组中的每个群组都映射到一个单独的关系条目。id 映射到 product_object_id,displayName 映射到 group_display_name。关系设置为 MEMBER,方向设置为 UNIDIRECTIONAL。 |
gopher-manager.businessPhones |
empmanager.phone_numbers |
如果 manager 为空,则映射到 empmanager.phone_numbers。 |
gopher-manager.country |
empmanager.personal_address.country_or_region |
如果 manager 为空,则映射到 empmanager.personal_address.country_or_region。如果 gopher-manager.country 和 gopher-manager.usageLocation 均为空,则该字段留空。 |
gopher-manager.department |
empmanager.department |
如果 manager 为空,则映射到 empmanager.department。 |
gopher-manager.displayName |
empmanager.user_display_name |
如果 manager 为空,则映射到 empmanager.user_display_name。 |
gopher-manager.employeeId |
empmanager.employee_id |
如果 manager 为空且 gopher-manager.employeeId 不为空,则映射到 empmanager.employee_id。 |
gopher-manager.extension_employeeNumber |
empmanager.employee_id |
如果 manager 和 gopher-manager.employeeId 为空,且 gopher-manager.extension_employeeNumber 不为空,则映射到 empmanager.employee_id。 |
gopher-manager.givenName |
empmanager.first_name |
如果 manager 为空,则映射到 empmanager.first_name。 |
gopher-manager.id |
empmanager.product_object_id |
如果 manager 为空,则映射到 empmanager.product_object_id。 |
gopher-manager.jobTitle |
empmanager.title |
如果 manager 为空,则映射到 empmanager.title。 |
gopher-manager.mail |
empmanager.email_addresses |
如果 manager 为空,则映射到 empmanager.email_addresses。 |
gopher-manager.onPremisesImmutableId |
user.attribute.labels.value(键:gopher-manager onPremisesImmutableId) |
映射为键为 gopher-manager onPremisesImmutableId 的标签。 |
gopher-manager.onPremisesSamAccountName |
empmanager.userid |
如果 manager 为空,则映射到 empmanager.userid。 |
gopher-manager.onPremisesSecurityIdentifier |
empmanager.windows_sid |
如果 manager 为空,则映射到 empmanager.windows_sid。 |
gopher-manager.proxyAddresses |
empmanager.email_addressesempmanager.group_identifiers |
如果 manager 为空,则 gopher-manager.proxyAddresses 数组中的每个地址都会根据其是否以 smtp 或 SMTP 开头映射到 empmanager.email_addresses 或 empmanager.group_identifiers。 |
gopher-manager.refreshTokensValidFromDateTime |
empmanager.attribute.labels.value(键:refreshTokensValidFromDateTime) |
如果 manager 为空,则映射为键为 refreshTokensValidFromDateTime 的标签。 |
gopher-manager.streetAddress |
empmanager.personal_address.name |
如果 manager 为空,则映射到 empmanager.personal_address.name。 |
gopher-manager.surname |
empmanager.last_name |
如果 manager 为空,则映射到 empmanager.last_name。 |
gopher-manager.usageLocation |
user.attribute.labels.value(键:manager_src_usageLocation) |
映射为键为 manager_src_usageLocation 的标签。 |
gopher-manager.userType |
empmanager.attribute.roles.name |
如果 manager 为空,则映射到 empmanager.attribute.roles.name。 |
homeTenantId |
target.resource.attribute.labels |
|
homeTenantName |
target.resource.attribute.labels |
|
id |
user.product_object_id |
|
identities |
user.attribute.labels.value(键:signInType)user.attribute.labels.value(键:userPrincipalName) |
signInType 会映射为键为 signInType 的标签。如果 signInType 和 userPrincipalName 均不为空,则将它们合并并映射为键为 userPrincipalName 的标签。 |
identity |
principal.user.user_display_name |
|
incomingTokenType |
additional.fields |
|
initiatedBy.app.displayName |
principal.application |
|
initiatedBy.app.servicePrincipalId |
principal.resource.product_object_id |
|
initiatedBy.user.homeTenantId |
target.resource.attribute.labels |
|
initiatedBy.user.homeTenantName |
target.resource.attribute.labels |
|
initiatedBy.user.userType |
additional.fields |
|
ipAddressFromResourceProvider |
principal.resource.attribute.labels |
|
isTenantRestricted |
additional.fields |
|
jobTitle |
user.title |
|
loggedByService |
observer.application |
|
mail |
user.email_addresses |
如果 mail 以 svc- 开头,则将 user_role.type 设置为 SERVICE_ACCOUNT。 |
mail |
user_role.type |
如果 mail 以 svc- 开头,则将 user_role.type 设置为 SERVICE_ACCOUNT。 |
mailNickname |
user.attribute.labels.value(键:mailNickname) |
从原始日志中的 mailNickname 字段映射,并添加为键为 mailNickname 的标签。 |
manager.businessPhones |
empmanager.phone_numbers |
如果 gopher-manager 为空,则映射到 empmanager.phone_numbers。 |
manager.city |
empmanager.personal_address.city |
如果 gopher-manager 为空,则映射到 empmanager.personal_address.city。 |
manager.companyName |
empmanager.company_name |
如果 gopher-manager 为空,则映射到 empmanager.company_name。 |
manager.country |
empmanager.personal_address.country_or_region |
如果 gopher-manager 为空,则映射到 empmanager.personal_address.country_or_region。如果 manager.country 和 manager.usageLocation 均为空,则该字段留空。 |
manager.department |
empmanager.department |
如果 gopher-manager 为空,则映射到 empmanager.department。 |
manager.displayName |
empmanager.user_display_name |
如果 gopher-manager 为空,则映射到 empmanager.user_display_name。 |
manager.employeeId |
empmanager.employee_id |
如果 gopher-manager 为空且 manager.employeeId 不为空,则映射到 empmanager.employee_id。 |
manager.extension_employeeNumber |
empmanager.employee_id |
如果 gopher-manager 和 manager.employeeId 为空,且 manager.extension_employeeNumber 不为空,则映射到 empmanager.employee_id。 |
manager.givenName |
empmanager.first_name |
如果 gopher-manager 为空,则映射到 empmanager.first_name。 |
manager.id |
empmanager.product_object_id |
如果 gopher-manager 为空,则映射到 empmanager.product_object_id。 |
manager.jobTitle |
empmanager.title |
如果 gopher-manager 为空,则映射到 empmanager.title。 |
manager.mail |
empmanager.email_addresses |
如果 gopher-manager 为空,则映射到 empmanager.email_addresses。 |
manager.onPremisesSamAccountName |
empmanager.userid |
如果 gopher-manager 为空,则映射到 empmanager.userid。 |
manager.onPremisesSecurityIdentifier |
empmanager.windows_sid |
如果 gopher-manager 为空,则映射到 empmanager.windows_sid。 |
manager.proxyAddresses |
empmanager.email_addressesempmanager.group_identifiers |
如果 gopher-manager 为空,则 manager.proxyAddresses 数组中的每个地址都会映射到 empmanager.email_addresses 或 empmanager.group_identifiers based on whether it starts withsmtporSMTP。 |
manager.refreshTokensValidFromDateTime |
empmanager.attribute.labels.value(键:refreshTokensValidFromDateTime) |
如果 gopher-manager 为空,则映射为键为 refreshTokensValidFromDateTime 的标签。 |
manager.state |
empmanager.personal_address.state |
如果 gopher-manager 为空,则映射到 empmanager.personal_address.state。 |
manager.streetAddress |
empmanager.personal_address.name |
如果 gopher-manager 为空,则映射到 empmanager.personal_address.name。 |
manager.surname |
empmanager.last_name |
如果 gopher-manager 为空,则映射到 empmanager.last_name。 |
manager.usageLocation |
user.attribute.labels.value(键:manager_src_usageLocation)empmanager.personal_address.country_or_region |
映射为键为 manager_src_usageLocation 的标签。如果 manager.country 为空,则该值也会映射到 empmanager.personal_address.country_or_region。 |
manager.userType |
empmanager.attribute.roles.name |
如果 gopher-manager 为空,则映射到 empmanager.attribute.roles.name。 |
mfaDetail.authDetail |
principal.user.phone_numbers |
|
onPremisesDistinguishedName |
user.attribute.labels.value(键:onPremisesDistinguishedName)user.attribute.labels.value(键:onPremisesDistinguishedName-OU data) |
完全标识名会映射为键为 onPremisesDistinguishedName 的标签。提取标识名的 OU 部分,并将其映射为键为 onPremisesDistinguishedName-OU data 的标签。如果 OU 部分包含 Admin,则 user_role.type 会设置为 ADMINISTRATOR。如果包含 Service Accounts,则将 user_role.type 设置为 SERVICE_ACCOUNT。 |
onPremisesDistinguishedName |
user_role.type |
如果标识名的 OU 部分包含 Admin,则 user_role.type 会设置为 ADMINISTRATOR。如果包含 Service Accounts,则将 user_role.type 设置为 SERVICE_ACCOUNT。 |
onPremisesDomainName |
user.group_identifiersuser.attribute.labels.value(键:onPremisesDomainName) |
直接映射到 user.group_identifiers 并添加为键为 onPremisesDomainName 的标签。 |
onPremisesImmutableId |
user.attribute.labels.value(键:onPremisesImmutableId) |
从原始日志中的 onPremisesImmutableId 字段映射,并添加为键为 onPremisesImmutableId 的标签。 |
onPremisesSamAccountName |
user.useriduser.attribute.labels.value(键:onPremisesSamAccountName) |
如果 sAMAccountName 为空,则映射到 user.userid。还会添加为键为 onPremisesSamAccountName 的标签。 |
onPremisesSecurityIdentifier |
user.windows_sid |
|
operationName |
metadata.product_event_type |
|
OrganizationId |
principal.resource.product_object_id |
|
originalRequestId |
network.session_id |
|
originalTransferMethod |
additional.fields |
|
Parser Logic |
UDM Mapping |
逻辑 |
policies.enforcedGrantControls |
security_result.detection_fields |
|
processingTimeInMilliseconds |
additional.fields |
|
properties.__UDI_RequiredFields_RegionScope |
target.location.country_or_region |
|
properties.additionalDetails |
additional.fields |
|
properties.alternateSignInName |
target.user.userid |
|
properties.appId |
principal.user.product_object_id |
|
properties.atContentH |
additional.fields |
|
properties.atContentP |
additional.fields |
|
properties.authenticationContextClassReferences |
additional.fields |
|
properties.C_DeviceId |
additional.fields |
|
properties.C_Iat |
additional.fields |
|
properties.C_Idtyp |
additional.fields |
|
properties.C_Sid |
additional.fields |
|
properties.category |
security_result.category_details |
|
properties.clientAuthMethod |
additional.fields |
|
properties.clientCredentialType |
additional.fields |
|
properties.correlationId |
security_result.detection_fields |
|
properties.deviceDetail.browser |
network.http.user_agent |
|
properties.deviceDetail.deviceId |
principal.asset.asset_id |
|
properties.deviceDetail.displayName |
principal.hostname,principal.asset.hostname |
|
properties.deviceDetail.operatingSystem |
principal.platform_version |
如果 operatingSystem 以 Win、Mac 或 Lin 开头,则映射到 principal.platform。 |
properties.deviceDetail.trustType |
principal.asset.attribute.labels |
|
properties.EventData.AuthenticationPackageName |
security_result.about.resource.name |
|
properties.EventData.CallerProcessId |
principal.process.pid |
|
properties.EventData.CallerProcessName |
principal.process.file.full_path |
|
properties.EventData.CertIssuerName |
additional.fields |
|
properties.EventData.CertSerialNumber |
about.artifact.last_https_certificate.serial_number |
|
properties.EventData.CertThumbprint |
additional.fields |
|
properties.EventData.HandleId |
target.resource.attribute.labels |
|
properties.EventData.ImpersonationLevel |
additional.fields |
|
properties.EventData.IpAddress |
principal.ipprincipal.asset.ip |
|
properties.EventData.IpPort |
principal.port |
|
properties.EventData.KeyLength |
additional.fields |
|
properties.EventData.LmPackageName |
target.resource.attribute.labels |
|
properties.EventData.LogonGuid |
security_result.detection_fields |
|
properties.EventData.LogonProcessName |
target.process.file.names |
|
properties.EventData.LogonType |
extensions.auth.auth_details |
|
properties.EventData.NewSd |
security_result.detection_fields |
|
properties.EventData.ObjectName |
target.resource.name |
|
properties.EventData.ObjectServer |
target.resource.attribute.labels |
|
properties.EventData.ObjectType |
target.resource.resource_subtype |
|
properties.EventData.OldSd |
security_result.detection_fields |
|
properties.EventData.PreAuthType |
extensions.auth.mechanism |
|
properties.EventData.ProcessId |
target.process.pid |
|
properties.EventData.ProcessName" |
target.process.file.full_path |
|
properties.EventData.ServiceName |
target.application |
|
properties.EventData.ServiceSid |
target.resource.user.windows_sid |
|
properties.EventData.Source |
principal.ipprincipal.asset.ip |
|
properties.EventData.Status |
security_result.detection_fields |
|
properties.EventData.SubjectDomainName |
principal.administrative_domain |
|
properties.EventData.SubjectLogonId |
principal.resource.attribute.labels |
|
properties.EventData.SubjectUserName |
principal.user.userid |
|
properties.EventData.SubjectUserSid |
principal.user.windows_sid |
|
properties.EventData.TargetDomainName |
target.administrative_domain |
|
properties.EventData.TargetLogonId |
target.resource.attribute.labels |
|
properties.EventData.TargetSid |
target.user.windows_sid |
|
properties.EventData.TargetUserName |
target.user.userid |
|
properties.EventData.TargetUserSid |
target.user.windows_sid |
|
properties.EventData.TicketEncryptionType |
security_result.detection_fields |
|
properties.EventData.TicketOptions |
security_result.detection_fields" |
|
properties.EventData.TransmittedServices |
security_result.detection_fields |
|
properties.EventData.WorkstationName |
target.hostnametarget.asset.hostname |
|
properties.flaggedForReview |
additional.fields |
|
properties.homeTenantId |
target.resource.attribute.labels |
|
properties.incomingTokenType |
additional.fields |
|
properties.initiatedBy.app.displayName |
principal.user.user_display_name |
|
properties.initiatedBy.user.displayName |
principal.user.user_display_name |
|
properties.initiatedBy.user.id |
principal.user.product_object_id |
|
properties.initiatedBy.user.ipAddress |
principal.ip,principal.asset.ip |
|
properties.ipAddressFromResourceProvider |
principal.resource.attribute.labels |
|
properties.isInteractive |
additional.fields |
|
properties.isTenantRestricted |
additional.fields |
|
properties.isThroughGlobalSecureAccess |
additional.fields |
|
properties.location.geoCoordinates.altitude |
additional.fields |
|
properties.loggedByService |
observer.application |
|
properties.mfaDetail.authDetail |
principal.user.phone_numbers |
|
properties.operationType |
target.resource.attribute.labels |
|
properties.originalRequestId |
network.session_id |
|
properties.originalTransferMethod |
additional.fields |
|
properties.processingTimeInMilliseconds |
additional.fields |
|
properties.RecordId |
metadata.product_log_id |
|
properties.requestId |
security_result.detection_fields |
|
properties.requestMethod |
network.http.method |
|
properties.requestUri |
network.http.referral_url |
|
properties.resourceDisplayName |
target.resource.name |
|
properties.resourceId |
target.resource.attribute.labels |
|
properties.resourceOwnerTenantId |
target.resource.attribute.labels |
|
properties.resourceTenantId |
target.resource.attribute.labels |
|
properties.responseSizeBytes |
network.received_bytes |
|
properties.responseStatusCode |
network.http.response_code |
|
properties.resultReason |
additional.fieldssecurity_result.summary |
|
properties.resultType |
additional.fields |
|
properties.riskDetail |
security_result.detection_fields |
|
properties.riskEventType |
security_result.detection_fields |
|
properties.riskLastUpdatedDateTime |
security_result.detection_fields |
|
properties.riskLevel |
security_result.detection_fields |
|
properties.riskLevelAggregated |
security_result.detection_fields |
|
properties.riskLevelDuringSignIn |
security_result.detection_fields |
|
properties.riskState |
security_result.detection_fields |
|
properties.riskType |
security_result.detection_fields |
|
properties.rngcStatus |
additional.fields |
|
properties.roles |
principal.user.attribute.roles |
|
properties.scopes |
security_result.detection_fields |
|
properties.servicePrincipalCredentialKeyId |
additional.fields |
|
properties.sessionLifetimePolicies |
security_result.detection_fields |
|
properties.signInActivityId |
additional.fields |
|
properties.SignInBondData.DeviceDetails.DeviceTrustType |
principal.asset.attribute.labels |
|
properties.SignInBondData.DeviceDetails.IsCompliant |
security_result.rule_labels |
|
properties.SignInBondData.DeviceDetails.IsManaged |
principal.asset.attribute.labels |
|
properties.SignInBondData.DisplayDetails.AttemptedUsername |
principal.user.email_addresses |
|
properties.SignInBondData.DisplayDetails.ProxyRestrictionTargetTenantName |
additional.fields |
|
properties.SignInBondData.DisplayDetails.ResourceDisplayName |
target.resource.name |
|
properties.SignInBondData.LocationDetails.IPChain |
target.ip |
|
properties.SignInBondData.LocationDetails.Latitude |
additional.fields |
|
properties.SignInBondData.LocationDetails.Longitude |
additional.fields |
|
properties.SignInBondData.MfaDetails |
additional.fields |
|
properties.SignInBondData.ProtocolDetails.AuthenticationMethodsUsed |
extensions.auth.auth_details |
|
properties.SignInBondData.ProtocolDetails.DomainHintPresent |
additional.fields |
|
properties.SignInBondData.ProtocolDetails.IsInteractive |
additional.fields |
|
properties.SignInBondData.ProtocolDetails.LoginHintPresent |
additional.fields |
|
properties.SignInBondData.ProtocolDetails.NetworkLocation |
additional.fields" |
|
properties.SignInBondData.ProtocolDetails.Protocol |
security_result.detection_fields |
如果 properties.SignInBondData.ProtocolDetails.Protocol == WSTrust,则映射到 security_result.detection_fields,否则映射到 network.application_protocol。 |
properties.SignInBondData.RamDetails.RamRecommendedAction |
additional.fields |
|
properties.SignInBondData.RamDetails.RamRecommender |
additional.fields |
|
properties.signInTokenProtectionStatus |
additional.fields |
|
properties.ssoExtensionVersion |
additional.fields |
|
properties.status.errorCode |
security_result.detection_fieldssecurity_result.action |
|
properties.targetResources |
target.resource.attribute.labels |
|
properties.tenantGeo |
Geolocation.country_or_region |
|
properties.tokenIssuerName |
additional.fields |
|
properties.tokenProtectionStatusDetails.signInSessionStatus |
additional.fields |
|
properties.tokenProtectionStatusDetails.signInSessionStatusCode |
additional.fields |
|
properties.userDisplayName |
principal.user.user_display_name |
|
properties.wids |
additional.fields |
|
proxyAddresses |
user.email_addressesuser.group_identifiers |
proxyAddresses 数组中的每个地址都会映射到 user.email_addresses 或 user.group_identifiers,具体取决于该地址是以 smtp 还是 SMTP 开头。如果地址以 smtp 或 SMTP 开头,则移除 smtp: 或 SMTP: 前缀,并提取剩余的电子邮件地址,然后将其映射到 user.email_addresses。 |
record.CorrelationId |
additional.fields |
|
record.CrossTenantAccessType |
additional.fields |
|
record.DeviceDetail.deviceId |
network.session_id |
|
record.DeviceDetail.operatingSystem |
principal.platform_version |
如果 operatingSystem 以 Win、Mac 或 Lin 开头,则映射到 principal.platform。 |
record.IsInteractive |
additional.fields |
|
record.level |
security_result.severity_details |
如果 record_level 位于 ["INFORMATION", "INFORMATIONAL", "0", "4", "WARNING", "1", "3","ERROR", "2","CRITICAL"] 中,则将其映射到 security_result.severity。 |
record.location |
principal.location.name |
|
record.properties.appServicePrincipalId |
additional.fields |
|
record.properties.authenticationProtocol |
additional.fields |
|
record.properties.autonomousSystemNumber |
principal.resource.attribute.labels |
|
record.properties.C_DeviceId |
principal.asset.asset_id |
|
record.properties.crossTenantAccessType |
additional.fields |
|
record.properties.deviceDetail.isCompliant |
security_result.rule_labels |
|
record.properties.deviceDetail.isManaged |
principal.asset.attribute.labels |
|
record.properties.deviceDetail.trustType |
principal.asset.attribute.labels |
|
record.properties.flaggedForReview |
additional.fields |
|
record.properties.incomingTokenType |
additional.fields |
|
record.properties.isInteractive |
extensions.auth.mechanism |
|
record.properties.isTenantRestricted |
additional.fields |
|
record.properties.isThroughGlobalSecureAccess |
additional.fields |
|
record.properties.location |
target.location.name |
|
record.properties.originalTransferMethod |
additional.fields |
|
record.properties.resourceDisplayName |
principal.resource.name |
|
record.properties.riskDetail |
security_result.detection_fields |
|
record.properties.riskLevelAggregated |
security_result.detection_fields |
|
record.properties.riskLevelDuringSignIn |
security_result.detection_fields |
|
record.properties.riskState |
security_result.detection_fields |
|
record.properties.rngcStatus |
additional.fields |
|
record.properties.roles |
principal.user.attribute.roles |
|
record.properties.scopes |
security_result.detection_fields |
|
record.properties.servicePrincipalId |
target.resource.attribute.labels |
|
record.properties.servicePrincipalId |
principal.user.userid |
|
record.properties.signInTokenProtectionStatus |
additional.fields |
|
record.properties.ssoExtensionVersion |
additional.fields |
|
record.properties.status.additionalDetails |
additional.fields |
|
record.properties.tokenProtectionStatusDetails.signInSessionStatus |
additional.fields |
|
record.properties.tokenProtectionStatusDetails.signInSessionStatusCode |
additional.fields |
|
record.RiskDetail |
security_result.detection_fields |
|
record.RiskEventTypes |
security_result.detection_fields |
|
record.RiskLevelAggregated |
security_result.detection_fields |
|
record.RiskLevelDuringSignIn |
security_result.detection_fields |
|
record.RiskState |
security_result.detection_fields |
|
refreshTokensValidFromDateTime |
user.attribute.labels.value(键:refreshTokensValidFromDateTime) |
从原始日志中的 refreshTokensValidFromDateTime 字段映射,并添加为键为 refreshTokensValidFromDateTime 的标签。 |
resourceOwnerTenantId |
target.resource.attribute.labels |
|
resourceTenantId |
target.resource.attribute.labels |
|
resultDescription |
security_result.description |
|
resultReason |
additional.fields |
|
resultType |
additional.fields |
|
riskDetail |
security_result.detection_fields |
|
riskLevelAggregated |
security_result.detection_fields |
|
riskLevelDuringSignIn |
security_result.detection_fields |
|
riskState |
security_result.detection_fields |
|
sAMAccountName |
user.userid |
|
servicePrincipalCredentialKeyId |
additional.fields |
|
servicePrincipalCredentialThumbprint |
additional.fields |
|
servicePrincipalId |
target.resource.attribute.labels |
|
servicePrincipalName |
additional.fields |
|
sessionId |
network.session_id |
|
signInIdentifier |
target.user.userid |
|
signInIdentifierType |
additional.fields |
|
signInTokenProtectionStatus |
additional.fields |
|
state |
user.personal_address.state |
|
status.additionalDetails |
additional.fields |
|
streetAddress |
user.personal_address.name |
|
surname |
user.last_name |
|
targets.modifiedProperties |
target.resource.attribute.labels |
|
tokenIssuerName |
additional.fields |
|
tokenIssuerType |
additional.fields |
|
tokenProtectionStatusDetails.signInSessionStatus |
security_result.detection_fields |
|
uniqueTokenIdentifier |
additional.fields |
|
usageLocation |
user.personal_address.country_or_region |
如果 country 为空,则该值会映射到 user.personal_address.country_or_region。 |
userDisplayName |
principal.user.user_display_name |
|
userId |
principal.user.product_object_id |
|
userPrincipalName |
user.email_addresses |
如果 userPrincipalName 以 svc- 开头,则将 user_role.type 设置为 SERVICE_ACCOUNT。 |
userPrincipalName |
user_role.type |
如果 userPrincipalName 以 svc- 开头,则将 user_role.type 设置为 SERVICE_ACCOUNT。 |
userType |
additional.fields |
|
| 不适用 | event.idm.entity.metadata.vendor_name |
设置为 Microsoft。 |
| 不适用 | event.idm.entity.metadata.product_name |
设置为 Azure Active Directory。 |
| 不适用 | event.idm.entity.metadata.entity_type |
设置为 USER。 |
| 不适用 | event.idm.entity.metadata.collected_timestamp |
设置为原始日志中的 create_time 字段。 |
UDM 映射增量参考信息
2026 年 1 月 1 日,Google SecOps 发布了新版 Azure AD 解析器,其中包含对 Azure AD 日志字段到 UDM 字段的映射以及事件类型映射的重大更改。
日志字段映射增量
下表列出了 2026 年 1 月 1 日之前和之后公开的 Azure AD 日志到 UDM 字段的映射差异(分别列在旧映射和当前映射列中):
| 日志字段 | 旧映射 | 当前映射 |
|---|---|---|
additionalDetails |
security_result.description |
additional.fields |
browser |
principal.resource.attribute.labels |
network.http.user_agent |
browser |
principal.resource.attribute.labels |
network.http.user_agent |
deviceDetail.displayName |
principal.asset.hardware |
principal.hostname,principal.asset.hostname |
errorCode |
security_result.rule_id |
security_result.detection_fields |
failureReason |
additional.fields |
security_result.description |
identity |
target.user.user_display_name |
principal.user.user_display_name |
loggedByService |
target.application |
observer.application |
operationName |
additional.fields |
metadata.product_event_type |
OrganizationId |
principal.resource.id |
principal.resource.product_object_id |
properties.homeTenantId |
additional.fields |
target.resource.attribute.labels |
properties.initiatedBy.user.id |
principal.user.windows_sid |
principal.user.product_object_id |
properties.resourceOwnerTenantId |
additional.fields |
target.resource.attribute.labels |
properties.riskDetail |
additional.fields |
security_result.detection_fields |
properties.riskEventType |
additional.fields |
security_result.detection_fields |
properties.riskLastUpdatedDateTime |
additional.fields |
security_result.detection_fields |
properties.riskLevel |
additional.fields |
security_result.detection_fields |
properties.riskLevelAggregated |
additional.fields |
security_result.detection_fields |
properties.riskLevelDuringSignIn |
additional.fields |
security_result.detection_fields |
properties.riskState |
additional.fields |
security_result.detection_fields |
properties.riskType |
additional.fields |
security_result.detection_fields |
properties.userDisplayName |
target.user.user_display_name |
principal.user.user_display_name |
record.CorrelationId |
metadata.product_log_id |
additional.fields |
record.properties.C_DeviceId |
additional.fields |
principal.asset.asset_id |
record.properties.resourceDisplayName |
target.resource.attribute.labels |
principal.resource.name |
record.properties.riskDetail |
additional.fields |
security_result.detection_fields |
record.properties.riskLevelAggregated |
additional.fields |
security_result.detection_fields |
record.properties.riskLevelDuringSignIn |
additional.fields |
security_result.detection_fields |
record.properties.riskState |
additional.fields |
security_result.detection_fields |
record.properties.roles |
target.user.role_name |
principal.user.attribute.roles |
record.properties.servicePrincipalId |
additional.fields |
target.resource.attribute.labels |
record.properties.servicePrincipalId |
additional.fields |
principal.user.userid |
record.RiskDetail |
target.resource.attribute.labels |
security_result.detection_fields |
record.RiskEventTypes |
target.resource.attribute.labels |
security_result.detection_fields |
record.RiskLevelAggregated |
target.resource.attribute.labels |
security_result.detection_fields |
record.RiskState |
target.resource.attribute.labels |
security_result.detection_fields |
resultType |
security_result.rule_id |
additional.fields |
riskDetail |
additional.fields |
security_result.detection_fields |
riskLevelAggregated |
additional.fields |
security_result.detection_fields |
riskLevelDuringSignIn |
additional.fields |
security_result.detection_fields |
riskState |
additional.fields |
security_result.detection_fields |
riskState |
additional.fields |
security_result.detection_fields |
status.additionalDetails |
security_result.description |
additional.fields |
userDisplayName |
target.user.user_display_name |
principal.user.user_display_name |
userId |
target.user.product_object_id |
principal.user.product_object_id |
事件类型映射增量
下表列出了 2026 年 1 月 1 日之前和之后 Azure AD 事件类型处理方式的差异(分别列在旧 event_type 和当前 event_type 列中):
| 日志中的事件 ID | 旧 event_type | 当前 event_type | 备注 |
|---|---|---|---|
has_resource = true |
GENERIC_EVENT |
USER_RESOURCE_ACCESS |
如果事件与资源(由 has_resource = true 指示)相关,则事件类型会映射到 USER_RESOURCE_ACCESS。 |
operationName = Add member to group |
USER_CHANGE_PERMISSIONS |
GROUP_MODIFICATION |
对于专门涉及向群组添加成员的操作(其中 operationName = Add member to group),事件类型会映射到 GROUP_MODIFICATION。 |
需要更多帮助?获得社区成员和 Google SecOps 专业人士的解答。