Recoger registros de Workday HCM

Disponible en:

En este documento se explica cómo ingerir registros de Workday en Google Security Operations mediante la API. El analizador extrae datos de usuario de Workday HCM de registros en formato JSON. Gestiona varias transformaciones de datos, como cambiar el nombre de los campos, combinar objetos anidados, analizar fechas y rellenar campos de UDM para atributos de usuario, detalles de empleo y estructura organizativa. Además, incluye el control de errores para JSON con formato incorrecto y campos críticos que faltan.

Antes de empezar

Asegúrate de que cumples los siguientes requisitos previos:

  • Instancia de Google SecOps.
  • Acceso privilegiado a Workday.

Configurar la autenticación de la API de Workday

Crear un usuario del sistema de integración (ISU) en Workday

  1. Inicia sesión en Workday con privilegios de administrador.
  2. Escribe Create Integration System User en la barra de búsqueda y selecciona la tarea en los resultados.
  3. Introduce un nombre de usuario.
  4. Define una contraseña.
  5. Define Minutos de tiempo de espera de la sesión como 0 para evitar que se agote el tiempo de espera de la interfaz de usuario de configuración.
  6. Habilita la opción No permitir sesiones de interfaz de usuario para mejorar la seguridad restringiendo los inicios de sesión en la interfaz de usuario.
  7. Ve a la tarea Mantener reglas de contraseñas.
  8. Añade el usuario del sistema de integración al campo Usuarios del sistema exentos de la caducidad de la contraseña.

Crear un grupo de seguridad de integración en Workday

  1. Escribe Create Security Group en la barra de búsqueda y selecciona la tarea en los resultados.
  2. Busca el campo Tipo de grupo de seguridad de arrendatario y selecciona Grupo de seguridad del sistema de integración (sin restricciones).
  3. Indica un nombre para el grupo de seguridad.
  4. Haz clic en Aceptar.
  5. Haga clic en Editar en el grupo de seguridad que acaba de crear.
  6. Asigna el usuario del sistema de integración del paso anterior al grupo de seguridad.
  7. Haz clic en Listo.

Conceder acceso al dominio a un grupo de seguridad en Workday

  1. Escribe Maintain Permissions for Security Group (Mantener permisos de grupo de seguridad) en la barra de búsqueda y selecciona la tarea en los resultados.
  2. En la lista Grupo de seguridad de origen, elige el grupo de seguridad que has creado para modificar sus permisos.
  3. Haz clic en Aceptar.
  4. Ve a Maintain Permissions for Security Group (Mantener permisos de grupo de seguridad) > Domain Security Policy Permissions (Permisos de política de seguridad de dominio).
  5. Asigna los permisos necesarios a cada dominio, como las operaciones GET.
  6. Haz clic en Aceptar.
  7. Haz clic en Hecho para guardar los cambios.

Activar los cambios en las políticas de seguridad en Workday

  1. Escribe Activate Pending Security Policy Changes en la barra de búsqueda y selecciona la tarea en los resultados.
  2. Inicia la tarea Activar cambios pendientes en la política de seguridad. Para ello, escribe un motivo para tu auditoría en el campo de comentarios y, a continuación, haz clic en Aceptar.
  3. En la pantalla siguiente, selecciona Confirmar y, a continuación, haz clic en Aceptar.

Configurar el cliente de API para las integraciones

  1. En la barra de búsqueda, escribe Register API Client for Integrations y selecciónalo.
  2. Haz clic en Crear.
  3. Proporcione los siguientes detalles de configuración:
    • Nombre del cliente: introduce un nombre para el cliente de la API (por ejemplo, Google SecOps Client).
    • Usuario del sistema: selecciona el Usuario del sistema de integración que has creado en el paso anterior.
    • Ámbito: selecciona la API HCM o el ámbito pertinente que incluya los datos de los trabajadores y otras áreas a las que accedas.
  4. Selecciona Guardar.
  5. Haz clic en Aceptar para crear el cliente de la API.
  6. Después de crear el cliente de la API, guarda el secreto de cliente. No se volverá a mostrar después de que salgas de la página.

Generar token de actualización de OAuth 2.0

  1. En la barra de búsqueda de Workday, escribe Manage Refresh Tokens for Integrations y selecciónalo.
  2. Haz clic en Generar nuevo token de actualización.
  3. En el campo Workday Account (Cuenta de Workday), busca y selecciona el Integration System User (Usuario del sistema de integración) que has creado.
  4. Selecciona el usuario y haz clic en Aceptar.
  5. Copia y guarda el token de actualización que se muestra.

Obtener URLs de endpoints de API

  1. En la barra de búsqueda de Workday, escribe View API Clients y selecciónalo.
  2. En Clientes de API para integraciones, busque el Google SecOps Client que haya creado.
  3. Copia y guarda los siguientes detalles:
    • Endpoint de token: la URL a la que enviarás una solicitud para obtener un token de acceso.
    • Endpoint de la API REST de Workday: la URL que usarás para configurar la integración con Google SecOps.

