收集 Microsoft Entra ID 組織環境資料 (原稱「Azure Active Directory」) 記錄
剖析器版本:12.0
本文說明如何使用第三方 API 設定 Google Security Operations 資訊提供,以收集 Microsoft Entra ID (原稱「Azure Active Directory」) 機構環境資料。
Microsoft Entra ID Organizational Context 會提供 Microsoft Entra ID 租戶的目錄資訊,例如使用者、群組和裝置。這不是事件或記錄資料,而是目錄狀態的定期快照,可為 Google SecOps 中的其他記錄類型提供身分脈絡。
事前準備
請確認您已完成下列事前準備事項:
- Google SecOps 執行個體
- Microsoft Azure 入口網站的特殊權限
- 下列其中一個角色可授予管理員同意:
- 全域管理員:可為任何 API 授予任何權限的同意聲明
- Privileged Role Administrator - can grant consent for any permission, for any API
設定 IP 許可清單
建立動態饋給前,請先在 Microsoft Azure 網路設定或條件存取政策中新增 Google SecOps IP 範圍。如果資料來源強制執行 IP 限制,這項設定就很重要。如果動態饋給傳回 403 錯誤,請確認已啟用允許清單。如要限制較小範圍的存取權,請提交支援單。
詳情請參閱「IP 許可清單」。
取得 Google SecOps IP 範圍
- 依序前往「SIEM 設定」>「動態饋給」。
- 按一下「新增動態饋給」。
- 請注意動態饋給建立介面中顯示的 IP 範圍。
- 或者,您也可以使用 Feed Management API,透過程式輔助方式擷取 IP 範圍。
視需要設定工作負載身分的條件式存取權
如果貴機構使用條件式存取政策,限制存取權的授予位置,請按照下列步驟操作:
- 在 Microsoft Entra 系統管理中心,依序前往 「Protection」>「Conditional Access」>「Named locations」。
- 按一下「+ 新增地點」。
- 提供下列設定詳細資料:
- 「Name」(名稱):輸入
Google SecOps IP Ranges。 - 標示為信任地點:選用,視安全性政策而定。
- IP 範圍:以 CIDR 標記法新增每個 Google SecOps IP 範圍。
- 「Name」(名稱):輸入
- 點選「建立」。
- 依序前往「條件式存取」>「原則」。
- 如要為工作負載身分套用任何政策,請為名為
Google SecOps IP Ranges的位置或特定服務主體設定排除條件。
設定 Microsoft Entra 應用程式註冊
建立應用程式註冊
- 登入 Microsoft Entra 系統管理中心或 Azure 入口網站。
- 依序前往「Identity」>「Applications」>「App registrations」。
- 按一下 [新增註冊]。
- 請提供下列設定詳細資料:
- 名稱:輸入描述性名稱 (例如
Google SecOps Entra ID Context Integration)。 - 支援的帳戶類型:選取「Accounts in this organizational directory only (Single tenant)」。
- 重新導向 URI:留空 (服務主體驗證不需要)。
- 名稱:輸入描述性名稱 (例如
- 按一下「註冊」。
- 註冊後,請複製並儲存下列值:
- 應用程式 (用戶端) ID
- 目錄 (租戶) ID
設定 API 權限
動態饋給會透過 Microsoft Graph List users 端點讀取使用者目錄,並展開每位使用者的主管。授予與啟用動態消息選項相符的應用程式權限。
- 在應用程式註冊中,前往「API permissions」。
- 按一下「新增權限」。
- 依序選取 「Microsoft Graph」 > 「Application permissions」。
- 搜尋並選取下列權限:
- User.Read.All - 必要權限。讀取動態饋給擷取的使用者設定檔和管理員關係。
- Group.Read.All:只有在動態饋給中將「Retrieve groups」設為「True」時,才需要這項權限。讀取每個使用者成員資格傳回的群組。
- Device.Read.All - 只有在將動態饋給中的「Retrieve devices」設為「True」時,才需要這項權限。讀取與每位使用者相關聯的裝置。
- 按一下「Add permissions」。
- 按一下「Grant admin consent for Your Organization」。
確認「狀態」欄中所有權限都顯示「已授予貴機構」。
權限 類型 視需要 User.Read.All 應用程式 一律 Group.Read.All 應用程式 「Retrieve groups」設為「True」 Device.Read.All 應用程式 「Retrieve devices」為「True」
建立用戶端密鑰
- 在應用程式註冊中,前往「Certificates & secrets」。
- 按一下「New client secret」。
提供下列設定詳細資料:
- 說明:輸入描述性名稱 (例如
Google SecOps Feed)。 - 到期日:選取到期時間。
- 說明:輸入描述性名稱 (例如
按一下「新增」。
立即複製用戶端密鑰的「值」。
在 Google SecOps 中設定動態饋給,擷取 Microsoft Entra ID 機構比對內容資料
如要設定動態饋給,請按照下列步驟操作:
- 依序前往「SIEM 設定」>「動態饋給」。
- 按一下「新增動態饋給」。
- 在下一個頁面中,按一下「設定單一動態饋給」。
- 在「Feed name」(動態饋給名稱) 欄位中,輸入動態饋給名稱 (例如
Azure AD Organizational Context)。 - 在「Source type」(來源類型) 中選取「Third party API」(第三方 API)。
- 選取「Azure AD Organizational Context」做為「Log type」。
- 點選「下一步」。
為下列輸入參數指定值:
- OAuth 用戶端 ID:輸入應用程式註冊時取得的應用程式 (用戶端) ID。
- OAuth 用戶端密鑰:輸入先前複製的用戶端密鑰值。
- 租戶 ID:輸入應用程式註冊時的目錄 (租戶) ID,格式為 UUID (例如
0fc279f9-fe30-41be-97d3-abe1d7681418)。 - 擷取裝置:選取是否要在使用者情境中擷取裝置資訊。設為 True 即可納入裝置資料。
- 擷取群組:選取是否要在使用者情境中擷取群組成員資訊。設為 True 即可納入群組資料。
API Full Path:Microsoft Graph REST API 端點網址:
graph.microsoft.com/beta
API 驗證端點:Microsoft Entra ID 驗證端點:
login.microsoftonline.com
進階選項:
- 資產命名空間:資產命名空間。
- 擷取標籤:要套用至這個動態饋給事件的標籤。
點選「下一步」。
在「Finalize」(完成) 畫面中檢查新的新聞動態消息設定,然後按一下「Submit」(提交)。
地區端點
如要在主權雲端中部署 Microsoft Entra ID,請使用適當的區域端點:
| 雲端環境 | API 完整路徑 | API 驗證端點 |
|---|---|---|
| 全球 | graph.microsoft.com/beta |
login.microsoftonline.com |
| 美國政府 L4 | graph.microsoft.us/beta |
login.microsoftonline.us |
| 美國政府 L5 (國防部) | dod-graph.microsoft.us/beta |
login.microsoftonline.us |
| 中國 (世紀互聯) | microsoftgraph.chinacloudapi.cn/beta |
login.chinacloudapi.cn |
UDM 對應表
| 記錄欄位 | UDM 對應 | 邏輯 |
|---|---|---|
extension_wfc_AccountType |
entity.labels.value |
直接對應 |
extension_wfc_AccountingUnitName |
entity.labels.value |
直接對應 |
extension_wfc_execDescription |
entity.labels.value |
直接對應 |
extension_wfc_groupDescription |
entity.labels.value |
直接對應 |
extension_wfc_orgDescription |
entity.labels.value |
直接對應 |
createdDateTime |
entity.user.attribute.creation_time |
已剖析為 RFC3339 |
sign_in_type |
entity.user.attribute.labels.key |
直接對應 |
assignedLicense.skuId |
entity.user.attribute.labels.value |
直接對應 |
employeeType |
entity.user.attribute.labels.value |
直接對應 |
empmanager-src.usageLocation |
entity.user.attribute.labels.value |
直接對應 |
externalUserState |
entity.user.attribute.labels.value |
直接對應 |
gopher-manager.onPremisesImmutableId |
entity.user.attribute.labels.value |
直接對應 |
mailNickname |
entity.user.attribute.labels.value |
直接對應 |
onPremisesDistinguishedName |
entity.user.attribute.labels.value |
直接對應 |
onPremisesDomainName |
entity.user.attribute.labels.value |
直接對應 |
onPremisesExtensionAttributes.extensionAttribute4 |
entity.user.attribute.labels.value |
直接對應 |
onPremisesImmutableId |
entity.user.attribute.labels.value |
直接對應 |
onPremisesSamAccountName |
entity.user.attribute.labels.value |
直接對應 |
refreshTokensValidFromDateTime |
entity.user.attribute.labels.value |
直接對應 |
token_date_time |
entity.user.attribute.labels.value |
直接對應 |
userPrincipalName |
entity.user.attribute.labels.value |
直接對應 |
user_ou_data |
entity.user.attribute.labels.value |
直接對應 |
userType |
entity.user.attribute.roles.name |
直接對應 |
user_ou_data |
entity.user.attribute.roles.type |
對應:Admin → ADMINISTRATOR、Service Accounts → SERVICE_ACCOUNT |
department |
entity.user.department |
已合併 |
mail |
entity.user.email_addresses |
已合併 |
proxyAddress |
entity.user.email_addresses |
已對應:smtp/SMTP → proxyAddress |
userPrincipalName |
entity.user.email_addresses |
已合併 |
employeeId |
entity.user.employee_id |
已重新命名/對應 |
extension_employeeNumber |
entity.user.employee_id |
已重新命名/對應 |
onPremisesDomainName |
entity.user.group_identifiers |
已合併 |
proxyAddress |
entity.user.group_identifiers |
已合併 |
sign_in_type_manager |
entity.user.managers.attribute.labels.key |
直接對應 |
temp |
entity.user.managers.attribute.labels.key |
已對應:true → manager accountEnabled |
empmanager-src.sbuxCompanyCode |
entity.user.managers.attribute.labels.value |
直接對應 |
empmanager-src.sbuxCostCenter |
entity.user.managers.attribute.labels.value |
直接對應 |
empmanager-src.sbuxDirectorySync |
entity.user.managers.attribute.labels.value |
直接對應 |
empmanager-src.sbuxEmployeeStatus |
entity.user.managers.attribute.labels.value |
直接對應 |
empmanager-src.sbuxEmployeeType |
entity.user.managers.attribute.labels.value |
直接對應 |
empmanager-src.sbuxFullName |
entity.user.managers.attribute.labels.value |
直接對應 |
empmanager-src.sbuxFullNameAKA |
entity.user.managers.attribute.labels.value |
直接對應 |
empmanager-src.sbuxFullNameAKAAlt |
entity.user.managers.attribute.labels.value |
直接對應 |
empmanager-src.sbuxFullNameAlt |
entity.user.managers.attribute.labels.value |
直接對應 |
empmanager-src.sbuxGivenNameAlt |
entity.user.managers.attribute.labels.value |
直接對應 |
empmanager-src.sbuxGlobalID |
entity.user.managers.attribute.labels.value |
直接對應 |
empmanager-src.sbuxJobNumber |
entity.user.managers.attribute.labels.value |
直接對應 |
empmanager-src.sbuxKnownAs |
entity.user.managers.attribute.labels.value |
直接對應 |
empmanager-src.sbuxKnownAsAlt |
entity.user.managers.attribute.labels.value |
直接對應 |
empmanager-src.sbuxLocalMarket |
entity.user.managers.attribute.labels.value |
直接對應 |
empmanager-src.sbuxLocalMarketEmployeeID |
entity.user.managers.attribute.labels.value |
直接對應 |
empmanager-src.sbuxManagerImmutableID |
entity.user.managers.attribute.labels.value |
直接對應 |
empmanager-src.sbuxManagerNumber |
entity.user.managers.attribute.labels.value |
直接對應 |
empmanager-src.sbuxOnTLA |
entity.user.managers.attribute.labels.value |
直接對應 |
empmanager-src.sbuxOrgAreaID |
entity.user.managers.attribute.labels.value |
直接對應 |
empmanager-src.sbuxOrgDistrictID |
entity.user.managers.attribute.labels.value |
直接對應 |
empmanager-src.sbuxOrgDivisionID |
entity.user.managers.attribute.labels.value |
直接對應 |
empmanager-src.sbuxOrgRegionID |
entity.user.managers.attribute.labels.value |
直接對應 |
empmanager-src.sbuxOrgShortName |
entity.user.managers.attribute.labels.value |
直接對應 |
empmanager-src.sbuxOrgStoreID |
entity.user.managers.attribute.labels.value |
直接對應 |
empmanager-src.sbuxOrgType |
entity.user.managers.attribute.labels.value |
直接對應 |
empmanager-src.sbuxOrgUnit |
entity.user.managers.attribute.labels.value |
直接對應 |
empmanager-src.sbuxSnAlt |
entity.user.managers.attribute.labels.value |
直接對應 |
empmanager-src.sbuxSourceSystem |
entity.user.managers.attribute.labels.value |
直接對應 |
empmanager-src.userPrincipalName |
entity.user.managers.attribute.labels.value |
直接對應 |
manager_ou_data |
entity.user.managers.attribute.labels.value |
直接對應 |
temp |
entity.user.managers.attribute.labels.value |
直接對應 |
manager_user_type |
entity.user.managers.attribute.roles.name |
直接對應 |
manager_ou_data |
entity.user.managers.attribute.roles.type |
對應:Users → ADMINISTRATOR、Service Accounts → SERVICE_ACCOUNT |
empmanager-src.companyName |
entity.user.managers.company_name |
已重新命名/對應 |
empmanager-src.department |
entity.user.managers.department |
已合併 |
empProxyAddress |
entity.user.managers.email_addresses |
已對應:smtp/SMTP → empProxyAddress |
empmanager-src.mail |
entity.user.managers.email_addresses |
已合併 |
principal_name |
entity.user.managers.email_addresses |
已合併 |
empmanager-src.employeeId |
entity.user.managers.employee_id |
已重新命名/對應 |
empmanager-src.extension_employeeNumber |
entity.user.managers.employee_id |
已重新命名/對應 |
empmanager-src.givenName |
entity.user.managers.first_name |
已重新命名/對應 |
empProxyAddress |
entity.user.managers.group_identifiers |
已合併 |
empmanager-src.surname |
entity.user.managers.last_name |
已重新命名/對應 |
empmanager-src.city |
entity.user.managers.personal_address.city |
已重新命名/對應 |
country_n_code |
entity.user.managers.personal_address.country_or_region |
直接對應 |
empmanager-src.streetAddress |
entity.user.managers.personal_address.name |
已重新命名/對應 |
empmanager-src.state |
entity.user.managers.personal_address.state |
已重新命名/對應 |
empmanager-src.businessPhones.0 |
entity.user.managers.phone_numbers |
已合併 |
empmanager-src.id |
entity.user.managers.product_object_id |
已重新命名/對應 |
empmanager-src.jobTitle |
entity.user.managers.title |
已重新命名/對應 |
empmanager-src.displayName |
entity.user.managers.user_display_name |
已重新命名/對應 |
empmanager-src.sAMAccountName |
entity.user.managers.userid |
已重新命名/對應 |
empmanager-src.onPremisesSecurityIdentifier |
entity.user.managers.windows_sid |
已重新命名/對應 |
country |
entity.user.personal_address.country_or_region |
直接對應 |
usageLocation |
entity.user.personal_address.country_or_region |
直接對應 |
phoneNumber |
entity.user.phone_numbers |
已合併 |
onPremisesSamAccountName |
entity.user.userid |
已重新命名/對應 |
sAMAccountName |
entity.user.userid |
已重新命名/對應 |
gopher-device-item.createdDateTime |
metadata.event_timestamp |
已剖析為 RFC3339 |
| 不適用 | entity.labels.key |
常數:wfc_AccountType |
| 不適用 | entity.user.attribute.labels.key |
常數:gopher-manager onPremisesImmutableId |
| 不適用 | entity.user.attribute.roles.type |
常數:SERVICE_ACCOUNT |
| 不適用 | entity.user.managers.attribute.labels.key |
常數:manager accountEnabled |
| 不適用 | entity.user.managers.attribute.roles.type |
常數:SERVICE_ACCOUNT |
| 不適用 | entity.user.user_authentication_status |
常數:ACTIVE |
| 不適用 | metadata.entity_type |
常數:USER |
| 不適用 | metadata.event_metadata.log_type |
常數:AZURE_AD_CONTEXT |
| 不適用 | metadata.product_name |
常數:Azure Active Directory |
| 不適用 | metadata.vendor_name |
常數:Microsoft |
變更記錄
還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求解答。