CARVIEW |
Securing Splunk Enterprise
- Secure and protect your Splunk Enterprise deployment network
- Install Splunk Enterprise securely
- Create secure administrator credentials
- About TLS encryption and cipher suites
- Harden the Splunk Enterprise installation directory on Windows
- Secure Splunk Enterprise on your network
- Disable unnecessary Splunk Enterprise components
- Secure Splunk Enterprise service accounts
- Deploy secure passwords across multiple servers
- Harden the network port that App Key Value Store uses
- Use network access control lists to protect your deployment
- Use access control to secure Splunk data
- About user authentication
- About configuring role-based user access
- Define roles on the Splunk platform with capabilities
- Create and manage users with Splunk Web
- Create and manage roles with Splunk Web
- Find existing users and roles
- Secure access for Splunk knowledge objects
- Password best practices for administrators
- Configure Splunk password policies
- Configure a Splunk Enterprise password policy using the Authentication.conf configuration file
- Password best practices for users
- Unlock a user account
- Change a user password
- Manage out-of-sync passwords in a search head cluster
- Set up user authentication with LDAP
- Manage Splunk user roles with LDAP
- LDAP prerequisites and considerations
- Secure LDAP authentication with transport layer security (TLS) certificates
- How the Splunk platform works with multiple LDAP servers for authentication
- Configure LDAP with Splunk Web
- Map LDAP groups to Splunk roles in Splunk Web
- Configure single sign-on with SAML
- Configure SSO with PingIdentity as your SAML identity provider
- Configure SSO with Okta as your identity provider
- Configure SSO with Microsoft Azure AD or AD FS as your Identity Provider
- Configure SSO with OneLogin as your identity provider
- Configure SSO with Optimal as your identity provider
- Configure SSO in Computer Associates (CA) SiteMinder
- Secure SSO with TLS certificates on Splunk Enterprise
- Configure Ping Identity with leaf or intermediate SSL certificate chains
- Configure SAML SSO for other IdPs
- Configure authentication extensions to interface with your SAML identity provider
- Configure advanced settings for SSO
- Map groups on a SAML identity provider to Splunk roles
- Modify or remove role mappings
- Refresh expiring SAML identity provider certificates
- Troubleshoot SAML SSO
- About multifactor authentication with Duo Security
- Configure Splunk Enterprise to use Duo Security multifactor authentication
- Configure Duo multifactor authentication for Splunk Enterprise in the configuration file
- Migrate from the Duo Traditional Prompt to the Duo Universal Prompt
- About multifactor authentication with RSA Authentication Manager
- Configure RSA authentication from Splunk Web
- Configure Splunk Enterprise to use RSA Authentication Manager multifactor authentication via the REST endpoint
- Configure Splunk Enterprise to use RSA Authentication Manager multifactor authentication in the configuration file
- User experience when logging into a Splunk instance configured with RSA multifactor authentication
- Introduction to securing the Splunk platform with TLS
- Steps for securing your Splunk Enterprise deployment with TLS
- How to obtain certificates from a third-party for inter-Splunk communication
- How to obtain certificates from a third-party for Splunk Web
- How to create and sign your own TLS certificates
- How to prepare TLS certificates for use with the Splunk platform
- Configure Splunk indexing and forwarding to use TLS certificates
- Configure TLS certificates for inter-Splunk communication
- Configure Splunk Web to use TLS certificates
- Test and troubleshoot TLS connections
- Renew existing TLS certificates
- Configure TLS certificate host name validation for secured connections between Splunk software components
- Configure TLS protocol version support for secure connections between Splunk platform instances
- Configure and install certificates in Splunk Enterprise for Splunk Log Observer Connect
- Configure secure communications between Splunk instances with updated cipher suite and message authentication code
- Securing distributed search heads and peers
- Secure deployment servers and clients using certificate authentication
- Configure communication and bundle download authentication for deployment servers and clients
- Secure Splunk Enterprise services with pass4SymmKey
- Protect PII, PHI, and other sensitive data with field filters
- Plan for field filters in your organization
- Turn on Splunk platform field filters
- Create field filters using Splunk Web
- Optimize field filter performance using Splunk Web
- Exempt certain roles from field filters using Splunk Web
- Create field filters using configuration files
- Optimize field filter performance using configuration files
- Use field filters in searches
- Turn off Splunk platform field filters
- Authentication error while running python script w...
- How to create synthetic monitoring selenium script...
- How to setup python script for Remedy WSDL authent...
- Scripted SecurID/Radius authentication (next token...
- how to obfuscate some text inside a python lookup ...
- Script that Writes Splunk Query Based on Alerts' R...
- How to Execute a Python Script via a Button and Di...
- Issue using Auth Token within a bash script
- cutom alert action python script
- Creating Tokens in Splunk via GUI- How to troubles...
Create the authentication script
To integrate your authentication system with your Splunk deployment, make sure the authentication system is running and then do the following:
1. Create a Python authentication script. See "Create a Python script" in this topic for the procedure.
2. Test the new script. See "Test the script" in this topic for the procedure.
3. Enable your script by editing authentication.conf to specify scripted authentication and associated settings. See "Edit authentication.conf" for the procedure.
Splunk Cloud Platform doesn't support scripted authentication.
Create a Python script
You must create a Python script that implements these authentication functions:
- userLogin
- getUserInfo
- getUsers
The Splunk server will call these functions as necessary, either to authenticate user login or to obtain information on a user's roles.
The script can optionally also include a handler for this function:
- getSearchFilter
This table summarizes the authentication functions, their arguments, and their return values:
Function | Description | Argument string | Return value string |
---|---|---|---|
userLogin
|
Login with user credentials. | --username=<username>
(values passed one per line over |
fail
(safely passed over |
getUserInfo
|
Return a user's information, including name and role(s). | --username=<username>
|
--status=success|fail --userInfo=<userId>;<username>;<realname>;<roles> Note the following:
|
getUsers
|
Return information for all Splunk users. | none | --status=success|fail --userInfo=<userId>;<username>;<realname>;<roles> --userInfo=<userId>;<username>;<realname>;<roles> --userInfo=<userId>;<username>;<realname>;<roles> ... Note the following:
|
getSearchFilter
|
Optional. Returns the filters applied specifically to this user, along with those applied to the user's roles. The filters are OR'd together. | --username=<username>
|
--status=success|fail --search_filter=<filter> --search_filter=<filter> ... Note: User-based search filters are optional and not recommended. A better approach is to assign search filters to roles and then assign users to the appropriate roles. For more information, see "Use the getSearchFilter function to filter at search time" |
See the example scripts for detailed information on how to implement these functions.
Test the script
Since the communication between your Splunk deployment and the script occurs via stdin
and stdout
, you can test the script interactively in your command shell. Be sure to send one argument per line and end each function call with an EOF (Ctrl-D).
Test each function individually, using this pattern:
> python [script] [function name] [pass arguments here, one per line] [send eof, with Ctrl-D] [output appears here, check that it's correct] >
The following example shows a debugging session that does some simple testing of a fictional script called "example.py", with two users "alice" and "bob". "alice" is a member of the "admin" and "super" roles, and "bob" is a member of the "user" role.
> python example.py userLogin --username=alice --password=correctpassword <send an EOF> --status=success > python example.py userLogin --username=bob --password=wrongpassword <send an EOF> --status=fail > python example.py getUsers <no arguments for this function, send an EOF> --status=success --userInfo=bob;bob;bob;user --userInfo=alice;alice;alice;admin:super > python example.py getUserInfo --username=bob <send an EOF> --status=success --userInfo=bob;bob;bob;user > python example.py getUserInfo --username=userdoesnotexist <send an EOF> --status=fail >
Important: This is just an example of how to go about testing a script. It does not attempt to perform exhaustive debugging of any real script.
Set up user authentication with external systems | Connect your authentication system with Splunk Enterprise using the authentication.conf configuration file |
This documentation applies to the following versions of Splunk® Enterprise: 7.0.0, 7.0.1, 7.0.2, 7.0.3, 7.0.4, 7.0.5, 7.0.6, 7.0.7, 7.0.8, 7.0.9, 7.0.10, 7.0.11, 7.0.13, 7.1.0, 7.1.1, 7.1.2, 7.1.3, 7.1.4, 7.1.5, 7.1.6, 7.1.7, 7.1.8, 7.1.9, 7.1.10, 7.2.0, 7.2.1, 7.2.2, 7.2.3, 7.2.4, 7.2.5, 7.2.6, 7.2.7, 7.2.8, 7.2.9, 7.2.10, 7.3.0, 7.3.1, 7.3.2, 7.3.3, 7.3.4, 7.3.5, 7.3.6, 7.3.7, 7.3.8, 7.3.9, 8.0.0, 8.0.1, 8.0.2, 8.0.3, 8.0.4, 8.0.5, 8.0.6, 8.0.7, 8.0.8, 8.0.9, 8.0.10, 8.1.0, 8.1.1, 8.1.2, 8.1.3, 8.1.4, 8.1.5, 8.1.6, 8.1.7, 8.1.8, 8.1.9, 8.1.10, 8.1.11, 8.1.12, 8.1.13, 8.1.14, 8.2.0, 8.2.1, 8.2.2, 8.2.3, 8.2.4, 8.2.5, 8.2.6, 8.2.7, 8.2.8, 8.2.9, 8.2.10, 8.2.11, 8.2.12, 9.0.0, 9.0.1, 9.0.2, 9.0.3, 9.0.4, 9.0.5, 9.0.6, 9.0.7, 9.0.8, 9.0.9, 9.0.10, 9.1.0, 9.1.1, 9.1.2, 9.1.3, 9.1.4, 9.1.5, 9.1.6, 9.1.7, 9.1.8, 9.1.9, 9.2.0, 9.2.1, 9.2.2, 9.2.3, 9.2.4, 9.2.5, 9.2.6, 9.3.0, 9.3.1, 9.3.2, 9.3.3, 9.3.4, 9.4.0, 9.4.1, 9.4.2
Comments
Create the authentication script
You must be logged into splunk.com in order to post comments. Log in now.
Please try to keep this discussion focused on the content covered in this documentation topic. If you have a more general question about Splunk functionality or are experiencing a difficulty with Splunk, consider posting a question to Splunkbase Answers.
Your Comment Has Been Posted Above
Feedback submitted, thanks!