Workday HCM-Logs erfassen

Unterstützt in:

In diesem Dokument wird erläutert, wie Sie Workday HCM-Logs in Google Security Operations aufnehmen. Dazu richten Sie einen Feed mit der Drittanbieter-API ein.

Der Parser extrahiert Workday HCM-Nutzerdaten aus JSON-formatierten Logs. Er führt verschiedene Datentransformationen durch, darunter das Umbenennen von Feldern, das Zusammenführen verschachtelter Objekte, das Parsen von Datumsangaben und das Ausfüllen von UDM-Feldern für Nutzerattribute, Beschäftigungsdetails und die Organisationsstruktur.

Hinweis

Prüfen Sie, ob folgende Voraussetzungen erfüllt sind:

  • Eine Google SecOps-Instanz
  • Privilegierter Zugriff auf Workday mit der Berechtigung Security Administrator oder einer entsprechenden Berechtigung

Workday API-Authentifizierung konfigurieren

Integrationssystemnutzer (Integration System User, ISU) erstellen

  1. Melden Sie sich mit Administratorberechtigungen in Workday an.
  2. Geben Sie in der Suchleiste Create Integration System User ein und wählen Sie die Aufgabe aus.
  3. Geben Sie einen Nutzernamen ein, z. B. ISU_SecOps_HCM.
  4. Legen Sie ein Passwort fest.
  5. Setzen Sie Session Timeout Minutes auf 0, um zu verhindern, dass die Sitzung des ISU abläuft.
  6. Aktivieren Sie Do Not Allow UI Sessions , um die Sicherheit zu erhöhen, indem Sie UI-Anmeldungen einschränken.
  7. Rufen Sie die Aufgabe Maintain Password Rules auf.
  8. Fügen Sie den Integrationssystemnutzer dem Feld System Users exempt from password expiration hinzu.

Sicherheitsgruppe für die Integration erstellen

  1. Geben Sie in der Suchleiste Create Security Group ein und wählen Sie die Aufgabe aus.
  2. Suchen Sie das Feld Type of Tenanted Security Group und wählen Sie Integration System Security Group (Unconstrained) aus.
  3. Geben Sie einen Namen für die Sicherheitsgruppe ein, z. B. ISG_SecOps_HCM.
  4. Klicken Sie auf OK.
  5. Klicken Sie für die neu erstellte Sicherheitsgruppe auf Edit (Bearbeiten).
  6. Weisen Sie der Sicherheitsgruppe den Integrationssystemnutzer aus dem vorherigen Schritt zu.
  7. Klicken Sie auf Fertig.

Sicherheitsgruppe Zugriff auf die Domain gewähren

Der Google SecOps-Feed ruft Daten von vier Workday REST API-Endpunkten ab. Für jeden Endpunkt müssen der Sicherheitsgruppe für die Integration bestimmte Berechtigungen für die Domain-Sicherheitsrichtlinie gewährt werden.

  1. Geben Sie in der Suchleiste Maintain Permissions for Security Group ein und wählen Sie die Aufgabe aus.
  2. Wählen Sie die von Ihnen erstellte Sicherheitsgruppe aus der Liste Source Security Group aus, z. B. ISG_SecOps_HCM.
  3. Klicken Sie auf OK.
  4. Rufen Sie Domain Security Policy Permissions auf.
  5. Fügen Sie für jede der folgenden Domains den GET -Zugriff hinzu:

    API-Endpunkt Erforderliche Domain-Sicherheitsrichtlinien
    /workers – Liste und Profile der Mitarbeiter Worker Data: Public Worker Reports
    /workers/{id}/timeOffEntries – Urlaubsguthaben Worker Data: Time Off (Time Off Balances), Worker Data: Time Off (Time Off Balances Manager View)
    /workers/{id}/history – Personalverlauf der Mitarbeiter Worker Data: Historical Staffing Information
    /supervisoryOrganizations – Organisationsstruktur Manage: Supervisory Organization oder View: Supervisory Organization
  6. Klicken Sie auf OK.

  7. Klicken Sie auf Fertig , um die Änderungen zu speichern.

Änderungen an der Sicherheitsrichtlinie aktivieren

  1. Geben Sie in der Suchleiste Activate Pending Security Policy Changes ein und wählen Sie die Aufgabe aus.
  2. Geben Sie im Kommentarfeld einen Grund für die Änderung ein, z. B. Granting API access for Google SecOps HCM integration.
  3. Klicken Sie auf OK.
  4. Wählen Sie Confirm aus und klicken Sie dann auf OK.

