Recopila registros de Workday HCM

Compatible con:

En este documento, se explica cómo transferir registros de Workday a Google Security Operations con la API. El analizador extrae los datos de los usuarios de HCM de Workday de los registros con formato JSON. Maneja varias transformaciones de datos, como el cambio de nombre de los campos, la combinación de objetos anidados, el análisis de fechas y la propagación de campos del UDM para los atributos del usuario, los detalles de empleo y la estructura organizativa. Además, incluye el manejo de errores para el JSON con formato incorrecto y los campos críticos faltantes.

Antes de comenzar

Asegúrate de cumplir con los siguientes requisitos previos:

  • Instancia de Google SecOps.
  • Acceso con privilegios a Workday

Configura la autenticación de la API de Workday

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

  1. Accede a 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. Ingresa un Nombre de usuario.
  4. Establece una contraseña.
  5. Establece Session Timeout Minutes en 0 para evitar que se agote el tiempo de espera de ISU.
  6. Habilita No permitir sesiones de IU para mejorar la seguridad restringiendo los accesos a la IU.
  7. Ve a la tarea Maintain Password Rules.
  8. Agrega el usuario del sistema de integración al campo Usuarios del sistema exentos del vencimiento de la contraseña.

Crea 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. Ubica el campo Type of Tenanted Security Group y selecciona Integration System Security Group (Unconstrained).
  3. Proporciona un Nombre para el grupo de seguridad.
  4. Haz clic en Aceptar.
  5. Haz clic en Editar en el grupo de seguridad recién creado.
  6. Asigna el usuario del sistema de integración del paso anterior al grupo de seguridad.
  7. Haz clic en Listo.

Otorga acceso al dominio al grupo de seguridad en Workday

  1. Escribe Maintain Permissions for Security Group en la barra de búsqueda y selecciona la tarea en los resultados.
  2. Elige el grupo de seguridad que creaste en la lista Grupo de seguridad de origen para modificar sus permisos.
  3. Haz clic en Aceptar.
  4. Ve a Maintain Permissions for Security Group > Domain Security Policy Permissions.
  5. Asigna los permisos necesarios para cada dominio, como las operaciones GET.
  6. Haz clic en Aceptar.
  7. Haz clic en Listo para guardar los cambios.

Activa los cambios en la política 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. Para iniciar la tarea Activate Pending Security Policy Changes, ingresa un motivo para tu auditoría en el campo de comentarios y, luego, haz clic en Aceptar.
  3. En la siguiente pantalla, selecciona Confirmar y, luego, haz clic en Aceptar para completar la tarea.

Configura 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. Proporciona los siguientes detalles de configuración:
    • Client Name: Ingresa 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 creaste en el paso anterior.
    • Alcance: Selecciona la API de HCM o el alcance pertinente que incluya los datos del trabajador y otras áreas a las que accedas.
  4. Selecciona Guardar.
  5. Haz clic en Aceptar para crear el cliente de API.
  6. Después de crear el cliente de API, guarda el secreto del cliente. No se volverá a mostrar después de que salgas de la página.

Genera un 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 Generate New Refresh Token.
  3. En el campo Cuenta de Workday, busca y selecciona el Usuario del sistema de integración que creaste.
  4. Selecciona el usuario y haz clic en Aceptar.
  5. Copia y guarda el token de actualización que se muestra.

Obtén URLs de extremos de API

  1. En la barra de búsqueda de Workday, escribe View API Clients y selecciónalo.
  2. En API Clients for Integrations, busca el Google SecOps Client que creaste.
  3. Copia y guarda los siguientes detalles:
    • Extremo del token: Es la URL a la que enviarás una solicitud para obtener un token de acceso.
    • Extremo de la API de REST de Workday: La URL que usarás para configurar la integración con Google SecOps.

Genera un token de acceso de OAuth

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

  3. Copia y guarda el token de acceso.

Configura feeds

Existen dos puntos de entrada diferentes para configurar feeds en la plataforma de Google SecOps:

  • Configuración de SIEM > Feeds
  • Centro de contenido > Paquetes de contenido

Configura feeds en Configuración del SIEM > Feeds

