收集 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

  1. 登入 Azure 入口網站。
  2. 依序前往「首頁」>「應用程式註冊」,選取已註冊的應用程式,或註冊尚未建立的應用程式。
  3. 如要註冊應用程式,請在「應用程式註冊」部分中按一下「新註冊」
  4. 在「名稱」欄位中,提供應用程式的顯示名稱。
  5. 在「支援的帳戶類型」部分,選取必要選項,指定哪些使用者可以使用應用程式或存取 API。
  6. 按一下「註冊」
  7. 前往「總覽」頁面,複製應用程式 (用戶端) ID 和目錄 (用戶群) ID,這兩項資訊是設定 Google Security Operations 動態饋給時所需。
  8. 按一下「API 權限」
  9. 按一下「新增權限」,然後在新的窗格中選取「Microsoft Graph」
  10. 按一下「應用程式權限」
  11. 選取「AuditLog.Read.All」、「Directory.Read.All」和「SecurityEvents.Read.All」權限。請確認權限為「應用程式權限」,而非「委派權限」
  12. 按一下「Grant admin consent for default directory」。在同意程序中,如果使用者或管理員授予應用程式權限,則應用程式可呼叫 API。
  13. 依序前往「設定」>「管理」
  14. 按一下「憑證和密鑰」
  15. 按一下「New client secret」。在「Value」欄位中,會顯示用戶端密碼。
  16. 複製用戶端密鑰值。這個值只會在建立時顯示,而且是註冊 Azure 應用程式和設定 Google Security Operations 動態饋給的必要條件。

設定動態饋給

在 Google SecOps 平台中,有兩個不同的入口可用來設定動態消息:

  • SIEM 設定 > 動態饋給
  • 內容中心 > 內容包

依序前往「SIEM 設定」>「動態」設定動態

如要針對這個產品系列中的不同記錄類型設定多個動態饋給,請參閱「依產品設定動態饋給」。

如要設定單一動態饋給,請按照下列步驟操作:

  1. 依序前往「SIEM 設定」>「動態饋給」
  2. 按一下「新增動態消息」
  3. 在下一頁中,按一下「設定單一動態饋給」
  4. 在「動態饋給名稱」欄位中輸入動態饋給的名稱,例如「Azure AD 內容記錄」
  5. 將「來源類型」設為「第三方 API」
  6. 選取「Azure AD 組織內容」做為「記錄類型」
  7. 點選「下一步」
  8. 設定下列必要輸入參數:
    • OAuth 用戶端 ID:指定您先前取得的用戶端 ID。
    • OAuth 用戶端密鑰:指定先前取得的用戶端密鑰。
    • 用戶群 ID:指定先前取得的用戶群 ID。
  9. 依序點選「下一步」和「提交」

如要進一步瞭解 Google Security Operations 動態饋給,請參閱 Google Security Operations 動態饋給說明文件。如要瞭解各個動態饋給類型的規定,請參閱「依類型分類的動態饋給設定」。如果在建立動態饋給時遇到問題,請與 Google 安全作業支援團隊聯絡

透過內容中心設定動態饋給

指定下列欄位的值:

  • OAuth 用戶端 ID:指定您先前取得的用戶端 ID。
  • OAuth 用戶端密鑰:指定先前取得的用戶端密鑰。
  • 用戶群 ID:指定先前取得的用戶群 ID。

進階選項

  • 動態饋給名稱:預先填入的值,用於識別動態饋給。
  • 來源類型:用於收集記錄並匯入 Google SecOps 的方法。
  • 資產命名空間與動態饋給相關聯的命名空間
  • 攝入標籤:套用至這個動態饋給中所有事件的標籤。

欄位對應參考資料

這個剖析器程式碼會將 Azure Active Directory 的原始 JSON 格式記錄轉換為統一資料模型 (UDM)。這項工具會擷取使用者和管理員資訊,包括屬性、角色、關聯和標籤,同時處理各種資料不一致的問題,並透過標準化欄位豐富輸出內容。

UDM 對應表

