Recolha registos do Workday HCM

Compatível com:

Este documento explica como carregar registos do Workday para o Google Security Operations através da API. O analisador extrai dados de utilizadores do Workday HCM de registos formatados em JSON. Processa várias transformações de dados, incluindo a mudança do nome dos campos, a união de objetos aninhados, a análise de datas e o preenchimento de campos da UDM para atributos do utilizador, detalhes de emprego e estrutura organizacional. Além disso, inclui o processamento de erros para JSON com formato incorreto e campos críticos em falta.

Antes de começar

Certifique-se de que tem os seguintes pré-requisitos:

  • Instância do Google SecOps.
  • Acesso privilegiado ao Workday.

Configure a autenticação da API Workday

Crie um utilizador do sistema de integração (ISU) no Workday

  1. Inicie sessão no Workday com privilégios administrativos.
  2. Escreva Create Integration System User na barra de pesquisa e selecione a tarefa nos resultados.
  3. Introduza um Nome de utilizador.
  4. Defina uma palavra-passe.
  5. Defina Minutos de limite de tempo da sessão como 0 para evitar que o ISU exceda o limite de tempo.
  6. Ative a opção Não permitir sessões da IU para melhorar a segurança restringindo os inícios de sessão da IU.
  7. Aceda à tarefa Manter regras de palavras-passe.
  8. Adicione o utilizador do sistema de integração ao campo Utilizadores do sistema isentos de expiração da palavra-passe.

Crie um grupo de segurança de integração no Workday

  1. Escreva Create Security Group na barra de pesquisa e selecione a tarefa nos resultados.
  2. Localize o campo Tipo de grupo de segurança com vários proprietários e selecione Grupo de segurança do sistema de integração (sem restrições).
  3. Indique um nome para o grupo de segurança.
  4. Clique em OK.
  5. Clique em Editar para o grupo de segurança recém-criado.
  6. Atribua o utilizador do sistema de integração do passo anterior ao grupo de segurança.
  7. Clique em Concluído.

Conceda acesso ao domínio ao grupo de segurança no Workday

  1. Escreva Manter autorizações para o grupo de segurança na barra de pesquisa e selecione a tarefa nos resultados.
  2. Escolha o grupo de segurança que criou na lista Grupo de segurança de origem para modificar as respetivas autorizações.
  3. Clique em OK.
  4. Aceda a Manter autorizações para o grupo de segurança > Autorizações da política de segurança do domínio.
  5. Atribua as autorizações necessárias para cada domínio, como operações GET.
  6. Clique em OK.
  7. Clique em Concluído para guardar as alterações.

Ative as alterações à política de segurança no Workday

  1. Escreva Activate Pending Security Policy Changes na barra de pesquisa e selecione a tarefa nos resultados.
  2. Inicie a tarefa Ativar alterações pendentes da política de segurança introduzindo um motivo para a sua auditoria no campo de comentários e, de seguida, clique em OK.
  3. Selecione Confirmar no ecrã seguinte para concluir a tarefa e, de seguida, clique em OK.

Configure o cliente da API para integrações

  1. Na barra de pesquisa, escreva Register API Client for Integrations e selecione-o.
  2. Clique em Criar.
  3. Indique os seguintes detalhes de configuração:
    • Nome do cliente: introduza um nome para o cliente API (por exemplo, Google SecOps Client).
    • Utilizador do sistema: selecione o Utilizador do sistema de integração que criou no passo anterior.
    • Âmbito: selecione a API HCM ou o âmbito relevante que inclui os dados dos trabalhadores e outras áreas às quais está a aceder.
  4. Selecione Guardar.
  5. Clique em OK para criar o cliente da API.
  6. Depois de criar o cliente da API, guarde o segredo do cliente. Não é apresentado novamente depois de sair da página.

Gere um token de atualização do OAuth 2.0

  1. Na barra de pesquisa do Workday, escreva Manage Refresh Tokens for Integrations e selecione-o.
  2. Clique em Gerar novo token de atualização.
  3. No campo Conta do Workday, pesquise e selecione o utilizador do sistema de integração que criou.
  4. Selecione o utilizador e clique em OK.
  5. Copie e guarde o token de atualização apresentado.

Obtenha URLs de pontos finais da API

  1. Na barra de pesquisa do Workday, escreva View API Clients e selecione-o.
  2. Em Clientes API para integrações, localize o Google SecOps Client que criou.
  3. Copie e guarde os seguintes detalhes:
    • Ponto final do token: o URL para o qual vai enviar um pedido para obter um token de acesso.
    • Ponto final da API REST do Workday: o URL que vai usar para configurar a integração com o Google SecOps.

Gere uma chave de acesso OAuth

  1. Use o curl ou um cliente HTTP semelhante para enviar um pedido POST para o ponto final do 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. Isto devolve uma chave de acesso (por exemplo, "access_token": "abcd1234")

  3. Copie e guarde o token de acesso.