API-Client für Integrationen registrieren

  1. Geben Sie in der Suchleiste Register API Client for Integrations ein und wählen Sie die Aufgabe aus.
  2. Klicken Sie auf Erstellen.
  3. Geben Sie die folgenden Konfigurationsdetails an:

    • Client Name: Geben Sie einen Namen ein, z. B. Google SecOps HCM Client.
    • System User: Wählen Sie den von Ihnen erstellten Integrationssystemnutzer aus, z. B. ISU_SecOps_HCM.
    • Scope: Wählen Sie die folgenden Bereiche aus:

      Umfang Erforderlich für
      Staffing Endpunkte /workers und /workers/{id}/history
      Time Off and Leave Endpunkt /workers/{id}/timeOffEntries
      Organizations and Roles Endpunkt /supervisoryOrganizations
  4. Klicken Sie auf Speichern.

  5. Klicken Sie auf OK.

  6. Kopieren und speichern Sie sofort die Client-ID und den Clientschlüssel.

OAuth 2.0-Aktualisierungstoken generieren

  1. Geben Sie in der Suchleiste Manage Refresh Tokens for Integrations ein und wählen Sie die Aufgabe aus.
  2. Klicken Sie auf Generate New Refresh Token.
  3. Suchen Sie im Feld Workday Account nach dem Integrationssystemnutzer (z. B. ISU_SecOps_HCM) und wählen Sie ihn aus.
  4. Wählen Sie den von Ihnen erstellten API-Client aus und klicken Sie auf OK.
  5. Kopieren und speichern Sie das Aktualisierungstoken.

API-Endpunkt-URLs abrufen

  1. Geben Sie in der Suchleiste View API Clients ein und wählen Sie die Aufgabe aus.
  2. Suchen Sie unter API Clients for Integrations nach dem von Ihnen erstellten Client, z. B. Google SecOps HCM Client.
  3. Kopieren und speichern Sie die folgenden Details:

    • Token Endpoint: Die URL zum Abrufen eines Zugriffstokens, z. B. https://wd2-impl-services1.workday.com/ccx/oauth2/YOUR_TENANT/token.
    • Workday REST API Endpoint: Die Basis-URL für API-Aufrufe, z. B. https://wd2-impl-services1.workday.com/ccx/api/v1/YOUR_TENANT.

OAuth-Zugriffstoken generieren

  • Verwenden Sie curl oder einen ähnlichen HTTP-Client, um eine POST-Anfrage an den Token-Endpunkt zu senden:

    curl -X POST "https://HOSTNAME/ccx/oauth2/TENANT/token" \
      -d "grant_type=refresh_token" \
      -d "client_id=YOUR_CLIENT_ID" \
      -d "client_secret=YOUR_CLIENT_SECRET" \
      -d "refresh_token=YOUR_REFRESH_TOKEN"
    

Dadurch wird ein Zugriffstoken zurückgegeben, z. B. "access_token": "abcd1234". Kopieren und speichern Sie das Zugriffstoken.

API-Zugriff prüfen

  • Bevor Sie den Feed konfigurieren, prüfen Sie, ob der ISU die erforderlichen Berechtigungen für die wichtigsten Endpunkte hat. Ersetzen Sie die Variablen durch Ihre tatsächlichen Werte:

    TOKEN="your-access-token"
    HOST="your-workday-host"
    TENANT="your-tenant"
    
    # Test 1: Workers (should return worker list)
    curl -s -o /dev/null -w "%{http_code}" \
      -H "Authorization: Bearer $TOKEN" \
      "https://$HOST/ccx/api/v1/$TENANT/workers?limit=1"
    
    # Test 2: Time off entries (replace WORKER_ID with an ID from Test 1)
    curl -s -o /dev/null -w "%{http_code}" \
      -H "Authorization: Bearer $TOKEN" \
      "https://$HOST/ccx/api/v1/$TENANT/workers/WORKER_ID/timeOffEntries"
    
    # Test 3: Worker history (replace WORKER_ID with an ID from Test 1)
    curl -s -o /dev/null -w "%{http_code}" \
      -H "Authorization: Bearer $TOKEN" \
      "https://$HOST/ccx/api/v1/$TENANT/workers/WORKER_ID/history"
    
    # Test 4: Supervisory organizations
    curl -s -o /dev/null -w "%{http_code}" \
      -H "Authorization: Bearer $TOKEN" \
      "https://$HOST/ccx/api/v1/$TENANT/supervisoryOrganizations"
    

Jeder Test sollte den HTTP-Status 200 zurückgeben. Wenn ein Endpunkt 403 zurückgibt, lesen Sie den Abschnitt zur Fehlerbehebung.

Feed in Google SecOps konfigurieren, um Workday HCM-Daten aufzunehmen

Feed einrichten

  1. Rufen Sie die SIEM-Einstellungen > Feeds auf.
  2. Klicken Sie auf Neuen Feed hinzufügen.
  3. Klicken Sie auf der nächsten Seite auf Einzelnen Feed konfigurieren.
  4. Geben Sie im Feld Feedname einen Namen für den Feed ein, z. B. Workday HCM.
  5. Wählen Sie Drittanbieter-API als Quelltyp aus.
  6. Wählen Sie Workday als Logtyp aus.
  7. Klicken Sie auf Weiter.

