Mengumpulkan log Konteks Microsoft Azure AD

Didukung di:

Dokumen ini menjelaskan cara mengumpulkan log Microsoft Azure Active Directory (AD) dengan menyiapkan feed Google Security Operations.

Azure Active Directory (AZURE_AD) kini disebut Microsoft Entra ID. Log audit Azure AD (AZURE_AD_AUDIT) kini menjadi log audit Microsoft Entra ID.

Untuk mengetahui informasi selengkapnya, lihat Penambahan data ke Google Security Operations.

Label penyerapan mengidentifikasi parser yang menormalisasi data log mentah ke format UDM terstruktur.

Sebelum memulai

Untuk menyelesaikan tugas di halaman ini, pastikan Anda memiliki hal berikut:

  • Langganan Azure yang dapat Anda gunakan untuk login.
  • Peran administrator global atau administrator Azure AD.
  • Azure AD (tenant) di Azure.

Mengonfigurasi Azure AD

  1. Login ke portal Azure.
  2. Buka Beranda > Pendaftaran aplikasi, pilih aplikasi yang terdaftar atau daftarkan aplikasi jika Anda belum membuat aplikasi.
  3. Untuk mendaftarkan aplikasi, di bagian Pendaftaran aplikasi, klik Pendaftaran baru.
  4. Di kolom Nama, berikan nama tampilan untuk aplikasi Anda.
  5. Di bagian Supported account types, pilih opsi yang diperlukan untuk menentukan siapa yang dapat menggunakan aplikasi atau mengakses API.
  6. Klik Daftar.
  7. Buka halaman Ringkasan dan salin ID aplikasi (klien) dan ID direktori (tenant), yang diperlukan untuk mengonfigurasi feed Google Security Operations.
  8. Klik API permissions.
  9. Klik Tambahkan izin, lalu pilih Microsoft Graph di panel baru.
  10. Klik Izin aplikasi.
  11. Pilih izin AuditLog.Read.All, Directory.Read.All, dan SecurityEvents.Read.All. Pastikan izinnya adalah Izin aplikasi, bukan Izin yang didelegasikan.
  12. Klik Grant admin consent for default directory. Aplikasi diberi otorisasi untuk memanggil API saat diberi izin oleh pengguna atau administrator sebagai bagian dari proses izin.
  13. Buka Setelan > Kelola.
  14. Klik Sertifikat dan rahasia.
  15. Klik New client secret. Di kolom Value, rahasia klien akan muncul.
  16. Salin nilai rahasia klien. Nilai ini hanya ditampilkan pada saat pembuatan dan diperlukan untuk pendaftaran aplikasi Azure serta untuk mengonfigurasi feed Operasi Keamanan Google.

Mengonfigurasi feed di Google Security Operations untuk menyerap log Konteks Azure AD

  1. Pilih Setelan SIEM > Feed.
  2. Klik Tambahkan baru.
  3. Masukkan nama unik untuk Nama feed.
  4. Pilih Third party API sebagai Source type.
  5. Pilih Azure AD Organizational Context sebagai Log type.
  6. Klik Berikutnya.
  7. Konfigurasikan parameter input wajib berikut:
    • Client ID OAUTH: tentukan client ID yang Anda peroleh sebelumnya.
    • Rahasia klien OAUTH: tentukan rahasia klien yang Anda peroleh sebelumnya.
    • Tenant ID: tentukan tenant ID yang Anda peroleh sebelumnya.
  8. Klik Berikutnya, lalu klik Kirim.

Untuk informasi selengkapnya tentang feed Google Security Operations, lihat dokumentasi feed Google Security Operations. Untuk mengetahui informasi tentang persyaratan untuk setiap jenis feed, lihat Konfigurasi feed menurut jenis. Jika Anda mengalami masalah saat membuat feed, hubungi dukungan Google Security Operations.

Referensi pemetaan kolom

Kode parser ini mengubah log berformat JSON mentah dari Azure Active Directory menjadi Unified Data Model (UDM). Alat ini mengekstrak informasi pengguna dan pengelola, termasuk atribut, peran, hubungan, dan label, sekaligus menangani berbagai inkonsistensi data dan memperkaya output dengan kolom standar.

