Collect SecureAuth Identity Platform logs
This document explains how to ingest SecureAuth Identity Platform logs to Google Security Operations by using Bindplane. The parser extracts fields from various log formats (SYSLOG, XML, key-value pairs) using grok and xml filters. Then, it maps the extracted fields to the corresponding UDM (Unified Data Model) attributes, enriching the data with security event context and standardizing the output for further analysis.
Before you begin
- Ensure that you have a Google Security Operations instance.
- Ensure that you are using Windows 2016 or later, or a Linux host with systemd.
- If running behind a proxy, ensure firewall ports are open.
- Ensure that you have privileged access to SecureAuth.
Get Google SecOps ingestion authentication file
- Sign in to the Google SecOps console.
- Go to SIEM Settings > Collection Agents.
- Download the Ingestion Authentication File. Save the file securely on the system where Bindplane will be installed.
Get Google SecOps customer ID
- Sign in to the Google SecOps console.
- Go to SIEM Settings > Profile.
- Copy and save the Customer IDfrom the Organization Detailssection.
Install the Bindplane agent
Windows installation
- Open the Command Promptor PowerShellas an administrator.
-  Run the following command: msiexec / i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" / quiet
Linux installation
- Open a terminal with root or sudo privileges.
-  Run the following command: sudo sh -c " $( curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh ) " install_unix.sh
Additional installation resources
- For additional installation options, consult this installation guide .
Configure the Bindplane agent to ingest Syslog and send to Google SecOps
-  Access the configuration file: - Locate the config.yamlfile. Typically, it's in the/etc/bindplane-agent/directory on Linux or in the installation directory on Windows.
- Open the file using a text editor (for example, nano,vi, or Notepad).
 
- Locate the 
-  Edit the config.yamlfile as follows:receivers : udplog : # Replace the port and IP address as required listen_address : "0.0.0.0:514" exporters : chronicle/chronicle_w_labels : compression : gzip # Adjust the path to the credentials file you downloaded in Step 1 creds : '/path/to/ingestion-authentication-file.json' # Replace with your actual customer ID from Step 2 customer_id : < customer_id > endpoint : malachiteingestion-pa.googleapis.com # Add optional ingestion labels for better organization ingestion_labels : log_type : SECUREAUTH_SSO raw_log_field : body service : pipelines : logs/source0__chronicle_w_labels-0 : receivers : - udplog exporters : - chronicle/chronicle_w_labels
-  Replace the port and IP address as required in your infrastructure. 
-  Replace <customer_id>with the actual customer ID.
-  Update /path/to/ingestion-authentication-file.jsonto the path where the authentication file was saved in the Get Google SecOps ingestion authentication file section.
Restart the Bindplane agent to apply the changes
-  To restart the Bindplane agent in Linux, run the following command: sudo systemctl restart bindplane-agent
-  To restart the Bindplane agent in Windows, you can either use the Servicesconsole or enter the following command: net stop BindPlaneAgent && net start BindPlaneAgent
Configure SecureAuth Identity Platform
- Sign in to the SecureAuth Identity console.
- Select Logs.
- Provide the following configuration details in the Log optionssection: -  Log instance ID: enter the log instance ID, the Application Name or the realm name; for example, SecureAuth1.
- Audit logs: select the Syslogcheckbox.
- Error logs: select the Syslogcheckbox.
- Syslog Server: enter the IP Address of your Bindplane agent.
-  Syslog Port: enter the Bindplane agent port number; for example, 514.
- Syslog RFC spec: select RFC 5424.
 
