Mengumpulkan log Workday HCM

Didukung di:

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

  1. Login ke Workday dengan hak istimewa administratif.
  2. Ketik Create Integration System User di kotak penelusuran dan pilih tugas dari hasilnya.
  3. Masukkan Nama Pengguna.
  4. Tetapkan Sandi.
  5. Setel Session Timeout Minutes ke 0 untuk mencegah ISU kehabisan waktu.
  6. Aktifkan Jangan Izinkan Sesi UI untuk meningkatkan keamanan dengan membatasi login UI.
  7. Buka tugas Pertahankan Aturan Sandi.
  8. Tambahkan pengguna sistem integrasi ke kolom Pengguna Sistem yang dikecualikan dari masa berlaku sandi.

Membuat grup keamanan integrasi di Workday

  1. Ketik Create Security Group di kotak penelusuran dan pilih tugas dari hasilnya.
  2. Cari kolom Type of Tenanted Security Group, lalu pilih Integration System Security Group (Unconstrained).
  3. Berikan Name untuk grup keamanan.
  4. Klik Oke.
  5. Klik Edit untuk grup keamanan yang baru dibuat.
  6. Tetapkan Pengguna Sistem Integrasi dari langkah sebelumnya ke grup keamanan.
  7. Klik Selesai.

Memberikan akses domain ke grup keamanan di Workday

  1. Ketik Maintain Permissions for Security Group di kotak penelusuran, lalu pilih tugas dari hasilnya.
  2. Pilih grup keamanan yang Anda buat dari daftar Grup Keamanan Sumber untuk mengubah izinnya.
  3. Klik Oke.
  4. Buka Maintain Permissions for Security Group > Domain Security Policy Permissions.
  5. Tetapkan izin yang diperlukan untuk setiap domain, seperti operasi GET.
  6. Klik Oke.
  7. Klik Done untuk menyimpan perubahan.

Mengaktifkan perubahan kebijakan keamanan di Workday

  1. Ketik Activate Pending Security Policy Changes di kotak penelusuran dan pilih tugas dari hasilnya.
  2. Mulai tugas Aktifkan Perubahan Kebijakan Keamanan yang Tertunda dengan memasukkan alasan audit Anda di kolom komentar, lalu klik OK.
  3. Selesaikan tugas di layar berikutnya dengan memilih Konfirmasi, lalu klik Oke.

Mengonfigurasi Klien API untuk Integrasi

  1. Di kotak penelusuran, ketik Register API Client for Integrations dan pilih.
  2. Klik Buat.
  3. 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.
  4. Pilih Save.
  5. Klik OK untuk membuat klien API.
  6. Setelah membuat klien API, Simpan Client Secret. Nilai tersebut tidak akan ditampilkan lagi setelah Anda keluar dari halaman.

Membuat Token Refresh OAuth 2.0

  1. Di kotak penelusuran Workday, ketik Manage Refresh Tokens for Integrations, lalu pilih.
  2. Klik Generate New Refresh Token.
  3. Di kolom Workday Account, telusuri dan pilih Integration System User yang Anda buat.
  4. Pilih pengguna, lalu klik Oke.
  5. Salin dan simpan token refresh yang ditampilkan.

Mendapatkan URL Endpoint API

  1. Di kotak penelusuran Workday, ketik View API Clients, lalu pilih.
  2. Di bagian Klien API untuk Integrasi, temukan Google SecOps Client yang Anda buat.
  3. 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

  1. 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}"
    
  2. Tindakan ini akan menampilkan token akses (misalnya, "access_token": "abcd1234")

  3. 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:

  1. Buka Setelan SIEM > Feed.
  2. Klik Tambahkan Feed Baru.
  3. Di halaman berikutnya, klik Konfigurasi satu feed.
  4. Di kolom Nama feed, masukkan nama untuk feed (misalnya, Workday Logs).
  5. Pilih Third Party API sebagai Source type.
  6. Pilih jenis log Workday.
  7. Klik Berikutnya.
  8. 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.
  9. Klik Berikutnya.
  10. 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.