Tabel Pemetaan UDM

Kolom Log Pemetaan UDM Logika
businessPhones user.phone_numbers Dipetakan langsung dari kolom businessPhones dalam log mentah. Beberapa nomor telepon diekstrak dan dipetakan sebagai entri terpisah.
city user.personal_address.city Dipetakan langsung dari kolom city dalam log mentah.
companyName user.company_name Dipetakan langsung dari kolom companyName dalam log mentah.
country user.personal_address.country_or_region Dipetakan langsung dari kolom country dalam log mentah. Jika country kosong, nilai diambil dari usageLocation.
createdDateTime user.attribute.creation_time Dikonversi menjadi stempel waktu dari kolom createdDateTime dalam log mentah menggunakan format RFC3339.
department user.department Dipetakan langsung dari kolom department dalam log mentah. Beberapa departemen diekstrak dan dipetakan sebagai entri terpisah.
displayName user.user_display_name Dipetakan langsung dari kolom displayName dalam log mentah.
employeeId user.employee_id Dipetakan langsung dari kolom employeeId dalam log mentah. Jika employeeId kosong, nilai diambil dari extension_employeeNumber.
employeeType user.attribute.labels.value (key: employeeType) Dipetakan langsung dari kolom employeeType dalam log mentah dan ditambahkan sebagai label dengan kunci employeeType.
extension_employeeNumber user.employee_id Dipetakan ke user.employee_id jika employeeId kosong.
extension_wfc_AccountType event.idm.entity.entity.labels.value (kunci: wfc_AccountType) Dipetakan langsung dari kolom extension_wfc_AccountType dalam log mentah dan ditambahkan sebagai label dengan kunci wfc_AccountType.
extension_wfc_AccountingUnitName event.idm.entity.entity.labels.value (kunci: extension_wfc_AccountingUnitName) Dipetakan langsung dari kolom extension_wfc_AccountingUnitName dalam log mentah dan ditambahkan sebagai label dengan kunci extension_wfc_AccountingUnitName.
extension_wfc_execDescription event.idm.entity.entity.labels.value (kunci: extension_wfc_execDescription) Dipetakan langsung dari kolom extension_wfc_execDescription dalam log mentah dan ditambahkan sebagai label dengan kunci extension_wfc_execDescription.
extension_wfc_groupDescription event.idm.entity.entity.labels.value (kunci: extension_wfc_groupDescription) Dipetakan langsung dari kolom extension_wfc_groupDescription dalam log mentah dan ditambahkan sebagai label dengan kunci extension_wfc_groupDescription.
extension_wfc_orgDescription event.idm.entity.entity.labels.value (kunci: extension_wfc_orgDescription) Dipetakan langsung dari kolom extension_wfc_orgDescription dalam log mentah dan ditambahkan sebagai label dengan kunci extension_wfc_orgDescription.
givenName user.first_name Dipetakan langsung dari kolom givenName dalam log mentah.
gopher-devices event.idm.entity.relations Setiap perangkat dalam array gopher-devices dipetakan ke entri hubungan terpisah. deviceId dipetakan ke product_object_id, operatingSystem dan operatingSystemVersion digabungkan untuk membentuk platform_version, model dipetakan secara langsung, dan createdDateTime dikonversi menjadi stempel waktu dan dipetakan ke created_timestamp. Hubungan ditetapkan ke OWNS dan arah ditetapkan ke UNIDIRECTIONAL.
gopher-groups event.idm.entity.relations Setiap grup dalam array gopher-groups dipetakan ke entri hubungan terpisah. id dipetakan ke product_object_id, dan displayName dipetakan ke group_display_name. Hubungan ditetapkan ke MEMBER dan arah ditetapkan ke UNIDIRECTIONAL.
gopher-manager.businessPhones empmanager.phone_numbers Dipetakan ke empmanager.phone_numbers jika manager kosong.
gopher-manager.country empmanager.personal_address.country_or_region Dipetakan ke empmanager.personal_address.country_or_region jika manager kosong. Jika gopher-manager.country dan gopher-manager.usageLocation kosong, kolom akan dibiarkan kosong.
gopher-manager.department empmanager.department Dipetakan ke empmanager.department jika manager kosong.
gopher-manager.displayName empmanager.user_display_name Dipetakan ke empmanager.user_display_name jika manager kosong.
gopher-manager.employeeId empmanager.employee_id Dipetakan ke empmanager.employee_id jika manager kosong dan gopher-manager.employeeId tidak kosong.
gopher-manager.extension_employeeNumber empmanager.employee_id Dipetakan ke empmanager.employee_id jika manager dan gopher-manager.employeeId kosong, dan gopher-manager.extension_employeeNumber tidak kosong.
gopher-manager.givenName empmanager.first_name Dipetakan ke empmanager.first_name jika manager kosong.
gopher-manager.id empmanager.product_object_id Dipetakan ke empmanager.product_object_id jika manager kosong.
gopher-manager.jobTitle empmanager.title Dipetakan ke empmanager.title jika manager kosong.
gopher-manager.mail empmanager.email_addresses Dipetakan ke empmanager.email_addresses jika manager kosong.
gopher-manager.onPremisesImmutableId user.attribute.labels.value (kunci: gopher-manager onPremisesImmutableId) Dipetakan sebagai label dengan kunci gopher-manager onPremisesImmutableId.
gopher-manager.onPremisesSamAccountName empmanager.userid Dipetakan ke empmanager.userid jika manager kosong.
gopher-manager.onPremisesSecurityIdentifier empmanager.windows_sid Dipetakan ke empmanager.windows_sid jika manager kosong.
gopher-manager.proxyAddresses empmanager.email_addresses, empmanager.group_identifiers Jika manager kosong, setiap alamat dalam array gopher-manager.proxyAddresses akan dipetakan ke empmanager.email_addresses atau empmanager.group_identifiers berdasarkan apakah alamat tersebut diawali dengan "smtp" atau "SMTP".
gopher-manager.refreshTokensValidFromDateTime empmanager.attribute.labels.value (kunci: refreshTokensValidFromDateTime) Dipetakan sebagai label dengan kunci refreshTokensValidFromDateTime jika manager kosong.
gopher-manager.streetAddress empmanager.personal_address.name Dipetakan ke empmanager.personal_address.name jika manager kosong.
gopher-manager.surname empmanager.last_name Dipetakan ke empmanager.last_name jika manager kosong.
gopher-manager.usageLocation user.attribute.labels.value (key: manager_src_usageLocation) Dipetakan sebagai label dengan kunci manager_src_usageLocation.
gopher-manager.userType empmanager.attribute.roles.name Dipetakan ke empmanager.attribute.roles.name jika manager kosong.
id user.product_object_id Dipetakan langsung dari kolom id dalam log mentah.
identitas user.attribute.labels.value (kunci: signInType), user.attribute.labels.value (kunci: userPrincipalName) signInType dipetakan sebagai label dengan kunci signInType. Jika signInType dan userPrincipalName tidak kosong, keduanya akan digabungkan dan dipetakan sebagai label dengan kunci userPrincipalName.
jobTitle user.title Dipetakan langsung dari kolom jobTitle dalam log mentah.
mail user.email_addresses Dipetakan langsung dari kolom mail dalam log mentah. Jika mail dimulai dengan "svc-", user_role.type akan disetel ke SERVICE_ACCOUNT.
mailNickname user.attribute.labels.value (kunci: mailNickname) Dipetakan langsung dari kolom mailNickname dalam log mentah dan ditambahkan sebagai label dengan kunci mailNickname.
manager.businessPhones empmanager.phone_numbers Dipetakan ke empmanager.phone_numbers jika gopher-manager kosong.
manager.city empmanager.personal_address.city Dipetakan ke empmanager.personal_address.city jika gopher-manager kosong.
manager.companyName empmanager.company_name Dipetakan ke empmanager.company_name jika gopher-manager kosong.
manager.country empmanager.personal_address.country_or_region Dipetakan ke empmanager.personal_address.country_or_region jika gopher-manager kosong. Jika manager.country dan manager.usageLocation kosong, kolom akan dibiarkan kosong.
manager.department empmanager.department Dipetakan ke empmanager.department jika gopher-manager kosong.
manager.displayName empmanager.user_display_name Dipetakan ke empmanager.user_display_name jika gopher-manager kosong.
manager.employeeId empmanager.employee_id Dipetakan ke empmanager.employee_id jika gopher-manager kosong dan manager.employeeId tidak kosong.
manager.extension_employeeNumber empmanager.employee_id Dipetakan ke empmanager.employee_id jika gopher-manager dan manager.employeeId kosong, dan manager.extension_employeeNumber tidak kosong.
manager.givenName empmanager.first_name Dipetakan ke empmanager.first_name jika gopher-manager kosong.
manager.id empmanager.product_object_id Dipetakan ke empmanager.product_object_id jika gopher-manager kosong.
manager.jobTitle empmanager.title Dipetakan ke empmanager.title jika gopher-manager kosong.
manager.mail empmanager.email_addresses Dipetakan ke empmanager.email_addresses jika gopher-manager kosong.
manager.onPremisesSamAccountName empmanager.userid Dipetakan ke empmanager.userid jika gopher-manager kosong.
manager.onPremisesSecurityIdentifier empmanager.windows_sid Dipetakan ke empmanager.windows_sid jika gopher-manager kosong.
manager.proxyAddresses empmanager.email_addresses, empmanager.group_identifiers Jika gopher-manager kosong, setiap alamat dalam array manager.proxyAddresses akan dipetakan ke empmanager.email_addresses atau empmanager.group_identifiers berdasarkan apakah alamat tersebut diawali dengan "smtp" atau "SMTP".
manager.refreshTokensValidFromDateTime empmanager.attribute.labels.value (kunci: refreshTokensValidFromDateTime) Dipetakan sebagai label dengan kunci refreshTokensValidFromDateTime jika gopher-manager kosong.
manager.state empmanager.personal_address.state Dipetakan ke empmanager.personal_address.state jika gopher-manager kosong.
manager.streetAddress empmanager.personal_address.name Dipetakan ke empmanager.personal_address.name jika gopher-manager kosong.
manager.surname empmanager.last_name Dipetakan ke empmanager.last_name jika gopher-manager kosong.
manager.usageLocation user.attribute.labels.value (key: manager_src_usageLocation), empmanager.personal_address.country_or_region Dipetakan sebagai label dengan kunci manager_src_usageLocation. Jika manager.country kosong, nilainya juga akan dipetakan ke empmanager.personal_address.country_or_region.
manager.userType empmanager.attribute.roles.name Dipetakan ke empmanager.attribute.roles.name jika gopher-manager kosong.
onPremisesDistinguishedName user.attribute.labels.value (kunci: onPremisesDistinguishedName), user.attribute.labels.value (kunci: data onPremisesDistinguishedName-OU) Nama yang Dibedakan sepenuhnya dipetakan sebagai label dengan kunci onPremisesDistinguishedName. Bagian OU dari nama yang dibedakan diekstrak dan dipetakan sebagai label dengan kunci onPremisesDistinguishedName-OU data. Jika bagian OU berisi "Admin", user_role.type akan ditetapkan ke ADMINISTRATOR. Jika berisi "Akun Layanan", user_role.type akan ditetapkan ke SERVICE_ACCOUNT.
onPremisesDomainName user.group_identifiers, user.attribute.labels.value (kunci: onPremisesDomainName) Dipetakan langsung ke user.group_identifiers dan ditambahkan sebagai label dengan kunci onPremisesDomainName.
onPremisesImmutableId user.attribute.labels.value (kunci: onPremisesImmutableId) Dipetakan langsung dari kolom onPremisesImmutableId dalam log mentah dan ditambahkan sebagai label dengan kunci onPremisesImmutableId.
onPremisesSamAccountName user.userid, user.attribute.labels.value (kunci: onPremisesSamAccountName) Dipetakan ke user.userid jika sAMAccountName kosong. Juga ditambahkan sebagai label dengan kunci onPremisesSamAccountName.
onPremisesSecurityIdentifier user.windows_sid Dipetakan langsung dari kolom onPremisesSecurityIdentifier dalam log mentah.
proxyAddresses user.email_addresses, user.group_identifiers Setiap alamat dalam array proxyAddresses dipetakan ke user.email_addresses atau user.group_identifiers berdasarkan apakah alamat tersebut diawali dengan "smtp" atau "SMTP". Jika alamat dimulai dengan "smtp" atau "SMTP", awalan "smtp:" atau "SMTP:" akan dihapus dan alamat email yang tersisa akan diekstrak dan dipetakan ke user.email_addresses.
refreshTokensValidFromDateTime user.attribute.labels.value (kunci: refreshTokensValidFromDateTime) Dipetakan langsung dari kolom refreshTokensValidFromDateTime dalam log mentah dan ditambahkan sebagai label dengan kunci refreshTokensValidFromDateTime.
sAMAccountName user.userid Dipetakan langsung dari kolom sAMAccountName dalam log mentah.
state user.personal_address.state Dipetakan langsung dari kolom state dalam log mentah.
streetAddress user.personal_address.name Dipetakan langsung dari kolom streetAddress dalam log mentah.
surname user.last_name Dipetakan langsung dari kolom surname dalam log mentah.
usageLocation user.personal_address.country_or_region Jika country kosong, nilai akan dipetakan ke user.personal_address.country_or_region.
userPrincipalName user.email_addresses Dipetakan langsung dari kolom userPrincipalName dalam log mentah. Jika userPrincipalName dimulai dengan "svc-", user_role.type akan disetel ke SERVICE_ACCOUNT.
userType user.attribute.roles.name Dipetakan langsung dari kolom userType dalam log mentah dan ditambahkan ke user.attribute.roles.name.
Logika Parser Pemetaan UDM Logika
T/A event.idm.entity.metadata.vendor_name Tetapkan ke "Microsoft".
T/A event.idm.entity.metadata.product_name Tetapkan ke "Azure Active Directory".
T/A event.idm.entity.metadata.entity_type Tetapkan ke "USER".
T/A event.idm.entity.metadata.collected_timestamp Tetapkan ke kolom create_time dari log mentah.
accountEnabled user.user_authentication_status, user.attribute.labels.value (kunci: accountEnabled) Jika accountEnabled bernilai benar, user.user_authentication_status akan ditetapkan ke "AKTIF" dan label dengan kunci accountEnabled dan nilai "true" akan ditambahkan. Jika tidak, label dengan kunci accountEnabled dan nilai "false" akan ditambahkan.
empmanager-src.accountEnabled user.user_authentication_status, user.attribute.labels.value (kunci: accountEnabled) Jika manager kosong dan empmanager-src.accountEnabled adalah "true", user.user_authentication_status akan disetel ke "ACTIVE" dan label dengan kunci accountEnabled dan nilai "true" akan ditambahkan. Jika tidak, label dengan kunci accountEnabled dan nilai "false" akan ditambahkan.
onPremisesDistinguishedName user_role.type Jika bagian OU dari nama yang dibedakan berisi "Admin", user_role.type akan ditetapkan ke ADMINISTRATOR. Jika berisi "Akun Layanan", user_role.type akan ditetapkan ke SERVICE_ACCOUNT.
userPrincipalName user_role.type Jika userPrincipalName dimulai dengan "svc-", user_role.type akan disetel ke SERVICE_ACCOUNT.
empmanager-src.onPremisesDistinguishedName manager_role.type Jika gopher-manager kosong dan bagian OU dari nama unik pengelola berisi "Pengguna", manager_role.type akan disetel ke ADMINISTRATOR. Jika berisi "Akun Layanan", manager_role.type akan ditetapkan ke SERVICE_ACCOUNT.
empmanager-src.userPrincipalName manager_role.type Jika gopher-manager kosong dan empmanager-src.userPrincipalName dimulai dengan "svc-", manager_role.type akan ditetapkan ke SERVICE_ACCOUNT.
mail user_role.type Jika mail dimulai dengan "svc-", user_role.type akan disetel ke SERVICE_ACCOUNT.

