Recolha registos do Workday HCM
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
- Inicie sessão no Workday com privilégios administrativos.
- Escreva
Create Integration System User
na barra de pesquisa e selecione a tarefa nos resultados. - Introduza um Nome de utilizador.
- Defina uma palavra-passe.
- Defina Minutos de limite de tempo da sessão como
0
para evitar que o ISU exceda o limite de tempo. - 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.
- Aceda à tarefa Manter regras de palavras-passe.
- 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
- Escreva
Create Security Group
na barra de pesquisa e selecione a tarefa nos resultados. - 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).
- Indique um nome para o grupo de segurança.
- Clique em OK.
- Clique em Editar para o grupo de segurança recém-criado.
- Atribua o utilizador do sistema de integração do passo anterior ao grupo de segurança.
- Clique em Concluído.
Conceda acesso ao domínio ao grupo de segurança no Workday
- Escreva Manter autorizações para o grupo de segurança na barra de pesquisa e selecione a tarefa nos resultados.
- Escolha o grupo de segurança que criou na lista Grupo de segurança de origem para modificar as respetivas autorizações.
- Clique em OK.
- Aceda a Manter autorizações para o grupo de segurança > Autorizações da política de segurança do domínio.
- Atribua as autorizações necessárias para cada domínio, como operações GET.
- Clique em OK.
- Clique em Concluído para guardar as alterações.
Ative as alterações à política de segurança no Workday
- Escreva
Activate Pending Security Policy Changes
na barra de pesquisa e selecione a tarefa nos resultados. - 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.
- Selecione Confirmar no ecrã seguinte para concluir a tarefa e, de seguida, clique em OK.
Configure o cliente da API para integrações
- Na barra de pesquisa, escreva
Register API Client for Integrations
e selecione-o. - Clique em Criar.
- 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.
- Nome do cliente: introduza um nome para o cliente API (por exemplo,
- Selecione Guardar.
- Clique em OK para criar o cliente da API.
- 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
- Na barra de pesquisa do Workday, escreva
Manage Refresh Tokens for Integrations
e selecione-o. - Clique em Gerar novo token de atualização.
- No campo Conta do Workday, pesquise e selecione o utilizador do sistema de integração que criou.
- Selecione o utilizador e clique em OK.
- Copie e guarde o token de atualização apresentado.
Obtenha URLs de pontos finais da API
- Na barra de pesquisa do Workday, escreva
View API Clients
e selecione-o. - Em Clientes API para integrações, localize o
Google SecOps Client
que criou. - 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
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}"
Isto devolve uma chave de acesso (por exemplo,
"access_token": "abcd1234"
)Copie e guarde o token de acesso.
Configure feeds
Para configurar um feed, siga estes passos:
- Aceda a Definições do SIEM > Feeds.
- Clique em Adicionar novo feed.
- Na página seguinte, clique em Configurar um único feed.
- No campo Nome do feed, introduza um nome para o feed (por exemplo,
Workday Logs
). - Selecione API de terceiros como o Tipo de origem.
- Selecione o tipo de registo Workday.
- Clicar em Seguinte.
- 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.
- Clicar em Seguinte.
- 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.