Raccogliere i log di Workday HCM
Questo documento spiega come importare i log di Workday in Google Security Operations utilizzando l'API. Il parser estrae i dati utente di Workday HCM dai log in formato JSON. Gestisce varie trasformazioni dei dati, tra cui la ridenominazione dei campi, l'unione di oggetti nidificati, l'analisi delle date e il completamento dei campi UDM per gli attributi utente, i dettagli sull'occupazione e la struttura organizzativa. Inoltre, include la gestione degli errori per JSON con formato non corretto e campi critici mancanti.
Prima di iniziare
- Assicurati di avere un'istanza Google SecOps.
- Assicurati di disporre dell'accesso privilegiato a Workday.
Configurare l'autenticazione dell'API Workday
Creare un utente di sistema di integrazione (ISU) in Workday
- Accedi a Workday con privilegi amministrativi.
- Digita
Create Integration System User
nella barra di ricerca e seleziona l'attività dai risultati. - Inserisci un nome utente.
- Imposta una password.
- Imposta Minuti di timeout sessione su
0
per evitare il timeout dell'ISU. - Attiva Non consentire sessioni dell'interfaccia utente per migliorare la sicurezza limitando gli accessi all'interfaccia utente.
- Vai all'attività Gestire le regole delle password.
- Aggiungi l'utente del sistema di integrazione al campo Utenti di sistema esenti dalla scadenza della password.
Creare un gruppo di sicurezza di integrazione in Workday
- Digita
Create Security Group
nella barra di ricerca e seleziona l'attività dai risultati. - Individua il campo Tipo di gruppo di sicurezza basato su tenant e seleziona Gruppo di sicurezza del sistema di integrazione (senza vincoli).
- Specifica un nome per il gruppo di sicurezza.
- Fai clic su OK.
- Fai clic su Modifica per il gruppo di sicurezza appena creato.
- Assegna l'utente del sistema di integrazione del passaggio precedente al gruppo di sicurezza.
- Fai clic su Fine.
Concedi l'accesso al dominio al gruppo di sicurezza in Workday
- Digita Gestisci le autorizzazioni per il gruppo di sicurezza nella barra di ricerca e seleziona l'attività dai risultati.
- Scegli il gruppo di sicurezza che hai creato dall'elenco Gruppo di sicurezza dell'origine per modificarne le autorizzazioni.
- Fai clic su OK.
- Vai a Gestisci le autorizzazioni per il gruppo di sicurezza > Autorizzazioni dei criteri di sicurezza del dominio.
- Assegna le autorizzazioni necessarie per ogni dominio, ad esempio le operazioni GET.
- Fai clic su OK.
- Fai clic su Fine per salvare le modifiche.
Attivare le modifiche ai criteri di sicurezza in Workday
- Digita
Activate Pending Security Policy Changes
nella barra di ricerca e seleziona l'attività dai risultati. - Avvia l'attività Attiva modifiche alle norme sulla sicurezza in attesa inserendo un motivo per il controllo nel campo dei commenti, quindi fai clic su OK.
- Completa l'attività nella schermata successiva selezionando Conferma, quindi fai clic su Ok.
Configurare il client API per le integrazioni
- Nella barra di ricerca, digita
Register API Client for Integrations
e selezionalo. - Fai clic su Crea.
- Fornisci i seguenti dettagli di configurazione:
- Nome client: inserisci un nome per il client API (ad esempio
Google SecOps Client
). - Utente di sistema: seleziona l'utente di sistema di integrazione che hai creato nel passaggio precedente.
- Ambito: seleziona l'API HCM o l'ambito pertinente che include i dati dei lavoratori e altre aree a cui accedi.
- Nome client: inserisci un nome per il client API (ad esempio
- Seleziona Salva.
- Fai clic su OK per creare il client API.
- Dopo aver creato il client API, salva il client secret. Non verrà più mostrato dopo la tua uscita dalla pagina.
Generare token di aggiornamento OAuth 2.0
- Nella barra di ricerca di Workday, digita
Manage Refresh Tokens for Integrations
e selezionalo. - Fai clic su Genera nuovo token di aggiornamento.
- Nel campo Account Workday, cerca e seleziona l'utente del sistema di integrazione che hai creato.
- Seleziona l'utente e fai clic su OK.
- Copia e salva il token di aggiornamento visualizzato.
Ottenere gli URL degli endpoint API
- Nella barra di ricerca di Workday, digita
View API Clients
e selezionalo. - In Client API per le integrazioni, individua il
Google SecOps Client
che hai creato. - Copia e salva i seguenti dettagli:
- Endpoint token: l'URL a cui invierai una richiesta per ottenere un token di accesso.
- Endpoint API REST Workday: l'URL che utilizzerai per configurare l'integrazione con Google SecOps.
Genera token di accesso OAuth
Utilizza curl o un client HTTP simile per inviare una richiesta POST all'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}"
Verrà restituito un token di accesso (ad esempio
"access_token": "abcd1234"
).Copia e salva il token di accesso.
Configura un feed in Google SecOps per importare i log di Workday
- Vai a Impostazioni SIEM > Feed.
- Fai clic su Aggiungi nuovo.
- Nel campo Nome feed, inserisci un nome per il feed (ad esempio
Workday Logs
). - Seleziona API di terze parti come Tipo di origine.
- Seleziona il tipo di log Workday.
- Fai clic su Avanti.
- Specifica i valori per i seguenti parametri di input:
- Nome host dell'API: l'URL dell'endpoint dell'API REST di Workday.
- Tenant: l'ultimo elemento del percorso dell'endpoint dell'API Workday che identifica l'istanza.
- Token di accesso: token di accesso OAuth.
- Spazio dei nomi dell'asset: lo spazio dei nomi dell'asset.
- Etichette di importazione: l'etichetta applicata agli eventi di questo feed.
- Fai clic su Avanti.
- Controlla la configurazione del feed nella schermata Concludi e poi fai clic su Invia.
Tabella di mappatura UDM
Campo log | Mappatura UDM | Logica |
---|---|---|
@timestamp |
read_only_udm.metadata.event_timestamp.seconds |
Il campo @timestamp del log non elaborato viene rinominato in timestamp e analizzato come timestamp in secondi dall'epoca. |
businessTitle |
read_only_udm.entity.entity.user.title |
Mappato direttamente dal campo businessTitle nel log non elaborato. |
descriptor |
read_only_udm.entity.entity.user.user_display_name |
Mappato direttamente dal campo descriptor nel log non elaborato. |
Employee_ID |
read_only_udm.entity.entity.user.employee_id |
Mappato direttamente dal campo Employee_ID nel log non elaborato. |
Employee_ID |
read_only_udm.entity.metadata.product_entity_id |
Mappato direttamente dal campo Employee_ID nel log non elaborato quando id non è presente. |
gopher-supervisor.descriptor |
read_only_udm.entity.entity.user.managers.user_display_name |
Mappato direttamente dal campo gopher-supervisor.descriptor nel log non elaborato, rinominato in empmanager.user_display_name e poi unito a managers . |
gopher-supervisor.id |
read_only_udm.entity.entity.user.managers.product_object_id |
Mappato direttamente dal campo gopher-supervisor.id nel log non elaborato, rinominato in empmanager.product_object_id e poi unito a managers . |
gopher-supervisor.primaryWorkEmail |
read_only_udm.entity.entity.user.managers.email_addresses |
Mappato direttamente dal campo gopher-supervisor.primaryWorkEmail nel log non elaborato e poi unito a managers . |
gopher-time-off.date |
read_only_udm.entity.entity.user.time_off.interval.start_time |
Analizzata come data dal campo gopher-time-off.date all'interno dell'array gopher-time-off nel log non elaborato. |
gopher-time-off.descriptor |
read_only_udm.entity.entity.user.time_off.description |
Mappato direttamente dal campo gopher-time-off.descriptor all'interno dell'array gopher-time-off nel log non elaborato. |
Hire_Date |
read_only_udm.entity.entity.user.hire_date |
Analizzata come data dal campo Hire_Date nel log non elaborato. |
id |
read_only_udm.entity.metadata.product_entity_id |
Se presente, viene mappato direttamente dal campo id nel log non elaborato. |
Job_Profile |
read_only_udm.entity.entity.user.title |
Mappato direttamente dal campo Job_Profile nel log non elaborato quando businessTitle non è presente. |
Legal_Name_First_Name |
read_only_udm.entity.entity.user.first_name |
Mappato direttamente dal campo Legal_Name_First_Name nel log non elaborato. |
Legal_Name_Last_Name |
read_only_udm.entity.entity.user.last_name |
Mappato direttamente dal campo Legal_Name_Last_Name nel log non elaborato. |
location.descriptor |
read_only_udm.entity.entity.location.city |
Mappato direttamente dal campo location.descriptor nel log non elaborato, rinominato in _location.city e poi in entity.entity.location.city . |
primarySupervisoryOrganization.descriptor |
read_only_udm.entity.entity.user.department |
Mappato direttamente dal campo primarySupervisoryOrganization.descriptor nel log non elaborato. |
primaryWorkEmail |
read_only_udm.entity.entity.user.email_addresses |
Mappato direttamente dal campo primaryWorkEmail nel log non elaborato. |
primaryWorkPhone |
read_only_udm.entity.entity.user.phone_numbers |
Mappato direttamente dal campo primaryWorkPhone nel log non elaborato. |
Termination_Date |
read_only_udm.entity.entity.user.termination_date |
Analizzata come data dal campo Termination_Date nel log non elaborato. |
Work_Email |
read_only_udm.entity.entity.user.email_addresses |
Mappato direttamente dal campo Work_Email nel log non elaborato quando primaryWorkEmail non è presente. |
collection_time |
read_only_udm.metadata.event_timestamp.collected_timestamp |
collection_time del log è mappato a collected_timestamp . |
Modifiche
2024-06-25
Miglioramento:
- È stato aggiunto il supporto per l'evento UDM
- È stato aggiunto un pattern Grok a
href"
per estrarre il campoentity_host_name
entity_host_name
mappato aentity.entity.asset.hostname
href
mappato aentity.entity.url
2024-06-24
Miglioramento:
- È stato aggiunto il supporto per i log CSV
2022-09-15
- Migrazione al parser predefinito
2022-05-11
- Migrazione al parser predefinito
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.