Mengumpulkan log Workday HCM
Dokumen ini menjelaskan cara menyerap log Workday ke Google Security Operations menggunakan API. Parser mengekstrak data pengguna Workday HCM dari log berformat JSON. Fungsi ini menangani berbagai transformasi data, termasuk mengganti nama kolom, menggabungkan objek bertingkat, mengurai tanggal, dan mengisi kolom UDM untuk atribut pengguna, detail pekerjaan, dan struktur organisasi. Selain itu, API ini mencakup penanganan error untuk JSON yang salah format dan kolom penting yang tidak ada.
Sebelum memulai
- Pastikan Anda memiliki instance Google SecOps.
- Pastikan Anda memiliki akses dengan hak istimewa ke Workday.
Mengonfigurasi Autentikasi Workday API
Membuat Pengguna Sistem Integrasi (ISU) di Workday
- Login ke Workday dengan hak istimewa administratif.
- Ketik
Create Integration System User
di kotak penelusuran, lalu pilih tugas dari hasil. - Masukkan Nama Pengguna.
- Tetapkan Sandi.
- Tetapkan Menit Waktu Tunggu Sesi ke
0
untuk mencegah waktu tunggu ISU habis. - Aktifkan Jangan Izinkan Sesi UI untuk meningkatkan keamanan dengan membatasi login UI.
- Buka tugas Mempertahankan Aturan Sandi.
- Tambahkan pengguna sistem integrasi ke kolom Pengguna Sistem yang dikecualikan dari masa berlaku sandi.
Membuat grup keamanan integrasi di Workday
- Ketik
Create Security Group
di kotak penelusuran, lalu pilih tugas dari hasil. - Temukan kolom Type of Tenanted Security Group, lalu pilih Integration System Security Group (Unconstrained).
- Berikan Name untuk grup keamanan.
- Klik OK.
- Klik Edit untuk grup keamanan yang baru dibuat.
- Tetapkan Pengguna Sistem Integrasi dari langkah sebelumnya ke grup keamanan.
- Klik Selesai.
Memberikan akses domain ke grup keamanan di Workday
- Ketik Maintain Permissions for Security Group di kotak penelusuran, lalu pilih tugas dari hasil penelusuran.
- Pilih grup keamanan yang Anda buat dari daftar Grup Keamanan Sumber untuk mengubah izinnya.
- Klik OK.
- Buka Maintain Permissions for Security Group > Domain Security Policy Permissions.
- Tetapkan izin yang diperlukan untuk setiap domain, seperti operasi GET.
- Klik OK.
- Klik Done untuk menyimpan perubahan.
Mengaktifkan perubahan kebijakan keamanan di Workday
- Ketik
Activate Pending Security Policy Changes
di kotak penelusuran, lalu pilih tugas dari hasil. - Mulai tugas Aktifkan Perubahan Kebijakan Keamanan yang Tertunda dengan memasukkan alasan audit Anda di kolom komentar, lalu klik OK.
- Selesaikan tugas di layar berikutnya dengan memilih Konfirmasi, lalu klik Oke.
Mengonfigurasi Klien API untuk Integrasi
- Di kotak penelusuran, ketik
Register API Client for Integrations
dan pilih. - Klik Buat.
- Berikan detail konfigurasi berikut:
- Client Name: Masukkan nama untuk klien API (misalnya,
Google SecOps Client
). - Pengguna Sistem: Pilih Pengguna Sistem Integrasi yang Anda buat di langkah sebelumnya.
- Cakupan: Pilih HCM API atau cakupan yang relevan yang mencakup data pekerja dan area lain yang Anda akses.
- Client Name: Masukkan nama untuk klien API (misalnya,
- Pilih Save.
- Klik OK untuk membuat klien API.
- Setelah membuat klien API, Simpan Rahasia Klien. Nilai ini tidak akan ditampilkan lagi setelah Anda keluar dari halaman.
Membuat Token Refresh OAuth 2.0
- Di kotak penelusuran Workday, ketik
Manage Refresh Tokens for Integrations
dan pilih. - Klik Buat Token Refresh Baru.
- Di kolom Workday Account, telusuri dan pilih Integration System User yang Anda buat.
- Pilih pengguna, lalu klik OK.
- Salin dan simpan token refresh yang ditampilkan.
Mendapatkan URL Endpoint API
- Di kotak penelusuran Workday, ketik
View API Clients
dan pilih. - Di bagian Klien API untuk Integrasi, temukan
Google SecOps Client
yang Anda buat. - Salin dan simpan detail berikut:
- Endpoint Token: URL tempat Anda akan mengirim permintaan untuk mendapatkan token akses.
- Endpoint REST API Workday: URL yang akan Anda gunakan untuk mengonfigurasi integrasi dengan Google SecOps.
Membuat Token Akses OAuth
Gunakan curl atau klien HTTP serupa untuk mengirim permintaan POST ke Endpoint Token:
curl -X POST "https://{hostname}/ccx/oauth2/token" \ -d "grant_type=refresh_token" \ -d "client_id={your_client_id}" \ -d "client_secret={your_client_secret}" \ -d "refresh_token={your_refresh_token}"
Tindakan ini akan menampilkan token akses (misalnya,
"access_token": "abcd1234"
)Salin dan simpan token akses.
Mengonfigurasi feed di Google SecOps untuk menyerap log Workday
- Buka Setelan SIEM > Feed.
- Klik Tambahkan baru.
- Di kolom Nama feed, masukkan nama untuk feed (misalnya,
Workday Logs
). - Pilih Third Party API sebagai Source type.
- Pilih jenis log Workday.
- Klik Berikutnya.
- Tentukan nilai untuk parameter input berikut:
- Nama Host API: URL Endpoint REST API Workday Anda.
- Tenant: elemen jalur terakhir dari endpoint Workday API yang mengidentifikasi instance Anda.
- Token Akses: Token akses OAuth.
- Namespace aset: namespace aset.
- Label penyerapan: label yang diterapkan ke peristiwa dari feed ini.
- Klik Berikutnya.
- Tinjau konfigurasi feed di layar Finalize, lalu klik Submit.
Tabel Pemetaan UDM
Kolom Log | Pemetaan UDM | Logika |
---|---|---|
@timestamp |
read_only_udm.metadata.event_timestamp.seconds |
Kolom @timestamp log mentah diganti namanya menjadi timestamp dan diuraikan sebagai stempel waktu dalam detik sejak epoch. |
businessTitle |
read_only_udm.entity.entity.user.title |
Dipetakan langsung dari kolom businessTitle dalam log mentah. |
descriptor |
read_only_udm.entity.entity.user.user_display_name |
Dipetakan langsung dari kolom descriptor dalam log mentah. |
Employee_ID |
read_only_udm.entity.entity.user.employee_id |
Dipetakan langsung dari kolom Employee_ID dalam log mentah. |
Employee_ID |
read_only_udm.entity.metadata.product_entity_id |
Dipetakan langsung dari kolom Employee_ID dalam log mentah jika id tidak ada. |
gopher-supervisor.descriptor |
read_only_udm.entity.entity.user.managers.user_display_name |
Dipetakan langsung dari kolom gopher-supervisor.descriptor dalam log mentah, diganti namanya menjadi empmanager.user_display_name , lalu digabungkan ke dalam managers . |
gopher-supervisor.id |
read_only_udm.entity.entity.user.managers.product_object_id |
Dipetakan langsung dari kolom gopher-supervisor.id dalam log mentah, diganti namanya menjadi empmanager.product_object_id , lalu digabungkan ke dalam managers . |
gopher-supervisor.primaryWorkEmail |
read_only_udm.entity.entity.user.managers.email_addresses |
Dipetakan langsung dari kolom gopher-supervisor.primaryWorkEmail dalam log mentah, lalu digabungkan ke managers . |
gopher-time-off.date |
read_only_udm.entity.entity.user.time_off.interval.start_time |
Diurai sebagai tanggal dari kolom gopher-time-off.date dalam array gopher-time-off di log mentah. |
gopher-time-off.descriptor |
read_only_udm.entity.entity.user.time_off.description |
Dipetakan langsung dari kolom gopher-time-off.descriptor dalam array gopher-time-off dalam log mentah. |
Hire_Date |
read_only_udm.entity.entity.user.hire_date |
Diurai sebagai tanggal dari kolom Hire_Date dalam log mentah. |
id |
read_only_udm.entity.metadata.product_entity_id |
Dipetakan langsung dari kolom id dalam log mentah jika ada. |
Job_Profile |
read_only_udm.entity.entity.user.title |
Dipetakan langsung dari kolom Job_Profile dalam log mentah jika businessTitle tidak ada. |
Legal_Name_First_Name |
read_only_udm.entity.entity.user.first_name |
Dipetakan langsung dari kolom Legal_Name_First_Name dalam log mentah. |
Legal_Name_Last_Name |
read_only_udm.entity.entity.user.last_name |
Dipetakan langsung dari kolom Legal_Name_Last_Name dalam log mentah. |
location.descriptor |
read_only_udm.entity.entity.location.city |
Dipetakan langsung dari kolom location.descriptor dalam log mentah, diganti namanya menjadi _location.city , lalu menjadi entity.entity.location.city . |
primarySupervisoryOrganization.descriptor |
read_only_udm.entity.entity.user.department |
Dipetakan langsung dari kolom primarySupervisoryOrganization.descriptor dalam log mentah. |
primaryWorkEmail |
read_only_udm.entity.entity.user.email_addresses |
Dipetakan langsung dari kolom primaryWorkEmail dalam log mentah. |
primaryWorkPhone |
read_only_udm.entity.entity.user.phone_numbers |
Dipetakan langsung dari kolom primaryWorkPhone dalam log mentah. |
Termination_Date |
read_only_udm.entity.entity.user.termination_date |
Diurai sebagai tanggal dari kolom Termination_Date dalam log mentah. |
Work_Email |
read_only_udm.entity.entity.user.email_addresses |
Dipetakan langsung dari kolom Work_Email dalam log mentah jika primaryWorkEmail tidak ada. |
collection_time |
read_only_udm.metadata.event_timestamp.collected_timestamp |
collection_time log dipetakan ke collected_timestamp . |
Perubahan
2024-06-25
Peningkatan:
- Menambahkan dukungan untuk peristiwa UDM
- Menambahkan pola Grok di atas
href"
untuk mengekstrak kolomentity_host_name
- Memetakan
entity_host_name
keentity.entity.asset.hostname
- Memetakan
href
keentity.entity.url
2024-06-24
Peningkatan:
- Menambahkan dukungan untuk log CSV
2022-09-15
- Dimigrasikan ke parser default
2022-05-11
- Dimigrasikan ke parser default
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.