Perubahan

2024-04-29

  • Memetakan "officeLocation" ke "entity.location.name".
  • Memetakan "extension_wfc_groupDescription", "extension_wfc_execDescription", "extension_wfc_orgDescription", "extension_wfc_AccountingUnitName", dan "extension_wfc_AccountType" ke "entity.labels".

2024-05-02

Perbaikan bug:

  • Menambahkan pemeriksaan untuk kolom "accountEnabled" guna mengurai nilai yang benar ke kolom "entity.user.attribute.labels.value".

2024-03-14

  • Memetakan "onPremisesImmutableId" ke "entity.user.attribute.labels".
  • Memetakan "gopher-manager.onPremisesImmutableId" ke "entity.user.attribute.labels".

2024-01-12

Perbaikan Bug:

  • Mengubah pemetaan "empmanager-src.usageLocation" dari "entity.user.personal_address.country_or_region" menjadi "entity.user.attribute.labels".

2023-11-24

Penyempurnaan

  • Memetakan atribut "employeeType" ke "entity.user.attribute.labels".
  • Menghapus log JSON yang salah format dengan tag "TAG_MALFORMED_MESSAGE".

2023-10-25

Perbaikan Bug

  • Menambahkan pemeriksaan null dan pemeriksaan 'on_error' untuk nilai yang tidak ada.

