收集 Microsoft Azure AD 記錄
本文說明如何設定 Google Security Operations 資訊提供,以收集 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 入口網站。
- 依序前往「首頁」>「應用程式註冊」,選取已註冊的應用程式,或註冊應用程式 (如果尚未建立應用程式)。
- 如要註冊應用程式,請在「App registration」部分中,按一下「New registration」。
- 在「Name」(名稱) 欄位中,提供應用程式的顯示名稱。
在「支援的帳戶類型」部分,選取「僅限這個組織目錄中的帳戶 (單一租戶)」
- 重新導向 URI:留空 (服務主體驗證不需要)。
按一下「註冊」。
前往「總覽」頁面,複製應用程式 (用戶端) ID 和目錄 (租戶) ID,這些 ID 是設定 Google Security Operations 資訊動態時的必要資訊。
按一下「API 權限」。
按一下「Add a permission」,然後在新窗格中選取「Microsoft Graph」。
按一下「應用程式權限」。
選取「AuditLog.Read.All」、「Directory.Read.All」和「SecurityEvents.Read.All」權限。確認權限為「應用程式權限」,而非「委派權限」。
按一下「Grant admin consent for default directory」(授予預設目錄的管理員同意)。應用程式獲得使用者或管理員在同意程序中授予的權限後,即可呼叫 API。
依序前往「設定」>「管理」。
按一下「憑證和密鑰」。
按一下「新增用戶端密鑰」。「Value」(值) 欄位會顯示用戶端密鑰。
複製用戶端密鑰值。這個值只會在建立時顯示,而且是 Azure 應用程式註冊和設定 Google Security Operations 資訊動態饋給時的必要資訊。
設定動態饋給
在 Google SecOps 平台中,有兩種不同的進入點可設定動態饋給:
- 依序點選「SIEM Settings」>「Feeds」>「Add New Feed」
- 依序點選「內容中心」「內容包」「開始使用」
如何設定 Microsoft Entra ID (Azure AD) 動態饋給
- 按一下「Azure Platform」套件。
- 找出 Azure AD 記錄類型。
為下列欄位指定值:
- 來源類型:第三方 API (建議)
- OAuth 用戶端 ID:指定您先前取得的用戶端 ID。
- OAUTH 用戶端密鑰:指定先前取得的用戶端密鑰。
- 租戶 ID:指定先前取得的租戶 ID。
- API 完整路徑:Microsoft Graph REST API 端點網址。
- API 驗證端點:Microsoft Active Directory 驗證端點。
進階選項
- 動態饋給名稱:系統預先填入的值,用於識別動態饋給。
- 資產命名空間:與動態饋給相關聯的命名空間。
- 擷取標籤:套用至這個動態饋給所有事件的標籤。
點選「建立動態饋給」。
如要進一步瞭解如何為這個產品系列中的不同記錄類型設定多個動態饋給,請參閱「依產品設定動態饋給」。
如要進一步瞭解 Google Security Operations 動態消息,請參閱 Google Security Operations 動態消息說明文件。如要瞭解各動態饋給類型的規定,請參閱「依類型設定動態饋給」。
欄位對應參考資料
這段剖析器程式碼會將 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 為空白,且管理員識別名稱的 OU 部分包含 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 對應差異參考資料
Google SecOps 於 2026 年 1 月 1 日發布新版 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 專業人員尋求答案。