Generar token de acceso de OAuth

  1. Usa curl o un cliente HTTP similar para enviar una solicitud POST al endpoint de 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. Se devolverá un token de acceso (por ejemplo, "access_token": "abcd1234").

  3. Copia y guarda el token de acceso.

Configurar feeds

Para configurar un feed, sigue estos pasos:

  1. Ve a Configuración de SIEM > Feeds.
  2. Haz clic en Añadir feed.
  3. En la página siguiente, haga clic en Configurar un solo feed.
  4. En el campo Nombre del feed, introduce un nombre para el feed (por ejemplo, Workday Logs).
  5. Seleccione API de terceros como Tipo de fuente.
  6. Selecciona el tipo de registro Workday.
  7. Haz clic en Siguiente.
  8. Especifique valores para los siguientes parámetros de entrada:
    • Nombre de host de la API: la URL de su endpoint de la API REST de Workday.
    • Cliente: el último elemento de la ruta de acceso de tu endpoint de la API de Workday que identifica tu instancia.
    • Token de acceso: token de acceso de OAuth.
  9. Haz clic en Siguiente.
  10. Revise la configuración del feed en la pantalla Finalizar y, a continuación, haga clic en Enviar.

Tabla de asignación de UDM

Campo de registro Asignación de UDM Lógica
@timestamp read_only_udm.metadata.event_timestamp.seconds El campo @timestamp del registro sin procesar se cambia a timestamp y se analiza como una marca de tiempo en segundos desde el inicio del registro de tiempo.
businessTitle read_only_udm.entity.entity.user.title Se asigna directamente desde el campo businessTitle del registro sin procesar.
descriptor read_only_udm.entity.entity.user.user_display_name Se asigna directamente desde el campo descriptor del registro sin procesar.
Employee_ID read_only_udm.entity.entity.user.employee_id Se asigna directamente desde el campo Employee_ID del registro sin procesar.
Employee_ID read_only_udm.entity.metadata.product_entity_id Se asigna directamente desde el campo Employee_ID del registro sin procesar cuando no está presente id.
gopher-supervisor.descriptor read_only_udm.entity.entity.user.managers.user_display_name Se asigna directamente desde el campo gopher-supervisor.descriptor del registro sin procesar, se le cambia el nombre a empmanager.user_display_name y, a continuación, se combina con managers.
gopher-supervisor.id read_only_udm.entity.entity.user.managers.product_object_id Se asigna directamente desde el campo gopher-supervisor.id del registro sin procesar, se le cambia el nombre a empmanager.product_object_id y, a continuación, se combina con managers.
gopher-supervisor.primaryWorkEmail read_only_udm.entity.entity.user.managers.email_addresses Se asigna directamente desde el campo gopher-supervisor.primaryWorkEmail del registro sin procesar y, a continuación, se combina con managers.
gopher-time-off.date read_only_udm.entity.entity.user.time_off.interval.start_time Se analiza como una fecha del campo gopher-time-off.date de la matriz gopher-time-off del registro sin procesar.
gopher-time-off.descriptor read_only_udm.entity.entity.user.time_off.description Se asigna directamente desde el campo gopher-time-off.descriptor de la matriz gopher-time-off del registro sin procesar.
Hire_Date read_only_udm.entity.entity.user.hire_date Se analiza como una fecha del campo Hire_Date del registro sin procesar.
id read_only_udm.entity.metadata.product_entity_id Se asigna directamente desde el campo id del registro sin procesar cuando está presente.
Job_Profile read_only_udm.entity.entity.user.title Se asigna directamente desde el campo Job_Profile del registro sin procesar cuando no está presente businessTitle.
Legal_Name_First_Name read_only_udm.entity.entity.user.first_name Se asigna directamente desde el campo Legal_Name_First_Name del registro sin procesar.
Legal_Name_Last_Name read_only_udm.entity.entity.user.last_name Se asigna directamente desde el campo Legal_Name_Last_Name del registro sin procesar.
location.descriptor read_only_udm.entity.entity.location.city Se asigna directamente desde el campo location.descriptor del registro sin procesar, se le cambia el nombre a _location.city y, después, a entity.entity.location.city.
primarySupervisoryOrganization.descriptor read_only_udm.entity.entity.user.department Se asigna directamente desde el campo primarySupervisoryOrganization.descriptor del registro sin procesar.
primaryWorkEmail read_only_udm.entity.entity.user.email_addresses Se asigna directamente desde el campo primaryWorkEmail del registro sin procesar.
primaryWorkPhone read_only_udm.entity.entity.user.phone_numbers Se asigna directamente desde el campo primaryWorkPhone del registro sin procesar.
Termination_Date read_only_udm.entity.entity.user.termination_date Se analiza como una fecha del campo Termination_Date del registro sin procesar.
Work_Email read_only_udm.entity.entity.user.email_addresses Se asigna directamente desde el campo Work_Email del registro sin procesar cuando no está presente primaryWorkEmail.
collection_time read_only_udm.metadata.event_timestamp.collected_timestamp El collection_time del registro se asigna a collected_timestamp.

¿Necesitas más ayuda? Recibe respuestas de los miembros de la comunidad y de los profesionales de Google SecOps.