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 Penyerapan data ke Google Security Operations.

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

Sebelum memulai

Pastikan Anda memiliki prasyarat berikut:

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

Cara 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 App registration, klik New registration.
  4. Di kolom Name, berikan nama tampilan untuk aplikasi Anda.
  5. Di bagian Jenis akun yang didukung, pilih opsi yang diperlukan untuk menentukan siapa yang dapat menggunakan aplikasi atau mengakses API.
  6. Klik Daftar.
  7. Buka halaman Ringkasan, lalu salin ID aplikasi (klien) dan ID direktori (tenant), yang diperlukan untuk mengonfigurasi feed Google Security Operations.
  8. Klik API permissions.
  9. Klik Add a permission, lalu pilih Microsoft Graph di panel baru.
  10. Klik Application permissions.
  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 jika aplikasi diberi izin oleh pengguna atau administrator sebagai bagian dari proses izin.
  13. Buka Setelan > Kelola.
  14. Klik Certificates and secrets.
  15. Klik New client secret. Di kolom Nilai, rahasia klien akan muncul.
  16. Salin nilai rahasia klien. Nilai ini hanya ditampilkan pada saat pembuatan dan diperlukan untuk pendaftaran aplikasi Azure dan untuk mengonfigurasi feed Google Security Operations.

Menyiapkan feed

Ada dua titik entri berbeda untuk menyiapkan feed di platform Google SecOps:

  • Setelan SIEM > Feed
  • Hub Konten > Paket Konten

Menyiapkan feed dari Setelan SIEM > Feed

Untuk mengonfigurasi beberapa feed untuk berbagai jenis log dalam keluarga produk ini, lihat Mengonfigurasi feed menurut produk.

Untuk mengonfigurasi satu feed, ikuti langkah-langkah berikut:

  1. Buka Setelan SIEM > Feed.
  2. Klik Tambahkan Feed Baru.
  3. Di halaman berikutnya, klik Konfigurasi satu feed.
  4. Di kolom Feed name, masukkan nama untuk feed; misalnya, Azure AD Context Logs.
  5. Pilih Third party API sebagai Source type.
  6. Pilih Azure AD Organizational Context sebagai Jenis log.
  7. Klik Berikutnya.
  8. Konfigurasikan parameter input wajib berikut:
    • OAUTH client ID: 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.
  9. Klik Berikutnya, lalu klik Kirim.

Untuk mengetahui 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 Operasi Keamanan Google.

Menyiapkan feed dari Hub Konten

Tentukan nilai untuk kolom berikut:

  • OAUTH client ID: 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.

Opsi lanjutan

  • Nama Feed: Nilai yang telah diisi otomatis yang mengidentifikasi feed.
  • Jenis Sumber: Metode yang digunakan untuk mengumpulkan log ke Google SecOps.
  • Namespace Aset: Namespace yang terkait dengan feed.
  • Label Penyerapan: Label yang diterapkan ke semua peristiwa dari feed ini.

Referensi pemetaan kolom

Kode parser ini mengubah log berformat JSON mentah dari Azure Active Directory menjadi model data terpadu (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 akan diambil dari usageLocation.
createdDateTime user.attribute.creation_time Dikonversi menjadi stempel waktu dari kolom createdDateTime di log mentah menggunakan format RFC 3339.
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 akan diambil dari extension_employeeNumber.
employeeType user.attribute.labels.value (kunci: 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 relasi 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 disetel ke OWNS dan arah disetel ke UNIDIRECTIONAL.
gopher-groups event.idm.entity.relations Setiap grup dalam array gopher-groups dipetakan ke entri relasi terpisah. id dipetakan ke product_object_id, dan displayName dipetakan ke group_display_name. Hubungan disetel ke MEMBER dan arah disetel 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 (key: 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 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 (kunci: 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 (key: signInType), user.attribute.labels.value (key: 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 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 (kunci: manager_src_usageLocation), empmanager.personal_address.country_or_region Dipetakan sebagai label dengan kunci manager_src_usageLocation. Jika manager.country kosong, nilai juga 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 (key: onPremisesDistinguishedName), user.attribute.labels.value (key: onPremisesDistinguishedName-OU data) 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 ditetapkan ke ADMINISTRATOR. Jika berisi "Service Accounts", user_role.type disetel 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 (key: onPremisesImmutableId) Dipetakan langsung dari kolom onPremisesImmutableId dalam log mentah dan ditambahkan sebagai label dengan kunci onPremisesImmutableId.
onPremisesSamAccountName user.userid, user.attribute.labels.value (key: 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 di 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 Setel 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 benar, user.user_authentication_status disetel ke "AKTIF" dan label dengan kunci accountEnabled dan nilai "true" 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 disetel ke "ACTIVE" dan label dengan kunci accountEnabled dan nilai "true" ditambahkan. Jika tidak, label dengan kunci accountEnabled dan nilai "false" akan ditambahkan.
onPremisesDistinguishedName user_role.type Jika bagian OU dari nama khusus berisi "Admin", user_role.type akan ditetapkan ke ADMINISTRATOR. Jika berisi "Service Accounts", user_role.type disetel 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 khusus pengelola berisi "Pengguna", manager_role.type akan disetel ke ADMINISTRATOR. Jika berisi "Service Accounts", manager_role.type disetel ke SERVICE_ACCOUNT.
empmanager-src.userPrincipalName manager_role.type Jika gopher-manager kosong dan empmanager-src.userPrincipalName dimulai dengan "svc-", manager_role.type akan disetel ke SERVICE_ACCOUNT.
mail user_role.type Jika mail dimulai dengan "svc-", user_role.type akan disetel ke SERVICE_ACCOUNT.

Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.