Raccogliere i log di Workday HCM

Supportato in:

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 popolamento dei campi UDM per gli attributi utente, i dettagli sull'impiego e la struttura organizzativa. Inoltre, include la gestione degli errori per JSON non validi e campi critici mancanti.

Prima di iniziare

Assicurati di soddisfare i seguenti prerequisiti:

  • Istanza Google SecOps.
  • Accesso privilegiato a Workday.

Configurare l'autenticazione API di Workday

Crea un utente di sistema di integrazione (ISU) in Workday

  1. Accedi a Workday con privilegi amministrativi.
  2. Digita Create Integration System User nella barra di ricerca e seleziona l'attività dai risultati.
  3. Inserisci un nome utente.
  4. Imposta una password.
  5. Imposta Timeout sessione (minuti) su 0 per evitare che l'ISU vada in timeout.
  6. Abilita Non consentire sessioni UI per migliorare la sicurezza limitando gli accessi all'interfaccia utente.
  7. Vai all'attività Gestisci regole password.
  8. Aggiungi l'utente di sistema di integrazione al campo Utenti di sistema esenti dalla scadenza della password.

Creare un gruppo di sicurezza per l'integrazione in Workday

  1. Digita Create Security Group nella barra di ricerca e seleziona l'attività dai risultati.
  2. Individua il campo Tipo di gruppo di sicurezza multi-tenant e seleziona Gruppo di sicurezza del sistema di integrazione (senza vincoli).
  3. Fornisci un nome per il gruppo di sicurezza.
  4. Fai clic su OK.
  5. Fai clic su Modifica per il gruppo di sicurezza appena creato.
  6. Assegna l'utente di sistema di integrazione del passaggio precedente al gruppo di sicurezza.
  7. Fai clic su Fine.

Concedere l'accesso al dominio al gruppo di sicurezza in Workday

  1. Digita Maintain Permissions for Security Group (Mantieni autorizzazioni per il gruppo di sicurezza) nella barra di ricerca e seleziona l'attività dai risultati.
  2. Scegli il gruppo di sicurezza che hai creato dall'elenco Gruppo di sicurezza di origine per modificarne le autorizzazioni.
  3. Fai clic su OK.
  4. Vai a Maintain Permissions for Security Group > Domain Security Policy Permissions.
  5. Assegna le autorizzazioni necessarie per ogni dominio, ad esempio le operazioni GET.
  6. Fai clic su OK.
  7. Fai clic su Fine per salvare le modifiche.

Attiva le modifiche ai criteri di sicurezza in Workday

  1. Digita Activate Pending Security Policy Changes nella barra di ricerca e seleziona l'attività dai risultati.
  2. Avvia l'attività Attiva modifiche ai criteri di sicurezza in attesa inserendo un motivo per l'audit nel campo dei commenti, quindi fai clic su Ok.
  3. Completa l'attività nella schermata successiva selezionando Conferma, poi fai clic su Ok.

Configura il client API per le integrazioni

  1. Nella barra di ricerca, digita Register API Client for Integrations e selezionalo.
  2. Fai clic su Crea.
  3. 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 dipendenti e altre aree a cui accedi.
  4. Seleziona Salva.
  5. Fai clic su Ok per creare il client API.
  6. Dopo aver creato il client API, salva il client secret. Non verrà più visualizzato dopo che avrai chiuso la pagina.

Genera token di aggiornamento OAuth 2.0

  1. Nella barra di ricerca di Workday, digita Manage Refresh Tokens for Integrations e selezionalo.
  2. Fai clic su Genera nuovo token di aggiornamento.
  3. Nel campo Account Workday, cerca e seleziona l'utente del sistema di integrazione che hai creato.
  4. Seleziona l'utente e fai clic su Ok.
  5. Copia e salva il token di aggiornamento visualizzato.

Recuperare gli URL degli endpoint API

  1. Nella barra di ricerca di Workday, digita View API Clients e selezionalo.
  2. In Client API per le integrazioni, individua Google SecOps Client che hai creato.
  3. 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

  1. 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}"
    
  2. Verrà restituito un token di accesso (ad esempio, "access_token": "abcd1234")

  3. Copia e salva il token di accesso.

Configurare i feed

Esistono due diversi punti di accesso per configurare i feed nella piattaforma Google SecOps:

  • Impostazioni SIEM > Feed
  • Hub dei contenuti > Pacchetti di contenuti

Configura i feed da Impostazioni SIEM > Feed

Per configurare un feed:

  1. Vai a Impostazioni SIEM > Feed.
  2. Fai clic su Aggiungi nuovo feed.
  3. Nella pagina successiva, fai clic su Configura un singolo feed.
  4. Nel campo Nome feed, inserisci un nome per il feed (ad esempio, Workday Logs).
  5. Seleziona API di terze parti come Tipo di origine.
  6. Seleziona il tipo di log Workday.
  7. Fai clic su Avanti.
  8. Specifica i valori per i seguenti parametri di input:
    • Nome host API: l'URL dell'endpoint dell'API REST di Workday.
    • Tenant: l'ultimo elemento del percorso dell'endpoint API Workday che identifica la tua istanza.
    • Token di accesso: token di accesso OAuth.
  9. Fai clic su Avanti.
  10. Controlla la configurazione del feed nella schermata Finalizza e poi fai clic su Invia.

Configurare i feed dall'hub dei contenuti

Specifica i valori per i seguenti campi:

  • Nome host API: il nome di dominio completo dell'endpoint API REST di Workday.
  • Tenant: l'ultimo elemento del percorso dell'endpoint API Workday che identifica la tua istanza.
  • Token di accesso: token di accesso OAuth.

Opzioni avanzate

  • Nome feed: un valore precompilato che identifica il feed.
  • Tipo di origine: metodo utilizzato per raccogliere i log in Google SecOps.
  • Spazio dei nomi dell'asset: lo spazio dei nomi associato al feed.
  • Etichette di importazione: etichette applicate a tutti gli eventi di questo feed.

Tabella di mappatura UDM

Campo log Mappatura UDM Logic
@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 Analizzato 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 Analizzato come data dal campo Hire_Date nel log non elaborato.
id read_only_udm.entity.metadata.product_entity_id Mappato direttamente dal campo id nel log non elaborato, se presente.
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 Analizzato 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.

Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.