Workday HCM-Logs erfassen
In diesem Dokument wird erläutert, wie Sie Workday-Logs über die API in Google Security Operations aufnehmen. Der Parser extrahiert Workday HCM-Nutzerdaten aus JSON-formatierten Logs. Es werden verschiedene Datentransformationen durchgeführt, darunter das Umbenennen von Feldern, das Zusammenführen verschachtelter Objekte, das Parsen von Datumsangaben und das Einfügen von UDM-Feldern für Nutzerattribute, Beschäftigungsdetails und die Organisationsstruktur. Außerdem enthält sie die Fehlerbehandlung für fehlerhaftes JSON und fehlende kritische Felder.
Hinweise
Prüfen Sie, ob die folgenden Voraussetzungen erfüllt sind:
- Google SecOps-Instanz.
- Privilegierter Zugriff auf Workday.
Workday-API-Authentifizierung konfigurieren
Integrationssystemnutzer (Integration System User, ISU) in Workday erstellen
- Melden Sie sich mit Administratorberechtigungen in Workday an.
- Geben Sie
Create Integration System User
in die Suchleiste ein und wählen Sie die Aufgabe aus den Ergebnissen aus. - Geben Sie einen Nutzernamen ein.
- Legen Sie ein Passwort fest.
- Legen Sie Session Timeout Minutes (Zeitüberschreitung für Sitzungen in Minuten) auf
0
fest, um zu verhindern, dass die ISU eine Zeitüberschreitung auslöst. - Aktivieren Sie UI-Sitzungen nicht zulassen, um die Sicherheit zu erhöhen, indem Sie UI-Anmeldungen einschränken.
- Rufen Sie die Aufgabe Passwortregeln verwalten auf.
- Fügen Sie den Integrationssystemnutzer dem Feld Systemnutzer, die nicht vom Ablauf des Passworts betroffen sind hinzu.
Sicherheitsgruppe für die Integration in Workday erstellen
- Geben Sie
Create Security Group
in die Suchleiste ein und wählen Sie die Aufgabe aus den Ergebnissen aus. - Suchen Sie das Feld Type of Tenanted Security Group (Typ der Mandantensicherheitsgruppe) und wählen Sie Integration System Security Group (Unconstrained) (Sicherheitsgruppe für Integrationssystem (uneingeschränkt)) aus.
- Geben Sie einen Namen für die Sicherheitsgruppe an.
- Klicken Sie auf OK.
- Klicken Sie bei der neu erstellten Sicherheitsgruppe auf Bearbeiten.
- Weisen Sie der Sicherheitsgruppe den Integrationssystemnutzer aus dem vorherigen Schritt zu.
- Klicken Sie auf Fertig.
Domainzugriff auf Sicherheitsgruppe in Workday gewähren
- Geben Sie Maintain Permissions for Security Group (Berechtigungen für Sicherheitsgruppe verwalten) in die Suchleiste ein und wählen Sie die Aufgabe aus den Ergebnissen aus.
- Wählen Sie die von Ihnen erstellte Sicherheitsgruppe in der Liste Quellsicherheitsgruppe aus, um ihre Berechtigungen zu ändern.
- Klicken Sie auf OK.
- Gehen Sie zu Berechtigungen für Sicherheitsgruppe beibehalten > Berechtigungen für die Domänensicherheitsrichtlinie.
- Weisen Sie jeder Domain die erforderlichen Berechtigungen zu, z. B. für GET-Vorgänge.
- Klicken Sie auf OK.
- Klicken Sie auf Fertig, um die Änderungen zu speichern.
Änderungen an Sicherheitsrichtlinien in Workday aktivieren
- Geben Sie
Activate Pending Security Policy Changes
in die Suchleiste ein und wählen Sie die Aufgabe aus den Ergebnissen aus. - Starten Sie die Aufgabe Ausstehende Änderungen an der Sicherheitsrichtlinie aktivieren, indem Sie im Kommentarfeld einen Grund für die Überprüfung eingeben und dann auf OK klicken.
- Wählen Sie auf dem nächsten Bildschirm Bestätigen aus und klicken Sie dann auf OK.
API-Client für Integrationen konfigurieren
- Geben Sie in die Suchleiste
Register API Client for Integrations
ein und wählen Sie die Option aus. - Klicken Sie auf Erstellen.
- Geben Sie die folgenden Konfigurationsdetails an:
- Client Name (Clientname): Geben Sie einen Namen für den API-Client ein (z. B.
Google SecOps Client
). - Systemnutzer: Wählen Sie den Integrationssystemnutzer aus, den Sie im vorherigen Schritt erstellt haben.
- Umfang: Wählen Sie die HCM API oder den relevanten Umfang aus, der die Mitarbeiterdaten und andere Bereiche umfasst, auf die Sie zugreifen.
- Client Name (Clientname): Geben Sie einen Namen für den API-Client ein (z. B.
- Klicken Sie auf Speichern.
- Klicken Sie auf OK, um den API-Client zu erstellen.
- Nachdem Sie den API-Client erstellt haben, speichern Sie den Clientschlüssel. Nachdem Sie die Seite verlassen haben, wird sie nicht noch einmal angezeigt.
OAuth 2.0-Aktualisierungstoken generieren
- Geben Sie in die Workday-Suchleiste
Manage Refresh Tokens for Integrations
ein und wählen Sie die Option aus. - Klicken Sie auf Generate New Refresh Token (Neues Aktualisierungstoken generieren).
- Suchen Sie im Feld Workday-Konto nach dem von Ihnen erstellten Integrationssystemnutzer und wählen Sie ihn aus.
- Wählen Sie den Nutzer aus und klicken Sie auf OK.
- Kopieren und speichern Sie das angezeigte Aktualisierungstoken.
API-Endpunkt-URLs abrufen
- Geben Sie in die Workday-Suchleiste
View API Clients
ein und wählen Sie die Option aus. - Suchen Sie unter API-Clients für Integrationen nach dem
Google SecOps Client
, das Sie erstellt haben. - Kopieren und speichern Sie die folgenden Details:
- Token-Endpunkt: Die URL, an die Sie eine Anfrage senden, um ein Zugriffstoken zu erhalten.
- Workday REST API Endpoint (Workday REST API-Endpunkt): Die URL, die Sie zum Konfigurieren der Integration mit Google SecOps verwenden.
OAuth-Zugriffstoken generieren
Senden Sie mit curl oder einem ähnlichen HTTP-Client eine POST-Anfrage an den Token-Endpunkt:
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}"
Dadurch wird ein Zugriffstoken zurückgegeben (z. B.
"access_token": "abcd1234"
).Kopieren und speichern Sie das Zugriffstoken.
Feeds einrichten
Es gibt zwei verschiedene Einstiegspunkte zum Einrichten von Feeds in der Google SecOps-Plattform:
- SIEM-Einstellungen > Feeds
- Content Hub> Content-Pakete
Feeds über „SIEM-Einstellungen“ > „Feeds“ einrichten
So konfigurieren Sie einen Feed:
- Rufen Sie die SIEM-Einstellungen > Feeds auf.
- Klicken Sie auf Neuen Feed hinzufügen.
- Klicken Sie auf der nächsten Seite auf Einen einzelnen Feed konfigurieren.
- Geben Sie im Feld Feed name einen Namen für den Feed ein, z. B.
Workday Logs
. - Wählen Sie Drittanbieter-API als Quelltyp aus.
- Wählen Sie den Logtyp Workday aus.
- Klicken Sie auf Weiter.
- Geben Sie Werte für die folgenden Eingabeparameter an:
- API-Hostname: Die URL Ihres Workday REST API-Endpunkts.
- Mandant: Das letzte Pfadelement Ihres Workday-API-Endpunkt, das Ihre Instanz identifiziert.
- Zugriffstoken: OAuth-Zugriffstoken.
- Klicken Sie auf Weiter.
- Prüfen Sie die Feedkonfiguration auf dem Bildschirm Finalize (Abschließen) und klicken Sie dann auf Submit (Senden).
Feeds über den Content Hub einrichten
Geben Sie Werte für die folgenden Felder an:
- API-Hostname: Der FQDN Ihres Workday REST API-Endpunkt.
- Mandant: Das letzte Pfadelement Ihres Workday-API-Endpunkt, das Ihre Instanz identifiziert.
- Zugriffstoken: OAuth-Zugriffstoken.
Erweiterte Optionen
- Feedname: Ein vorausgefüllter Wert, der den Feed identifiziert.
- Quelltyp: Methode, die zum Erfassen von Logs in Google SecOps verwendet wird.
- Asset-Namespace: Der Namespace, der dem Feed zugeordnet ist.
- Aufnahmelabels: Labels, die auf alle Ereignisse aus diesem Feed angewendet werden.
UDM-Zuordnungstabelle
Logfeld | UDM-Zuordnung | Logik |
---|---|---|
@timestamp |
read_only_udm.metadata.event_timestamp.seconds |
Das Feld @timestamp des Rohlogs wird in timestamp umbenannt und als Zeitstempel in Sekunden seit der Epoche geparst. |
businessTitle |
read_only_udm.entity.entity.user.title |
Direkt aus dem Feld businessTitle im Rohlog zugeordnet. |
descriptor |
read_only_udm.entity.entity.user.user_display_name |
Direkt aus dem Feld descriptor im Rohlog zugeordnet. |
Employee_ID |
read_only_udm.entity.entity.user.employee_id |
Direkt aus dem Feld Employee_ID im Rohlog zugeordnet. |
Employee_ID |
read_only_udm.entity.metadata.product_entity_id |
Direkt aus dem Feld Employee_ID im Rohlog zugeordnet, wenn id nicht vorhanden ist. |
gopher-supervisor.descriptor |
read_only_udm.entity.entity.user.managers.user_display_name |
Direkt aus dem Feld gopher-supervisor.descriptor im Rohlog zugeordnet, in empmanager.user_display_name umbenannt und dann in managers zusammengeführt. |
gopher-supervisor.id |
read_only_udm.entity.entity.user.managers.product_object_id |
Direkt aus dem Feld gopher-supervisor.id im Rohlog zugeordnet, in empmanager.product_object_id umbenannt und dann in managers zusammengeführt. |
gopher-supervisor.primaryWorkEmail |
read_only_udm.entity.entity.user.managers.email_addresses |
Direkt aus dem Feld gopher-supervisor.primaryWorkEmail im Rohlog zugeordnet und dann in managers zusammengeführt. |
gopher-time-off.date |
read_only_udm.entity.entity.user.time_off.interval.start_time |
Wird als Datum aus dem Feld gopher-time-off.date im Array gopher-time-off im Rohlog geparst. |
gopher-time-off.descriptor |
read_only_udm.entity.entity.user.time_off.description |
Direkt aus dem Feld gopher-time-off.descriptor im Array gopher-time-off im Rohlog zugeordnet. |
Hire_Date |
read_only_udm.entity.entity.user.hire_date |
Wird als Datum aus dem Feld Hire_Date im Rohlog geparst. |
id |
read_only_udm.entity.metadata.product_entity_id |
Direkt aus dem Feld id im Rohlog abgeleitet, sofern vorhanden. |
Job_Profile |
read_only_udm.entity.entity.user.title |
Direkt aus dem Feld Job_Profile im Rohlog zugeordnet, wenn businessTitle nicht vorhanden ist. |
Legal_Name_First_Name |
read_only_udm.entity.entity.user.first_name |
Direkt aus dem Feld Legal_Name_First_Name im Rohlog zugeordnet. |
Legal_Name_Last_Name |
read_only_udm.entity.entity.user.last_name |
Direkt aus dem Feld Legal_Name_Last_Name im Rohlog zugeordnet. |
location.descriptor |
read_only_udm.entity.entity.location.city |
Direkt aus dem Feld location.descriptor im Rohlog zugeordnet, in _location.city und dann in entity.entity.location.city umbenannt. |
primarySupervisoryOrganization.descriptor |
read_only_udm.entity.entity.user.department |
Direkt aus dem Feld primarySupervisoryOrganization.descriptor im Rohlog zugeordnet. |
primaryWorkEmail |
read_only_udm.entity.entity.user.email_addresses |
Direkt aus dem Feld primaryWorkEmail im Rohlog zugeordnet. |
primaryWorkPhone |
read_only_udm.entity.entity.user.phone_numbers |
Direkt aus dem Feld primaryWorkPhone im Rohlog zugeordnet. |
Termination_Date |
read_only_udm.entity.entity.user.termination_date |
Wird als Datum aus dem Feld Termination_Date im Rohlog geparst. |
Work_Email |
read_only_udm.entity.entity.user.email_addresses |
Direkt aus dem Feld Work_Email im Rohlog zugeordnet, wenn primaryWorkEmail nicht vorhanden ist. |
collection_time |
read_only_udm.metadata.event_timestamp.collected_timestamp |
Die collection_time des Logs wird collected_timestamp zugeordnet. |
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten