收集 Microsoft Azure AD Context 記錄
本文說明如何設定 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」。
- 在「名稱」欄位中,提供應用程式的顯示名稱。
- 在「支援的帳戶類型」部分,選取所需選項,指定可使用應用程式或存取 API 的對象。
- 按一下「註冊」。
- 前往「總覽」頁面,複製應用程式 (用戶端) 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 設定」>「動態消息」
- 內容中心 > 內容包
依序前往「SIEM 設定」>「動態消息」,設定動態消息
如要為這個產品系列中的不同記錄類型設定多個動態饋給,請參閱「依產品設定動態饋給」。
如要設定單一動態饋給,請按照下列步驟操作:
- 依序前往「SIEM 設定」>「動態饋給」。
- 按一下「新增動態消息」。
- 在下一個頁面中,按一下「設定單一動態饋給」。
- 在「動態饋給名稱」欄位中輸入動態饋給名稱,例如「Azure AD Context Logs」。
- 選取「第三方 API」做為「來源類型」。
- 選取「Azure AD 組織內容」做為「記錄類型」。
- 點選「下一步」。
- 設定下列必要輸入參數:
- OAUTH 用戶端 ID:指定您先前取得的用戶端 ID。
- OAUTH 用戶端密鑰:指定先前取得的用戶端密鑰。
- 租戶 ID:指定您先前取得的租戶 ID。
- 依序點按「繼續」和「提交」。
如要進一步瞭解 Google Security Operations 動態消息,請參閱 Google Security Operations 動態消息說明文件。如要瞭解各動態饋給類型的規定,請參閱「依類型設定動態饋給」。如果在建立動態饋給時遇到問題,請與 Google Security Operations 支援團隊聯絡。
從內容中心設定動態饋給
為下列欄位指定值:
- 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_id ,operatingSystem 和 operatingSystemVersion 會合併為 platform_version ,model 會直接對應,而 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 (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_addresses 或 empmanager.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 (key: signInType)、user.attribute.labels.value (key: userPrincipalName) | signInType 會對應為標籤,且鍵為 signInType 。如果 signInType 和 userPrincipalName 不為空白,系統會將兩者合併,並以鍵 userPrincipalName 對應為標籤。 |
jobTitle | user.title | 直接從原始記錄中的 jobTitle 欄位對應。 |
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.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_addresses、empmanager.group_identifiers | 如果 gopher-manager 為空,系統會根據 manager.proxyAddresses 陣列中的每個地址是否以「smtp」或「SMTP」開頭,將其對應至 empmanager.email_addresses 或 empmanager.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 (key: onPremisesDistinguishedName)、user.attribute.labels.value (key: onPremisesDistinguishedName-OU data) | 完整辨別名稱會對應為標籤,索引鍵為 onPremisesDistinguishedName 。系統會擷取識別名稱的 OU 部分,並以 onPremisesDistinguishedName-OU data 鍵對應為標籤。如果 OU 部分包含「Admin」,user_role.type 會設為 ADMINISTRATOR 。如果包含「服務帳戶」,則 user_role.type 會設為 SERVICE_ACCOUNT 。 |
onPremisesDomainName | user.group_identifiers、user.attribute.labels.value (key: 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 陣列中的每個地址都會對應至 user.email_addresses 或 user.group_identifiers ,視地址是否以「smtp」或「SMTP」開頭而定。如果地址開頭為「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 (鍵:accountEnabled) | 如果 accountEnabled 為 true,user.user_authentication_status 會設為「ACTIVE」,並新增鍵為 accountEnabled 、值為「true」的標籤。否則,系統會新增鍵為 accountEnabled 且值為「false」的標籤。 |
empmanager-src.accountEnabled | user.user_authentication_status、user.attribute.labels.value (鍵: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 。如果包含「服務帳戶」,則 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 。如果包含「服務帳戶」,則 manager_role.type 會設為 SERVICE_ACCOUNT 。 |
empmanager-src.userPrincipalName | manager_role.type | 如果 gopher-manager 為空,且 empmanager-src.userPrincipalName 開頭為「svc-」,則 manager_role.type 會設為 SERVICE_ACCOUNT 。 |
user_role.type | 如果 mail 開頭為「svc-」,則 user_role.type 會設為 SERVICE_ACCOUNT 。 |
還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求答案。