2023-09-25

Penyempurnaan

  • Menambahkan fungsi ganti nama, bukan ganti, untuk memetakan "group.displayName" ke "relation_entity.entity.group.group_display_name".
  • Memetakan "country" ke "user.personal_address.country_or_region". Jika "country" tidak ada, pemetaan "usageLocation" ke "user.personal_address.country_or_region".

2023-02-09

Penyempurnaan

  • Menambahkan pemeriksaan null sebelum memetakan data untuk kolom "onPremisesDistinguishedName".
  • Menambahkan gsub untuk mengekstrak alamat email dari kolom "proxyAddresses".

2023-01-23

  • Memetakan "onPremisesExtensionAttributes.extensionAttribute4" ke "entity.entity.user.attribute.labels" jika "onPremisesExtensionAttributes.extensionAttribute4" adalah "Employee".
  • Menambahkan gsub untuk "onPremisesDistinguishedName" guna menghapus garis miring terbalik tambahan.

2022-12-15

Perbaikan Bug:

  • Memetakan "mailNickname" ke "entity.user.attribute.labels".
  • Hanya memetakan "country_n_code" ke "user.manager.personal_address.country_or_region" jika "empmanager-src.usageLocation" null.

2022-09-19

  • Perbaikan Bug:
  • Memetakan "entity.user.attribute.roles" ke "ADMINISTRATOR" dengan OU yang menyertakan "Admin"

2022-08-11

  • Memetakan "accountEnabled" ke "user.attribute.labels"

2022-05-16

  • menambahkan pemetaan untuk kolom berikut:
  • 'createdDateTime' dipetakan ke 'entity.user.attribute.creation_time'
  • 'accountEnabled' dipetakan ke 'entity.user.user_authentication_status'

2022-05-09

  • Peningkatan- Kolom yang dipetakan yang diawali dengan extension_GUID_sbuxXXXXXXX ke user.attribute.labels atau manager.attribute.labels, bergantung pada kemunculannya dalam log.

2022-03-24

  • Peningkatan-Menambahkan beberapa kolom yang belum ada
  • onPremisesSamAccountName, onPremisesDomainName, onPremisesDistinguishedName dipetakan ke entity.user.attribute.labels.
  • Untuk signInType, userPrincipalName dipetakan ke entity.user.attribute.labels.