-  Log instance ID: enter the log instance ID, the Application Name or the realm name; for example, 
- Click Save.
UDM Mapping Table
| Log field | UDM mapping | Logic | 
|---|---|---|
|   
action_msg | read_only_udm.target.process.command_line | Value of action_msgfield | 
|   
Appliance | read_only_udm.principal.domain.name | Value of Appliancefield | 
|   
Appliance | read_only_udm.target.administrative_domain | Value of Appliancefield | 
|   
BrowserSession | read_only_udm.network.session_id | Value of BrowserSessionfield | 
|   
cat | read_only_udm.metadata.product_event_type | Value of catfield | 
|   
Category | read_only_udm.metadata.product_event_type | Value of Categoryfield | 
|   
cn1 | security_result.severity | Mapped based on the value of cn1whencn1Labelis 'Priority': 1 - HIGH, 2 - MEDIUM, 3 or 4 - LOW | 
|   
Company | read_only_udm.additional.fields.value.string_value | Value of Companyfield | 
|   
cs1 | read_only_udm.network.session_id | Value of cs1field whencs1Labelis 'BrowserSession' | 
|   
cs3 | read_only_udm.additional.fields.value.string_value | Value of cs3field whencs3Labelis 'CompanyName' | 
|   
dst | read_only_udm.target.ip | Value of dstfield | 
|   
domain | read_only_udm.principal.domain.name | Value of domainfield | 
|   
dvc | read_only_udm.intermediary.ip | Value of dvcfield | 
|   
EventID | read_only_udm.metadata.product_log_id | Value of EventIDfield | 
|   
HostName | read_only_udm.principal.hostname | Value of HostNamefield when grok fails to match IP address | 
|   
HostName | read_only_udm.principal.ip | Value of HostNamefield when grok matches IP address | 
|   
ip | read_only_udm.principal.ip | Value of ipfield | 
|   
Message | read_only_udm.metadata.description | Value of Messagefield | 
|   
Message | security_result.description | Value of Messagefield | 
|   
nat_ip | read_only_udm.principal.nat_ip | Value of nat_ipfield | 
|   
Priority | security_result.severity | Mapped based on the value of Priority: 1 - HIGH, 2 - MEDIUM, 3 or 4 - LOW | 
|   
SAMLConsumerURL | read_only_udm.target.url | Value of SAMLConsumerURLfield | 
|   
sec_msg | security_result.description | Value of sec_msgfield | 
|   
SecureAuthIdPAppliance | read_only_udm.target.administrative_domain | Value of SecureAuthIdPAppliancefield | 
|   
SecureAuthIdPApplianceMachineName | read_only_udm.target.hostname | Value of SecureAuthIdPApplianceMachineNamefield | 
|   
SecureAuthIdPDestinationSiteUrl | read_only_udm.target.url | Value of SecureAuthIdPDestinationSiteUrlfield | 
|   
SecureAuthIdPProductType | read_only_udm.additional.fields.value.string_value | Value of SecureAuthIdPProductTypefield | 
|   
session | read_only_udm.network.session_id | Value of sessionfield | 
|   
spid | read_only_udm.target.process.pid | Value of spidfield | 
|   
src | read_only_udm.principal.ip | Value of srcfield | 
|   
suser | read_only_udm.target.user.userid | Value of suserfield | 
|   
UserAgent | read_only_udm.network.http.user_agent | Value of UserAgentfield | 
|   
UserHostAddress | read_only_udm.principal.nat_ip | Value of UserHostAddressfield | 
|   
UserHostAddress | read_only_udm.target.ip | Value of UserHostAddressfield | 
|   
UserID | read_only_udm.principal.user.userid | Value of UserIDfield | 
|   
Version | read_only_udm.metadata.product_version | Value of Versionfield | 
|  | read_only_udm.additional.fields.key | Hardcoded value - 'CompanyName' | 
|  | read_only_udm.additional.fields.key | Hardcoded value - 'Company' | 
|  | read_only_udm.additional.fields.key | Hardcoded value - 'SecureAuthIdPProductType' | 
|  | read_only_udm.extensions.auth.type | Hardcoded value - 'SSO' | 
|  | read_only_udm.metadata.event_type | 'USER_LOGIN' if SecureAuthIdPAuthGuiMode==0andauth_result==Success, 'USER_CHANGE_PERMISSIONS' ifSecureAuthIdPAuthGuiMode==0andauth_result==WS-Trust success., 'USER_LOGOUT' ifSecureAuthIdPAuthGuiMode==0andauth_result==Session Aborted, 'NETWORK_CONNECTION' ifUserHostAddress!=and `HostName` !=, 'STATUS_UPDATE' ifip!=or `HostName` !=, 'USER_UNCATEGORIZED' ifUserHostAddress!=and `HostName` ==andUserID!= ``, otherwise - 'GENERIC_EVENT' | 
|  | read_only_udm.metadata.log_type | Hardcoded value - 'SECUREAUTH_SSO' | 
|  | read_only_udm.metadata.product_name | Hardcoded value - 'SECUREAUTH_SSO' | 
|  | read_only_udm.metadata.vendor_name | Hardcoded value - 'SECUREAUTH_SSO' | 
|  | read_only_udm.target.user.email_addresses | Value of user_emailfield whennot_emailis false | 
|  | security_result.severity | 'HIGH' if cn1Label==Priorityandcn1==1, 'MEDIUM' ifcn1Label==Priorityandcn1==2, 'LOW' ifcn1Label==Priorityandcn1in [3,4], 'HIGH' ifPriority==1, 'MEDIUM' ifPriority==2, 'LOW' ifPriorityin [3,4] | 
Need more help? Get answers from Community members and Google SecOps professionals.

