Mengumpulkan log Konteks Pengguna Okta
Dokumen ini menjelaskan cara mengumpulkan log Konteks Pengguna Okta dengan menyiapkan feed Google Security Operations menggunakan API Pihak ketiga.
Sebelum memulai
Pastikan Anda memiliki prasyarat berikut:
- Instance Google SecOps
- Akses istimewa ke konsol admin atau tenant Okta
- Hak istimewa pembuatan token API di Okta
Mengonfigurasi daftar IP yang diizinkan
Sebelum membuat feed, Anda harus memasukkan rentang IP Google SecOps ke dalam daftar yang diizinkan di setelan firewall atau jaringan Okta Anda.
Mendapatkan rentang IP Google SecOps
- Ambil rentang IP dari file JSON rentang alamat IP Google.
Menambahkan rentang IP ke Konteks Pengguna Okta
- Login ke Konsol Admin Okta.
- Buka Security > Networks.
- Di bagian Pembatasan Alamat IP, klik Edit.
- Tambahkan setiap rentang IP Google SecOps dalam notasi CIDR ke alamat IP tepercaya.
- Klik Simpan.
Mengonfigurasi akses Okta User Context API
Agar Google SecOps dapat menarik data konteks pengguna, Anda perlu membuat token API dengan izin baca.
Buat token API
- Login ke Konsol Admin Okta.
- Buka Keamanan > API.
- Pilih tab Tokens.
- Klik Create Token.
- Berikan detail konfigurasi berikut:
- Name: Masukkan nama deskriptif (misalnya,
Google SecOps Integration). - Deskripsi (opsional): Masukkan deskripsi.
- Name: Masukkan nama deskriptif (misalnya,
- 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:
- Buka Setelan SIEM > Feed.
- Klik Tambahkan Feed Baru.
- Di halaman berikutnya, klik Konfigurasi satu feed.
- Di kolom Nama feed, masukkan nama untuk feed (misalnya,
Okta User Context). - Pilih Third party API sebagai Source type.
- Pilih Okta User Context sebagai Log type.
- Klik Berikutnya.
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
- Contoh:
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
- Contoh:
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.
Klik Berikutnya.
Tinjau konfigurasi feed baru Anda di layar Selesaikan, lalu klik Kirim.
Setelah penyiapan, feed mulai mengambil log dari instance Konteks Pengguna Okta dalam urutan kronologis.
Endpoint regional
Okta menggunakan endpoint API yang berbeda berdasarkan region organisasi Anda:
| Wilayah | URL Dasar / Nama Host |
|---|---|
| Amerika Serikat (Default) | {org-name}.okta.com |
| Uni Eropa (EMEA) | {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 kecepatan berikut:
- Batas kapasitas 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 kecepatan 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 "created". |
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 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 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 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 nilai kunci dengan kunci "Subsidiary_Company". |
profile.Telephone_Work |
event.idm.entity.entity.user.attribute.labels |
Jika profile.Telephone_Work ada, nilainya 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 ditambahkan sebagai key-value pair 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 key-value pair 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 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 nilai kunci 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 akan ditambahkan sebagai pasangan nilai kunci dengan kunci "lastLogin". |
profile.leaveOfAbsence |
event.idm.entity.entity.user.attribute.labels |
Jika profile.leaveOfAbsence ada, nilainya 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 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 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 urutan 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. |
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.