記錄欄位 UDM 對應 邏輯
businessPhones user.phone_numbers 直接從原始記錄中的 businessPhones 欄位對應。系統會擷取多個電話號碼,並將其對應為個別項目。
city user.personal_address.city 直接從原始記錄中的 city 欄位對應。
companyName user.company_name 直接從原始記錄中的 companyName 欄位對應。
國家/地區 user.personal_address.country_or_region 直接從原始記錄中的 country 欄位對應。如果 country 空白,系統會從 usageLocation 取得值。
createdDateTime user.attribute.creation_time 使用 RFC 3339 格式,將原始記錄中的 createdDateTime 欄位轉換為時間戳記。
部門 user.department 直接從原始記錄中的 department 欄位對應。系統會擷取多個部門,並將其對應為個別項目。
displayName user.user_display_name 直接從原始記錄中的 displayName 欄位對應。
employeeId user.employee_id 直接從原始記錄中的 employeeId 欄位對應。如果 employeeId 空白,系統會從 extension_employeeNumber 取得值。
employeeType user.attribute.labels.value (key: employeeType) 直接從原始記錄中的 employeeType 欄位對應,並以 employeeType 鍵新增為標籤。
extension_employeeNumber user.employee_id 如果 employeeId 為空白,就會對應至 user.employee_id
extension_wfc_AccountType event.idm.entity.entity.labels.value (key: wfc_AccountType) 直接從原始記錄中的 extension_wfc_AccountType 欄位對應,並以 wfc_AccountType 鍵新增為標籤。
extension_wfc_AccountingUnitName event.idm.entity.entity.labels.value (key: extension_wfc_AccountingUnitName) 直接從原始記錄中的 extension_wfc_AccountingUnitName 欄位對應,並以 extension_wfc_AccountingUnitName 鍵新增為標籤。
extension_wfc_execDescription event.idm.entity.entity.labels.value (key: extension_wfc_execDescription) 直接從原始記錄中的 extension_wfc_execDescription 欄位對應,並以 extension_wfc_execDescription 鍵新增為標籤。
extension_wfc_groupDescription event.idm.entity.entity.labels.value (key: extension_wfc_groupDescription) 直接從原始記錄中的 extension_wfc_groupDescription 欄位對應,並以 extension_wfc_groupDescription 鍵新增為標籤。
extension_wfc_orgDescription event.idm.entity.entity.labels.value (key: extension_wfc_orgDescription) 直接從原始記錄中的 extension_wfc_orgDescription 欄位對應,並以 extension_wfc_orgDescription 鍵新增為標籤。
givenName user.first_name 直接從原始記錄中的 givenName 欄位對應。
gopher-devices event.idm.entity.relations gopher-devices 陣列中的每部裝置都會對應至個別的關聯項目。deviceId 會對應至 product_object_idoperatingSystemoperatingSystemVersion 會組合成 platform_versionmodel 會直接對應,而 createdDateTime 會轉換為時間戳記並對應至 created_timestamp。關係設為 OWNS,方向設為 UNIDIRECTIONAL
gopher-groups event.idm.entity.relations gopher-groups 陣列中的每個群組都會對應至個別的關聯項目。id 會對應至 product_object_iddisplayName 則會對應至 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.countrygopher-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 如果 managergopher-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 (key: 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_addresses, empmanager.group_identifiers 如果 manager 為空白,gopher-manager.proxyAddresses 陣列中的每個地址都會根據開頭是否為「smtp」或「SMTP」對應至 empmanager.email_addressesempmanager.group_identifiers
gopher-manager.refreshTokensValidFromDateTime empmanager.attribute.labels.value (key: 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 (key: manager_src_usageLocation) 已對應為標籤,並使用 manager_src_usageLocation 做為鍵。
gopher-manager.userType empmanager.attribute.roles.name 如果 manager 為空白,就會對應至 empmanager.attribute.roles.name
id user.product_object_id 直接從原始記錄中的 id 欄位對應。
身分 user.attribute.labels.value (鍵:signInType)、user.attribute.labels.value (鍵:userPrincipalName) signInType 會對應為標籤,並使用 signInType 做為鍵。如果 signInTypeuserPrincipalName 皆非空白,系統會將兩者合併,並以鍵 userPrincipalName 對應為標籤。
jobTitle user.title 直接從原始記錄中的 jobTitle 欄位對應。
mail user.email_addresses 直接從原始記錄中的 mail 欄位對應。如果 mail 開頭為「svc-」,user_role.type 會設為 SERVICE_ACCOUNT
mailNickname user.attribute.labels.value (key: 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.countrymanager.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-managermanager.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_addresses, empmanager.group_identifiers 如果 gopher-manager 為空白,manager.proxyAddresses 陣列中的每個地址都會根據開頭是否為「smtp」或「SMTP」對應至 empmanager.email_addressesempmanager.group_identifiers
manager.refreshTokensValidFromDateTime empmanager.attribute.labels.value (key: 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 (key: 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
onPremisesDistinguishedName user.attribute.labels.value (鍵:onPremisesDistinguishedName)、user.attribute.labels.value (鍵:onPremisesDistinguishedName-OU 資料) 完整辨別名稱會對應為標籤,並使用 onPremisesDistinguishedName 做為索引鍵。系統會擷取專屬名稱的 OU 部分,並將其對應為標籤,並使用 onPremisesDistinguishedName-OU data 做為鍵。如果 OU 部分包含「Admin」,user_role.type 會設為 ADMINISTRATOR。如果包含「Service Accounts」,user_role.type 會設為 SERVICE_ACCOUNT
onPremisesDomainName user.group_identifiers、user.attribute.labels.value (鍵:onPremisesDomainName) 直接對應至 user.group_identifiers,並以 onPremisesDomainName 鍵新增為標籤。
onPremisesImmutableId user.attribute.labels.value (key: onPremisesImmutableId) 直接從原始記錄中的 onPremisesImmutableId 欄位對應,並以 onPremisesImmutableId 鍵新增為標籤。
onPremisesSamAccountName user.userid, user.attribute.labels.value (key: onPremisesSamAccountName) 如果 sAMAccountName 為空白,就會對應至 user.userid。並以鍵 onPremisesSamAccountName 的形式新增為標籤。
onPremisesSecurityIdentifier user.windows_sid 直接從原始記錄中的 onPremisesSecurityIdentifier 欄位對應。
proxyAddresses user.email_addresses, user.group_identifiers proxyAddresses 陣列中的每個地址會根據開頭是否為「smtp」或「SMTP」對應至 user.email_addressesuser.group_identifiers。如果地址開頭為「smtp」或「SMTP」,系統會移除「smtp:」或「SMTP:」前置字串,並擷取剩餘的電子郵件地址,然後對應至 user.email_addresses
refreshTokensValidFromDateTime user.attribute.labels.value (key: refreshTokensValidFromDateTime) 直接從原始記錄中的 refreshTokensValidFromDateTime 欄位對應,並以 refreshTokensValidFromDateTime 鍵新增為標籤。
sAMAccountName user.userid 直接從原始記錄中的 sAMAccountName 欄位對應。
state user.personal_address.state 直接從原始記錄中的 state 欄位對應。
streetAddress user.personal_address.name 直接從原始記錄中的 streetAddress 欄位對應。
surname user.last_name 直接從原始記錄中的 surname 欄位對應。
usageLocation user.personal_address.country_or_region 如果 country 為空白,則會將值對應至 user.personal_address.country_or_region
userPrincipalName user.email_addresses 直接從原始記錄中的 userPrincipalName 欄位對應。如果 userPrincipalName 開頭為「svc-」,user_role.type 會設為 SERVICE_ACCOUNT
userType user.attribute.roles.name 直接從原始記錄檔中的 userType 欄位對應,並新增至 user.attribute.roles.name
剖析器邏輯 UDM 對應 邏輯
不適用 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 欄位。
accountEnabled user.user_authentication_status, user.attribute.labels.value (key: accountEnabled) 如果 accountEnabled 為 true,user.user_authentication_status 就會設為「ACTIVE」,並新增標籤,其中鍵為 accountEnabled,值為「true」。否則,系統會新增標籤,其中鍵為 accountEnabled,值為「false」。
empmanager-src.accountEnabled user.user_authentication_status, user.attribute.labels.value (key: accountEnabled) 如果 manager 為空白,且 empmanager-src.accountEnabled 為「true」,user.user_authentication_status 就會設為「ACTIVE」,並新增標籤,其中鍵為 accountEnabled,值為「true」。否則,系統會新增標籤,其中鍵為 accountEnabled,值為「false」。
onPremisesDistinguishedName user_role.type 如果區別名稱的 OU 部分包含「Admin」,user_role.type 會設為 ADMINISTRATOR。如果包含「Service Accounts」,user_role.type 會設為 SERVICE_ACCOUNT
userPrincipalName user_role.type 如果 userPrincipalName 開頭為「svc-」,user_role.type 會設為 SERVICE_ACCOUNT
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
mail user_role.type 如果 mail 開頭為「svc-」,user_role.type 會設為 SERVICE_ACCOUNT

異動

2024-04-29

  • 將「officeLocation」對應至「entity.location.name」。
  • 將「extension_wfc_groupDescription」、「extension_wfc_execDescription」、「extension_wfc_orgDescription」、「extension_wfc_AccountingUnitName」和「extension_wfc_AccountType」對應至「entity.labels」。

2024-05-02

修正錯誤:

  • 新增了對「accountEnabled」欄位的檢查,以便將正確值剖析至「entity.user.attribute.labels.value」欄位。

2024-03-14

  • 將「onPremisesImmutableId」對應至「entity.user.attribute.labels」。
  • 將「gopher-manager.onPremisesImmutableId」對應至「entity.user.attribute.labels」。

2024-01-12

修正錯誤:

  • 將「empmanager-src.usageLocation」對應項目從「entity.user.personal_address.country_or_region」變更為「entity.user.attribute.labels」。

2023-11-24

強化

  • 將「employeeType」屬性對應至「entity.user.attribute.labels」。
  • 已捨棄標記為「TAG_MALFORMED_MESSAGE」的格式錯誤 JSON 記錄。

2023-10-25

修正錯誤

  • 新增空值檢查和「on_error」檢查缺少的值。

2023-09-25

強化

  • 新增重新命名函式 (而非取代函式),將「group.displayName」對應至「relation_entity.entity.group.group_display_name」。
  • 將「country」對應至「user.personal_address.country_or_region」如果沒有「country」,則將「usageLocation」對應至「user.personal_address.country_or_region」。

2023-02-09

強化

  • 在對應「onPremisesDistinguishedName」欄位資料前,新增空值檢查。
  • 新增 gsub,從「proxyAddresses」欄位擷取電子郵件地址。

2023-01-23

  • 如果「onPremisesExtensionAttributes.extensionAttribute4」是「Employee」,則會將「onPremisesExtensionAttributes.extensionAttribute4」對應至「entity.entity.user.attribute.labels」。
  • 新增「onPremisesDistinguishedName」的 gsub,以移除多餘的反斜線。

2022-12-15

修正錯誤:

  • 將「mailNickname」對應至「entity.user.attribute.labels」。
  • 如果「empmanager-src.usageLocation」為空值,則只會將「country_n_code」對應至「user.manager.personal_address.country_or_region」。

2022-09-19

  • 修正錯誤:
  • 將「entity.user.attribute.roles」對應至「ADMINISTRATOR」,其中 OU 包含「Admin」

2022-08-11

  • 將「accountEnabled」對應至「user.attribute.labels」

2022-05-16

  • 新增下列欄位的對應項目:
  • 將「createdDateTime」對應至「entity.user.attribute.creation_time」
  • 「accountEnabled」對應至「entity.user.user_authentication_status」

2022-05-09

  • 增強功能:將開頭為 extension_GUID_sbuxXXXXXXX 的對應欄位對應至 user.attribute.labels 或 manager.attribute.labels,具體取決於日誌中出現的順序。

2022-03-24

  • 改善功能:新增幾個缺少的欄位
  • onPremisesSamAccountName、onPremisesDomainName、onPremisesDistinguishedName 已對應至 entity.user.attribute.labels。
  • 針對 signInType,userPrincipalName 對應至 entity.user.attribute.labels。

還有其他問題嗎?向社群成員和 Google SecOps 專家尋求解答。