Feedparameter konfigurieren

  1. Geben Sie Werte für die folgenden Eingabeparameter an:

    • API-Hostname: Der voll qualifizierte Domainname Ihres Workday REST API-Endpunkt, z. B. wd2-impl-services1.workday.com.

    • Mandant: Das letzte Pfadelement Ihres Workday REST API-Endpunkt, das Ihre Workday-Instanz identifiziert.

    • Zugriffstoken: Das OAuth-Zugriffstoken, das im vorherigen Abschnitt generiert wurde.

    Erweiterte Optionen :

    • Asset-Namespace: Der Asset-Namespace.
    • Aufnahmelabels: Das Label, das auf die Ereignisse aus diesem Feed angewendet werden soll.
  2. Klicken Sie auf Weiter.

  3. Prüfen Sie die neue Feedkonfiguration auf dem Bildschirm Abschließen und klicken Sie dann auf Senden.

Fehlerbehebung

403 – Verboten für bestimmte Endpunkte

Wenn der Feed Fehler meldet oder die curl-Befehle zur Überprüfung für bestimmte Endpunkte 403 zurückgeben, fehlen dem Integrationssystemnutzer Berechtigungen.

Fehlerhafter Endpunkt Korrektur
/workers/{id}/timeOffEntries Fügen Sie den GET -Zugriff für die Domains Worker Data: Time Off (Time Off Balances) und Worker Data: Time Off (Time Off Balances Manager View) hinzu. Fügen Sie dem API-Client den Bereich Time Off and Leave hinzu.
/workers/{id}/history Fügen Sie den GET -Zugriff für die Domain Worker Data: Historical Staffing Information hinzu. Prüfen Sie, ob dem API-Client der Bereich Staffing zugewiesen ist.
/supervisoryOrganizations Fügen Sie den GET -Zugriff für die Domain Manage: Supervisory Organization oder View: Supervisory Organization hinzu. Fügen Sie dem API-Client den Bereich Organizations and Roles hinzu.

Nachdem Sie Berechtigungsänderungen vorgenommen haben:

  1. Führen Sie in Workday Activate Pending Security Policy Changes aus.
  2. Wenn Sie dem API-Client neue Bereiche hinzugefügt haben, generieren Sie über Manage Refresh Tokens for Integrations ein neues Aktualisierungstoken und dann ein neues Zugriffstoken.
  3. Aktualisieren Sie die Feedkonfiguration mit dem neuen Zugriffstoken, falls es geändert wurde.

Authentifizierungsfehler

  • 401 – Nicht autorisiert: Das Zugriffstoken ist abgelaufen. Generieren Sie mit dem Aktualisierungstoken ein neues Token und aktualisieren Sie den Feed.
  • Ungültiger Client: Prüfen Sie, ob die Client-ID und der Clientschlüssel korrekt sind.
  • Ungültiges Aktualisierungstoken: Das Aktualisierungstoken wurde möglicherweise widerrufen. Generieren Sie über Manage Refresh Tokens for Integrations ein neues.

UDM-Zuordnungstabelle

Logfeld UDM-Zuordnung Logik
@timestamp metadata.event_timestamp.seconds Als Zeitstempel in Sekunden seit der Epoche geparst
businessTitle entity.entity.user.title Direkt zugeordnet
descriptor entity.entity.user.user_display_name Direkt zugeordnet
Employee_ID entity.entity.user.employee_id Direkt zugeordnet
Employee_ID entity.metadata.product_entity_id Zuordnung, wenn id nicht vorhanden ist
gopher-supervisor.descriptor entity.entity.user.managers.user_display_name Direkt zugeordnet
gopher-supervisor.id entity.entity.user.managers.product_object_id Direkt zugeordnet
gopher-supervisor.primaryWorkEmail entity.entity.user.managers.email_addresses Direkt zugeordnet
gopher-time-off.date entity.entity.user.time_off.interval.start_time Als Datum geparst
gopher-time-off.descriptor entity.entity.user.time_off.description Direkt zugeordnet
Hire_Date entity.entity.user.hire_date Als Datum geparst
id entity.metadata.product_entity_id Direkt zugeordnet, wenn vorhanden
Job_Profile entity.entity.user.title Zuordnung, wenn businessTitle nicht vorhanden ist
Legal_Name_First_Name entity.entity.user.first_name Direkt zugeordnet
Legal_Name_Last_Name entity.entity.user.last_name Direkt zugeordnet
location.descriptor entity.entity.location.city Direkt zugeordnet
primarySupervisoryOrganization.descriptor entity.entity.user.department Direkt zugeordnet
primaryWorkEmail entity.entity.user.email_addresses Direkt zugeordnet
primaryWorkPhone entity.entity.user.phone_numbers Direkt zugeordnet
Termination_Date entity.entity.user.termination_date Als Datum geparst
Work_Email entity.entity.user.email_addresses Zuordnung, wenn primaryWorkEmail nicht vorhanden ist
collection_time metadata.event_timestamp.collected_timestamp Direkt zugeordnet

Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten