Mengumpulkan log Konteks Pengguna Okta

Didukung di:

Dokumen ini menjelaskan cara mengumpulkan log Okta User Context dengan menyiapkan feed Google Security Operations menggunakan API Pihak Ketiga.

Sebelum memulai

Pastikan Anda memiliki prasyarat berikut:

  • Instance Google SecOps
  • Akses istimewa ke tenant atau konsol admin Okta
  • Hak istimewa pembuatan token API di Okta

Mengonfigurasi daftar IP yang diizinkan

Sebelum membuat feed, Anda harus mengizinkan rentang IP Google SecOps di setelan jaringan atau firewall Okta Anda.

Mendapatkan rentang IP Google SecOps

Menambahkan rentang IP ke Konteks Pengguna Okta

  1. Login ke Konsol Admin Okta.
  2. Buka Keamanan > Jaringan.
  3. Di bagian Pembatasan Alamat IP, klik Edit.
  4. Tambahkan setiap rentang IP Google SecOps dalam notasi CIDR ke alamat IP tepercaya.
  5. Klik Simpan.

Mengonfigurasi akses Okta User Context API

Agar Google SecOps dapat mengambil data konteks pengguna, Anda harus membuat token API dengan izin baca.

Buat token API

  1. Login ke Konsol Admin Okta.
  2. Buka Security > API.
  3. Pilih tab Tokens.
  4. Klik Create Token.
  5. Berikan detail konfigurasi berikut:
    • Name: Masukkan nama deskriptif (misalnya, Google SecOps Integration).
    • Deskripsi (opsional): Masukkan deskripsi.
  6. Klik Create Token.

Mencatat kredensial API

Setelah membuat token API, Anda akan menerima kredensial berikut:

  • Token API: Nilai token API Anda (misalnya, 00QCGr-1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1)

Izin API yang diperlukan

Token API memerlukan izin berikut di Okta:

Izin/Peran Tingkat Akses Tujuan
Administrator Hanya Baca Baca Mengakses data profil pengguna
Administrator Super Baca Akses lengkap ke semua data pengguna

Menyiapkan feed

Untuk mengonfigurasi feed, ikuti langkah-langkah berikut:

  1. Buka SIEM Settings > Feeds.
  2. Klik Tambahkan Feed Baru.
  3. Di halaman berikutnya, klik Konfigurasi satu feed.
  4. Di kolom Nama feed, masukkan nama untuk feed (misalnya, Okta User Context).
  5. Pilih API pihak ketiga sebagai Jenis sumber.
  6. Pilih Okta User Context sebagai Log type.
  7. Klik Berikutnya.
  8. Tentukan nilai untuk parameter input berikut:

    • Header HTTP autentikasi: Masukkan kredensial autentikasi dalam format berikut:

      Authorization:SSWS your-api-token
      
      • Contoh: Authorization:SSWS 00QCGr-1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1
    • Nama Host API: Nama domain yang sepenuhnya memenuhi syarat dari instance Okta Anda (misalnya, example.okta.com, bukan domain kustom yang mungkin dikonfigurasi).

      • Contoh: company.okta.com
    • Kolom Referensi ID Pengelola: ID yang diperlukan saat Anda menggunakan ID non-Okta untuk mereferensikan pengelola (opsional).

    • Namespace aset: Namespace aset.

    • Label penyerapan: Label yang akan diterapkan ke peristiwa dari feed ini.

  9. Klik Berikutnya.

  10. Tinjau konfigurasi feed baru Anda di layar Selesaikan, lalu klik Kirim.

Setelah penyiapan, feed akan mulai mengambil log dari instance Okta User Context dalam urutan kronologis.

Endpoint regional

Okta menggunakan endpoint API yang berbeda berdasarkan wilayah organisasi Anda:

Wilayah URL Dasar / Nama Host
Amerika Serikat (Default) {org-name}.okta.com
Uni Eropa (Eropa, Timur Tengah, dan Afrika) {org-name}.okta-emea.com
Asia Pasifik (APAC) {org-name}.okta.com.au
Pratinjau (Pengujian) {org-name}.oktapreview.com

Gunakan nama host yang sesuai dengan region instance Okta Anda.

Batas kapasitas API

Okta API memiliki batas kapasitas berikut:

  • Batas kecepatan default: 600 permintaan per menit untuk sebagian besar endpoint
  • System Log API: 60 permintaan per menit
  • Endpoint pengguna: 600 permintaan per menit

Google SecOps otomatis menangani pembatasan frekuensi dengan backoff eksponensial. Jika Anda mengalami masalah, hubungi dukungan Okta untuk meningkatkan batas API Anda.

Tabel pemetaan UDM

Kolom Log Pemetaan UDM Logika
activated event.idm.entity.entity.labels Jika activated ada, nilainya akan ditambahkan sebagai pasangan nilai kunci dengan kunci "activated".
created event.idm.entity.entity.labels Jika created ada, nilainya ditambahkan sebagai pasangan nilai kunci dengan kunci "dibuat".
profile.costCenter event.idm.entity.entity.labels Jika profile.costCenter ada, nilainya akan ditambahkan sebagai pasangan nilai kunci dengan kunci "costCenter".
profile.Function event.idm.entity.entity.labels Jika profile.Function ada, nilainya akan ditambahkan sebagai pasangan nilai kunci dengan kunci "Function".
statusChanged event.idm.entity.entity.labels Jika statusChanged ada, nilainya ditambahkan sebagai pasangan nilai kunci dengan kunci "statusChanged".
type.id event.idm.entity.entity.labels Jika type.id ada, nilainya akan ditambahkan sebagai pasangan nilai kunci dengan kunci "type_id".
profile.location event.idm.entity.entity.location.name Nilai diambil dari profile.location.
profile.AD_ObjectGUID event.idm.entity.entity.user.attribute.labels Jika profile.AD_ObjectGUID ada, nilainya ditambahkan sebagai pasangan nilai kunci dengan kunci "AD_ObjectGUID".
profile.ADpwdLastSet event.idm.entity.entity.user.attribute.labels Jika profile.ADpwdLastSet ada, nilainya ditambahkan sebagai pasangan nilai kunci dengan kunci "ADpwdLastSet".
profile.AFF_Code event.idm.entity.entity.user.attribute.labels Jika profile.AFF_Code ada, nilainya akan ditambahkan sebagai pasangan nilai kunci dengan kunci "AFF_Code".
profile.Desk_Location_WD event.idm.entity.entity.user.attribute.labels Jika profile.Desk_Location_WD ada, nilainya ditambahkan sebagai pasangan nilai kunci dengan kunci "Desk_Location_WD".
profile.Mailing_Address_WD event.idm.entity.entity.user.attribute.labels Jika profile.Mailing_Address_WD ada, nilainya akan ditambahkan sebagai pasangan nilai kunci dengan kunci "Mailing_Address_WD".
profile.Manager_UPN event.idm.entity.entity.user.attribute.labels Jika profile.Manager_UPN ada, nilainya akan ditambahkan sebagai pasangan nilai kunci dengan kunci "Manager_UPN".
profile.PRIVATE_CONF_Profile event.idm.entity.entity.user.attribute.labels Jika profile.PRIVATE_CONF_Profile ada, nilainya akan ditambahkan sebagai pasangan nilai kunci dengan kunci "PRIVATE_CONF_Profile".
profile.Region_WD event.idm.entity.entity.user.attribute.labels Jika profile.Region_WD ada, nilainya ditambahkan sebagai pasangan nilai kunci dengan kunci "Region_WD".
profile.Subsidiary_Company event.idm.entity.entity.user.attribute.labels Jika profile.Subsidiary_Company ada, nilainya ditambahkan sebagai pasangan kunci-nilai dengan kunci "Subsidiary_Company".
profile.Telephone_Work event.idm.entity.entity.user.attribute.labels Jika profile.Telephone_Work ada, nilainya akan ditambahkan sebagai pasangan nilai kunci dengan kunci "Telephone_Work".
profile.Temp_WD_Primary_Email event.idm.entity.entity.user.attribute.labels Jika profile.Temp_WD_Primary_Email ada, nilainya akan ditambahkan sebagai pasangan nilai kunci dengan kunci "Temp_WD_Primary_Email".
profile.VMware_WS1_Username event.idm.entity.entity.user.attribute.labels Jika profile.VMware_WS1_Username ada, nilainya akan ditambahkan sebagai pasangan nilai kunci dengan kunci "VMware_WS1_Username".
profile.Work_Street_Address_WD event.idm.entity.entity.user.attribute.labels Jika profile.Work_Street_Address_WD ada, nilainya ditambahkan sebagai pasangan nilai kunci dengan kunci "Work_Street_Address_WD".
profile.Workato_WD_Primary_Email event.idm.entity.entity.user.attribute.labels Jika profile.Workato_WD_Primary_Email ada, nilainya ditambahkan sebagai pasangan nilai kunci dengan kunci "Workato_WD_Primary_Email".
profile.Workday_ID event.idm.entity.entity.user.attribute.labels Jika profile.Workday_ID ada, nilainya akan ditambahkan sebagai pasangan nilai kunci dengan kunci "Workday_ID".
profile.Worker_Type_WD event.idm.entity.entity.user.attribute.labels Jika profile.Worker_Type_WD ada, nilainya ditambahkan sebagai pasangan nilai kunci dengan kunci "Worker_Type_WD".
profile.businessUnit event.idm.entity.entity.user.attribute.labels Jika profile.businessUnit ada, nilainya akan ditambahkan sebagai pasangan nilai kunci dengan kunci "businessUnit".
profile.companyName event.idm.entity.entity.user.attribute.labels Jika profile.companyName ada, nilainya akan ditambahkan sebagai pasangan nilai kunci dengan kunci "companyName".
profile.contingentSupplierName event.idm.entity.entity.user.attribute.labels Jika profile.contingentSupplierName ada, nilainya akan ditambahkan sebagai pasangan nilai kunci dengan kunci "contingentSupplierName".
profile.conversationId event.idm.entity.entity.user.attribute.labels Jika profile.conversationId ada, nilainya akan ditambahkan sebagai pasangan nilai kunci dengan kunci "conversationId".
profile.distinguishedName event.idm.entity.entity.user.attribute.labels Jika profile.distinguishedName ada, nilainya akan ditambahkan sebagai pasangan nilai kunci dengan kunci "distinguishedName".
profile.division event.idm.entity.entity.user.attribute.labels Jika profile.division ada, nilainya akan ditambahkan sebagai pasangan kunci-nilai dengan kunci "division".
profile.emailPrefix event.idm.entity.entity.user.attribute.labels Jika profile.emailPrefix ada, nilainya akan ditambahkan sebagai pasangan nilai kunci dengan kunci "emailPrefix".
profile.employeeType event.idm.entity.entity.user.attribute.labels Jika profile.employeeType ada, nilainya ditambahkan sebagai pasangan nilai kunci dengan kunci "employeeType".
profile.homePostalAddress event.idm.entity.entity.user.attribute.labels Jika profile.homePostalAddress ada, nilainya ditambahkan sebagai pasangan nilai kunci dengan kunci "homePostalAddress".
profile.isManager event.idm.entity.entity.user.attribute.labels Jika profile.isManager ada, nilainya ditambahkan sebagai pasangan nilai kunci dengan kunci "isManager".
lastLogin event.idm.entity.entity.user.attribute.labels Jika lastLogin ada, nilainya ditambahkan sebagai pasangan nilai kunci dengan kunci "lastLogin".
profile.leaveOfAbsence event.idm.entity.entity.user.attribute.labels Jika profile.leaveOfAbsence ada, nilainya akan ditambahkan sebagai pasangan nilai kunci dengan kunci "leaveOfAbsence".
profile.managerDn event.idm.entity.entity.user.attribute.labels Jika profile.managerDn ada, nilainya akan ditambahkan sebagai pasangan nilai kunci dengan kunci "managerDn".
profile.payGroup event.idm.entity.entity.user.attribute.labels Jika profile.payGroup ada, nilainya akan ditambahkan sebagai pasangan nilai kunci dengan kunci "payGroup".
profile.wdemployeeID event.idm.entity.entity.user.attribute.labels Jika profile.wdemployeeID ada, nilainya akan ditambahkan sebagai pasangan nilai kunci dengan kunci "wdemployeeID".
profile.zipCode event.idm.entity.entity.user.attribute.labels Jika profile.zipCode ada, nilainya akan ditambahkan sebagai pasangan nilai kunci dengan kunci "zipCode".
profile.userType event.idm.entity.entity.user.attribute.roles Jika profile.userType ada, nilainya akan ditambahkan ke array peran.
profile.organization, profile.company event.idm.entity.entity.user.company_name Nilai diambil dari profile.organization, atau profile.company jika yang pertama tidak ada.
profile.department event.idm.entity.entity.user.department Nilai diambil dari profile.department.
profile.email, profile.secondEmail, profile.login event.idm.entity.entity.user.email_addresses Nilai dari profile.email, profile.secondEmail, dan profile.login (jika berupa email dan bukan duplikat) digabungkan ke dalam kolom ini.
profile.employeeNumber event.idm.entity.entity.user.employee_id Nilai diambil dari profile.employeeNumber.
profile.firstName, profile.Preferred_First_Name event.idm.entity.entity.user.first_name Nilai diambil dari profile.firstName, atau profile.Preferred_First_Name jika yang pertama tidak ada.
profile.EmployeeWorkGroup event.idm.entity.entity.user.group_identifiers Nilai diambil dari profile.EmployeeWorkGroup.
profile.HireDate, profile.hiredate event.idm.entity.entity.user.hire_date Nilai diuraikan dari profile.HireDate atau profile.hiredate jika yang pertama tidak ada.
profile.lastName, profile.preferred_Last_Name event.idm.entity.entity.user.last_name Nilai diambil dari profile.lastName jika profile.lastName atau profile.preferred_Last_Name ada.
lastLogin event.idm.entity.entity.user.last_login_time Nilai diuraikan dari lastLogin.
passwordChanged event.idm.entity.entity.user.last_password_change_time Nilai diuraikan dari passwordChanged.
profile.manager, profile.managerEmail, profile.managerId event.idm.entity.entity.user.managers Diisi dengan objek yang berisi user_display_name dari profile.manager, email_addresses dari profile.managerEmail, dan employee_id dari profile.managerId.
profile.city, profile.firstBaseCity event.idm.entity.entity.user.office_address.city Nilai diambil dari profile.city, atau profile.firstBaseCity jika yang pertama tidak ada.
profile.countryCode, profile.country event.idm.entity.entity.user.office_address.country_or_region Nilai diambil dari profile.countryCode, atau profile.country jika yang pertama tidak ada.
profile.streetAddress event.idm.entity.entity.user.personal_address.name Nilai diambil dari profile.streetAddress.
profile.state event.idm.entity.entity.user.personal_address.state Nilai diambil dari profile.state.
profile.primaryPhone, profile.mobilePhone, profile.mobile event.idm.entity.entity.user.phone_numbers Nilai dari profile.primaryPhone, profile.mobilePhone, dan profile.mobile digabungkan ke dalam kolom ini.
profile.terminationDate, profile.terminationdate event.idm.entity.entity.user.termination_date Nilai diuraikan dari profile.terminationDate atau profile.terminationdate jika yang pertama tidak ada.
profile.title event.idm.entity.entity.user.title Nilai diambil dari profile.title.
status event.idm.entity.entity.user.user_authentication_status Dipetakan dari status: ACTIVE/RECOVERY/LOCKED_OUT/PASSWORD_EXPIRED -> ACTIVE; SUSPENDED -> SUSPENDED; DEPROVISIONED -> DELETED; jika tidak, UNKNOWN_AUTHENTICATION_STATUS.
profile.displayName event.idm.entity.entity.user.user_display_name Nilai diambil dari profile.displayName.
profile.samAccountName, profile.samaccountname, profile.login, profile.ldapUid event.idm.entity.entity.user.userid Diisi dengan prioritas: profile.samAccountName, profile.samaccountname, profile.login (jika bukan email), profile.ldapUid (jika profile.login bukan email).
event.idm.entity.metadata.entity_type Tetapkan ke USER.
id event.idm.entity.metadata.product_entity_id Nilai diambil dari id.
event.idm.entity.metadata.product_name Tetapkan ke Identity Cloud.
event.idm.entity.metadata.vendor_name Tetapkan ke Okta.
activated", "created", "statusChanged", and "type.id entity.entity.labels Dipetakan dari log perubahan
profile.AD_ObjectGUID", "profile.ADpwdLastSet", "profile.AFF_Code", "profile.Desk_Location_WD", "profile.Mailing_Address_WD", "profile.Manager_UPN", "profile.PRIVATE_CONF_Profile", "profile.Region_WD", "profile.Subsidiary_Company", "profile.Telephone_Work", "profile.Temp_WD_Primary_Email", "profile.VMware_WS1_Username", "profile.Work_Street_Address_WD", "profile.Workato_WD_Primary_Email", "profile.Workday_ID", "profile.Worker_Type_WD", "profile.businessUnit", "profile.companyName", "profile.contingentSupplierName", "profile.conversationId", "profile.distinguishedName", "profile.division", "profile.emailPrefix", "profile.employeeType", "profile.homePostalAddress", "profile.isManager", "profile.leaveOfAbsence", "profile.managerDn", "profile.payGroup", "profile.wdemployeeID", and "profile.zipCode entity.entity.user.attribute.labels Dipetakan dari log perubahan
profile.country entity.user.country Dipetakan dari log perubahan
profile.firstBaseCity entity.user.firstBaseCity Dipetakan dari log perubahan
profile.preferred_Last_Name entity.user.preferred_Last_Name Dipetakan dari log perubahan
profile.EmployeeWorkGroup entity.user.EmployeeWorkGroup Dipetakan dari log perubahan
profile.manager entity.user.managers.user_display_name Dipetakan dari log perubahan
profile.organization entity.user.organization Dipetakan dari log perubahan
profile.state entity.user.state Dipetakan dari log perubahan
profile.streetAddress entity.user.streetAddress Dipetakan dari log perubahan
profile.mobile entity.user.mobile Dipetakan dari log perubahan
profile.managerEmail entity.user.managers.email_addresses Dipetakan dari log perubahan
profile.managerId entity.user.managers.employee_id Dipetakan dari log perubahan
profile.spotify_username entity.entity.labels Dipetakan dari log perubahan

Log Perubahan

Melihat Log Perubahan untuk parser ini

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