Configure feeds

Para configurar um feed, siga estes passos:

  1. Aceda a Definições do SIEM > Feeds.
  2. Clique em Adicionar novo feed.
  3. Na página seguinte, clique em Configurar um único feed.
  4. No campo Nome do feed, introduza um nome para o feed (por exemplo, Workday Logs).
  5. Selecione API de terceiros como o Tipo de origem.
  6. Selecione o tipo de registo Workday.
  7. Clicar em Seguinte.
  8. Especifique valores para os seguintes parâmetros de entrada:
    • Nome de anfitrião da API: o URL do ponto final da API REST do Workday.
    • Inquilino: o último elemento do caminho do seu ponto final da API Workday que identifica a sua instância.
    • Chave de acesso: chave de acesso OAuth.
  9. Clicar em Seguinte.
  10. Reveja a configuração do feed no ecrã Finalizar e, de seguida, clique em Enviar.

Tabela de mapeamento da UDM

Campo de registo Mapeamento de UDM Lógica
@timestamp read_only_udm.metadata.event_timestamp.seconds O campo @timestamp do registo não processado é mudado para timestamp e analisado como uma data/hora em segundos desde epoch.
businessTitle read_only_udm.entity.entity.user.title Mapeado diretamente a partir do campo businessTitle no registo não processado.
descriptor read_only_udm.entity.entity.user.user_display_name Mapeado diretamente a partir do campo descriptor no registo não processado.
Employee_ID read_only_udm.entity.entity.user.employee_id Mapeado diretamente a partir do campo Employee_ID no registo não processado.
Employee_ID read_only_udm.entity.metadata.product_entity_id Mapeado diretamente a partir do campo Employee_ID no registo não processado quando id não está presente.
gopher-supervisor.descriptor read_only_udm.entity.entity.user.managers.user_display_name Mapeado diretamente a partir do campo gopher-supervisor.descriptor no registo não processado, mudado o nome para empmanager.user_display_name e, em seguida, unido em managers.
gopher-supervisor.id read_only_udm.entity.entity.user.managers.product_object_id Mapeado diretamente a partir do campo gopher-supervisor.id no registo não processado, mudado o nome para empmanager.product_object_id e, em seguida, unido em managers.
gopher-supervisor.primaryWorkEmail read_only_udm.entity.entity.user.managers.email_addresses Mapeado diretamente a partir do campo gopher-supervisor.primaryWorkEmail no registo não processado e, em seguida, unido em managers.
gopher-time-off.date read_only_udm.entity.entity.user.time_off.interval.start_time Analisado como uma data do campo gopher-time-off.date na matriz gopher-time-off no registo não processado.
gopher-time-off.descriptor read_only_udm.entity.entity.user.time_off.description Mapeado diretamente a partir do campo gopher-time-off.descriptor na matriz gopher-time-off no registo não processado.
Hire_Date read_only_udm.entity.entity.user.hire_date Analisado como uma data do campo Hire_Date no registo não processado.
id read_only_udm.entity.metadata.product_entity_id Mapeado diretamente a partir do campo id no registo não processado, quando presente.
Job_Profile read_only_udm.entity.entity.user.title Mapeado diretamente a partir do campo Job_Profile no registo não processado quando businessTitle não está presente.
Legal_Name_First_Name read_only_udm.entity.entity.user.first_name Mapeado diretamente a partir do campo Legal_Name_First_Name no registo não processado.
Legal_Name_Last_Name read_only_udm.entity.entity.user.last_name Mapeado diretamente a partir do campo Legal_Name_Last_Name no registo não processado.
location.descriptor read_only_udm.entity.entity.location.city Mapeado diretamente a partir do campo location.descriptor no registo não processado, mudado o nome para _location.city e, em seguida, para entity.entity.location.city.
primarySupervisoryOrganization.descriptor read_only_udm.entity.entity.user.department Mapeado diretamente a partir do campo primarySupervisoryOrganization.descriptor no registo não processado.
primaryWorkEmail read_only_udm.entity.entity.user.email_addresses Mapeado diretamente a partir do campo primaryWorkEmail no registo não processado.
primaryWorkPhone read_only_udm.entity.entity.user.phone_numbers Mapeado diretamente a partir do campo primaryWorkPhone no registo não processado.
Termination_Date read_only_udm.entity.entity.user.termination_date Analisado como uma data do campo Termination_Date no registo não processado.
Work_Email read_only_udm.entity.entity.user.email_addresses Mapeado diretamente a partir do campo Work_Email no registo não processado quando primaryWorkEmail não está presente.
collection_time read_only_udm.metadata.event_timestamp.collected_timestamp O collection_time do registo está mapeado para collected_timestamp.

Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais da Google SecOps.