Para configurar un feed, sigue estos pasos:

  1. Ve a Configuración del SIEM > Feeds.
  2. Haz clic en Agregar feed nuevo.
  3. En la siguiente página, haz clic en Configurar un solo feed.
  4. En el campo Nombre del feed, ingresa un nombre para el feed (por ejemplo, Workday Logs).
  5. Selecciona API de terceros como el Tipo de origen.
  6. Selecciona el tipo de registro Workday.
  7. Haz clic en Siguiente.
  8. Especifica valores para los siguientes parámetros de entrada:
    • Nombre de host de la API: Es la URL de tu extremo de la API de REST de Workday.
    • Tenant: Es el último elemento de la ruta de extremo de API de Workday que identifica tu instancia.
    • Token de acceso: Es el token de acceso de OAuth.
  9. Haz clic en Siguiente.
  10. Revisa la configuración del feed en la pantalla Finalizar y, luego, haz clic en Enviar.

Configura feeds desde el Centro de contenido

Especifica valores para los siguientes campos:

  • Nombre de host de la API: Es el FQDN de tu extremo de API de REST de Workday.
  • Tenant: Es el último elemento de la ruta de acceso de tu extremo de la API de Workday que identifica tu instancia.
  • Token de acceso: Es el token de acceso de OAuth.

Opciones avanzadas

  • Nombre del feed: Es un valor completado previamente que identifica el feed.
  • Tipo de fuente: Es el método que se usa para recopilar registros en Google SecOps.
  • Espacio de nombres del activo: Es el espacio de nombres asociado con el feed.
  • Etiquetas de transferencia: Son las etiquetas que se aplican a todos los eventos de este feed.

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 la época.
businessTitle read_only_udm.entity.entity.user.title Se asigna directamente desde el campo businessTitle en el registro sin procesar.
descriptor read_only_udm.entity.entity.user.user_display_name Se asigna directamente desde el campo descriptor en el registro sin procesar.
Employee_ID read_only_udm.entity.entity.user.employee_id Se asigna directamente desde el campo Employee_ID en el registro sin procesar.
Employee_ID read_only_udm.entity.metadata.product_entity_id Se asigna directamente desde el campo Employee_ID en el 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 en el registro sin procesar, se cambia el nombre a empmanager.user_display_name y, luego, se combina en managers.
gopher-supervisor.id read_only_udm.entity.entity.user.managers.product_object_id Se asigna directamente desde el campo gopher-supervisor.id en el registro sin procesar, se cambia el nombre a empmanager.product_object_id y, luego, se combina en managers.
gopher-supervisor.primaryWorkEmail read_only_udm.entity.entity.user.managers.email_addresses Se asigna directamente desde el campo gopher-supervisor.primaryWorkEmail en el registro sin procesar y, luego, se combina en 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 dentro del array gopher-time-off en el 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 dentro del array gopher-time-off en el registro sin procesar.
Hire_Date read_only_udm.entity.entity.user.hire_date Se analiza como una fecha del campo Hire_Date en el registro sin procesar.
id read_only_udm.entity.metadata.product_entity_id Se asigna directamente desde el campo id en el registro sin procesar cuando está presente.
Job_Profile read_only_udm.entity.entity.user.title Se asigna directamente desde el campo Job_Profile en el 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 en el 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 en el registro sin procesar.
location.descriptor read_only_udm.entity.entity.location.city Se asigna directamente desde el campo location.descriptor en el registro sin procesar, se cambia el nombre a _location.city y, luego, a entity.entity.location.city.
primarySupervisoryOrganization.descriptor read_only_udm.entity.entity.user.department Se asigna directamente desde el campo primarySupervisoryOrganization.descriptor en el registro sin procesar.
primaryWorkEmail read_only_udm.entity.entity.user.email_addresses Se asigna directamente desde el campo primaryWorkEmail en el registro sin procesar.
primaryWorkPhone read_only_udm.entity.entity.user.phone_numbers Se asigna directamente desde el campo primaryWorkPhone en el registro sin procesar.
Termination_Date read_only_udm.entity.entity.user.termination_date Se analiza como una fecha del campo Termination_Date en el registro sin procesar.
Work_Email read_only_udm.entity.entity.user.email_addresses Se asigna directamente desde el campo Work_Email en el 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? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.