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. Proses 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, library ini mencakup penanganan error untuk JSON yang salah format dan kolom penting yang tidak ada.
Sebelum memulai
Pastikan Anda memiliki prasyarat berikut:
- Instance Google SecOps.
- Akses 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 dan pilih tugas dari hasilnya. - Masukkan Nama Pengguna.
- Tetapkan Sandi.
- Setel Session Timeout Minutes ke
0
untuk mencegah ISU kehabisan waktu. - Aktifkan Jangan Izinkan Sesi UI untuk meningkatkan keamanan dengan membatasi login UI.
- Buka tugas Pertahankan 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 dan pilih tugas dari hasilnya. - Cari kolom Type of Tenanted Security Group, lalu pilih Integration System Security Group (Unconstrained).
- Berikan Name untuk grup keamanan.
- Klik Oke.
- 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 hasilnya.
- Pilih grup keamanan yang Anda buat dari daftar Grup Keamanan Sumber untuk mengubah izinnya.
- Klik Oke.
- Buka Maintain Permissions for Security Group > Domain Security Policy Permissions.
- Tetapkan izin yang diperlukan untuk setiap domain, seperti operasi GET.
- Klik Oke.
- Klik Done untuk menyimpan perubahan.
Mengaktifkan perubahan kebijakan keamanan di Workday
- Ketik
Activate Pending Security Policy Changes
di kotak penelusuran dan pilih tugas dari hasilnya. - 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 Client Secret. Nilai tersebut 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
, lalu pilih. - Klik Generate New Refresh Token.
- Di kolom Workday Account, telusuri dan pilih Integration System User yang Anda buat.
- Pilih pengguna, lalu klik Oke.
- Salin dan simpan token refresh yang ditampilkan.
Mendapatkan URL Endpoint API
- Di kotak penelusuran Workday, ketik
View API Clients
, lalu pilih. - Di bagian Klien API untuk Integrasi, temukan
Google SecOps Client
yang Anda buat. - Salin dan simpan detail berikut:
- Endpoint Token: URL yang akan Anda kirimi permintaan untuk mendapatkan token akses.
- Endpoint Workday REST API: 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.
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 feed, ikuti langkah-langkah berikut:
- Buka Setelan SIEM > Feed.
- Klik Tambahkan Feed Baru.
- Di halaman berikutnya, klik Konfigurasi satu feed.
- 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 Workday REST API Anda.
- Tenant: elemen jalur terakhir dari endpoint Workday API yang mengidentifikasi instance Anda.
- Token Akses: Token akses OAuth.
- Klik Berikutnya.
- Tinjau konfigurasi feed di layar Selesaikan, lalu klik Kirim.
Menyiapkan feed dari Hub Konten
Tentukan nilai untuk kolom berikut:
- Nama Host API: FQDN endpoint Workday REST API Anda.
- Tenant: Elemen jalur terakhir dari endpoint Workday API yang mengidentifikasi instance Anda.
- Token Akses: Token akses OAuth.
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.
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 di log mentah saat 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 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 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 |
Diuraikan 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 di log mentah. |
Hire_Date |
read_only_udm.entity.entity.user.hire_date |
Diuraikan sebagai tanggal dari kolom Hire_Date dalam log mentah. |
id |
read_only_udm.entity.metadata.product_entity_id |
Dipetakan langsung dari kolom id di log mentah jika ada. |
Job_Profile |
read_only_udm.entity.entity.user.title |
Dipetakan langsung dari kolom Job_Profile di log mentah saat 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 |
Diuraikan 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 di log mentah saat primaryWorkEmail tidak ada. |
collection_time |
read_only_udm.metadata.event_timestamp.collected_timestamp |
collection_time log dipetakan ke collected_timestamp . |
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.