# Version 9.2.2.20240415 # # This file contains possible settings and values for configuring # authentication via authentication.conf. # # There is an authentication.conf file in $SPLUNK_HOME/etc/system/default/. To # set custom configurations, place an authentication.conf in # $SPLUNK_HOME/etc/system/local/. For examples, see # authentication.conf.example. You must restart the Splunk platform to enable # configurations. # # To learn more about configuration files, including precedence, see # http://docs.splunk.com/Documentation/Splunk/latest/Admin/Aboutconfigurationfiles. # GLOBAL SETTINGS # Use the [default] stanza to define any global settings. # * You can also define global settings outside of any stanza, at the top # of the file. # * Each .conf file should have at most one default stanza. If there are # multiple default stanzas, settings are combined. In the case of # multiple definitions of the same setting, the last definition in the # file wins. # * If a setting is defined at both the global level and in a specific # stanza, the value in the specific stanza takes precedence. [authentication] * Follow this stanza name with any number of the following setting/value pairs. authType = [Splunk|LDAP|Scripted|SAML|ProxySSO] * Specify which authentication system to use. * Supported values: Splunk, LDAP, Scripted, SAML, ProxySSO. * Default: Splunk authTypePreferredForUserCollision = [Splunk|SAML] * The authentication scheme to use when the Splunk platform detects * username collision between native authentication and SAML users. * A value of "Splunk" means the Splunk platform assumes native authentication user roles when the SAML username matches a native authentication user. * A value of "SAML" means the Splunk platform assigns roles mapped from SAML groups and ignores roles from native authentication users. * Default: Splunk authSettings = ,,... * Key to look up the specific configurations of chosen authentication system. * is the name of a stanza header that specifies settings for scripted authentication, SAML, ProxySSO and for an LDAP strategy. Those stanzas are defined below. * For LDAP, specify the LDAP strategy name(s) here. If you want Splunk software to query multiple LDAP servers, provide a comma-separated list of all strategies. Each strategy must be defined in its own stanza. The order in which you specify the strategy names is the order Splunk software uses to query their servers when looking for a user. * For scripted authentication, should be a single stanza name. passwordHashAlgorithm = [SHA512-crypt|SHA256-crypt|SHA512-crypt-|SHA256-crypt-|MD5-crypt] * This controls how hashed passwords are stored in the $SPLUNK_HOME/etc/passwd file for the default "Splunk" authType. * "MD5-crypt" is an algorithm originally developed for FreeBSD in the early 1990s, which became a widely used standard among UNIX machines. Splunk Enterprise also used it through the 5.0.x releases. MD5-crypt runs the salted password through a sequence of 1000 MD5 operations. * "SHA256-crypt" and "SHA512-crypt" are newer versions that use 5000 rounds of the Secure Hash Algorithm-256 (SHA256) or SHA512 hash functions. This is slower than MD5-crypt and therefore more resistant to dictionary attacks. SHA512-crypt is used for system passwords on many versions of Linux. * These SHA-based algorithm can optionally be followed by a number of rounds to use. For example, "SHA512-crypt-10000" uses twice as many rounds of hashing as the default implementation. The number of rounds must be at least 1000. If you specify a very large number of rounds (i.e. more than 20x the default value of 5000), splunkd might become unresponsive and connections to splunkd (from Splunk Web or CLI) time out. * This setting only affects new password settings (either when a user is added or a user's password is changed). Existing passwords work but retain their previous hashing algorithm. * Default: SHA512-crypt defaultRoleIfMissing = * Applicable for LDAP authType. If the LDAP server does not return any groups, or if groups cannot be mapped to Splunk roles, then this value is used, if provided. * This setting is optional. * Default: empty string externalTwoFactorAuthVendor = * A valid multifactor vendor string enables multifactor authentication and loads support for the corresponding vendor if supported by the the Splunk platform. * An empty string disables multifactor authentication in the the Splunk platform. * Currently Splunk supports Duo and RSA as multifactor authentication vendors. * This setting is optional. * No default. externalTwoFactorAuthSettings = * Key to look up the specific configuration of chosen multifactor authentication vendor. * This setting is optional. * No default. ##################### # LDAP settings ##################### [] * Follow this stanza name with the following setting/value pairs. * For multiple strategies, specify multiple instances of this stanza, each with its own stanza name and a separate set of settings. * The must be one of the values listed in the authSettings setting, which must be specified in the previous [authentication] stanza. host = * The hostname of the LDAP server. * Confirm that your Splunk server can resolve the host name through DNS. * Required. * No default. SSLEnabled = [0|1] * Specifies whether SSL is enabled. * See the file $SPLUNK_HOME/etc/openldap/ldap.conf for SSL LDAP settings * This setting is optional. * Default: 0 (disabled) port = * The port that the Splunk platform should use to connect to your LDAP server. * This setting is optional. * Default (non-SSL): 389 * Default (SSL): 636 bindDN = * The LDAP Distinguished Name of the user that retrieves the LDAP entries. * This user must have read access to all LDAP users and groups you wish to use in the auth system. * This setting is optional. * Leave this setting blank to retrieve your LDAP entries using anonymous bind (which must be supported by the LDAP server) * No default. bindDNpassword = * Password for the bindDN user. * This setting is optional. * Leave this blank if anonymous bind is sufficient. * No default. userBaseDN = * The distinguished names of LDAP entries whose subtrees contain the users. * Enter a ';' delimited list to search multiple trees. * Required. * No default. userBaseFilter = * The LDAP search filter to use when searching for users. * Highly recommended, especially when there are many entries in your LDAP user subtrees. * When used properly, search filters can significantly speed up LDAP queries * Here is an example that matches users in the IT or HR department: * userBaseFilter = (|(department=IT)(department=HR)) * See RFC 2254 for more detailed information on search filter syntax * This setting is optional. * Default: empty string (no filtering) userNameAttribute = * This is the username. * NOTE: This setting should use case insensitive matching for its values, and the values should not contain whitespace * Usernames are case insensitive in the the Splunk platform * In Active Directory, this is 'sAMAccountName' * Required. * A typical value is 'uid'. * No default. realNameAttribute = * The user's real, human readable name. * Required. * A typical value is 'cn'. * No default. emailAttribute = * The user's email address. * This setting is optional. * Default: mail groupMappingAttribute = * The value that group entries use to declare membership. * Groups are often mapped with user DN, so this defaults to 'dn' * Set this if groups are mapped using a different setting * Usually only needed for OpenLDAP servers. * A typical setting is 'uid' * For example, assume a group declares that one of its members is 'splunkuser' — every user with the 'uid' value 'splunkuser' is mapped to that group. * This setting is optional. * No default. groupBaseDN = [;;...] * The LDAP Distinguished Names of LDAP entries whose subtrees contain the groups. * Required. * Enter a semicolon (;) delimited list to search multiple trees. * If your LDAP environment does not have group entries, there is a configuration that can treat each user as its own group: * Set groupBaseDN to the same as userBaseDN, which means you search for groups in the same place as users. * Next, set the groupMemberAttribute and groupMappingAttribute to the same setting as userNameAttribute. * This means the entry, when treated as a group, uses the username value as its only member. * For clarity, also set groupNameAttribute to the same value as userNameAttribute. * No default. groupBaseFilter = * The LDAP search filter the Splunk platform uses when searching for static groups * Like 'userBaseFilter', this is highly recommended to speed up LDAP queries * See Request for Comments (RFC) 2254 on the Internet Engineering Task Force (IETF) website for more information. * This setting is optional. * Default: empty string (no filtering). dynamicGroupFilter = * The LDAP search filter the Splunk platform uses when searching for dynamic groups. * Configure this setting only if you intend to retrieve dynamic groups on your LDAP server. * Example: '(objectclass=groupOfURLs)' * This setting is optional. * Default: empty string dynamicMemberAttribute = * This setting contains the LDAP URL needed to retrieve members dynamically. * Only configure this if you intend to retrieve dynamic groups on your LDAP server. * This setting is required if you want to retrieve dynamic groups. * Otherwise, it is optional. * Example: 'memberURL' * No default. groupNameAttribute = * This is the group entry setting whose value stores the group name. * A typical setting for this is 'cn' (common name) * Recall that if you are configuring LDAP to treat user entries as their own group, user entries must have this setting * Required. * Default: empty string groupMemberAttribute = * This is the group entry setting whose values are the groups members * Typical setting for this are 'member' and 'memberUid' * For example, consider the groupMappingAttribute example above using groupMemberAttribute 'member' * To declare 'splunkuser' as a group member, its setting 'member' must have the value 'splunkuser' * Required. * Default: empty string nestedGroups = * Controls whether the Splunk platform expands nested groups using the 'memberof' extension. * Set to 1 if you have nested groups you want to expand and the 'memberof' extension on your LDAP server. * This setting is optional. charset = * Only set this for an LDAP setup that returns non-UTF-8 encoded data. LDAP is supposed to always return UTF-8 encoded data (See RFC 2251), but some tools incorrectly return other encodings. * Follows the same format as 'CHARSET' in props.conf (see props.conf.spec) * An example value would be "latin-1" * This setting is optional. * Default: empty string anonymous_referrals = [0|1] * Set this to 0 to turn off referral chasing * Set this to 1 to turn on anonymous referral chasing * NOTE: the Splunk platform only chases referrals using anonymous bind. It does not support rebinding using credentials. * If you do not need referral support, set this to 0. * If you wish to make referrals work, set this to 1 and confirm your server allows anonymous searching * This setting is optional. * Default: 1 sizelimit = * Limits the amount of entries that the Splunk platform requests in LDAP search. * NOTE: The max entries returned is still subject to the maximum imposed by your LDAP server. * Example: If you set this to 5000 and the server limits it to 1000, the software only returns 1000 entries. * This setting is optional. * Default: 1000 pagelimit = * The maximum number of entries to return in each page. * Enables result sets that exceed the maximum number of entries defined for the LDAP server. * If set to -1, ldap pagination is off. * IMPORTANT: The maximum number of entries a page returns is subject to the maximum page size limit of the LDAP server. For example: If you set 'pagelimit = 5000' and the server limit is 1000, you cannot receive more than 1000 entries in a page. * This setting is optional. * Default: -1 enableRangeRetrieval = * The maximum number of values that can be retrieved from one attribute in a single LDAP search request is determined by the LDAP server. If the number of users in a group exceeds the LDAP server limit, enabling this setting fetches all users by using the "range retrieval" mechanism. * Enables result sets for a given attribute that exceed the maximum number of values defined for the LDAP server. * If set to false, ldap range retrieval is off. * This setting is optional. * Default: false timelimit = * The amount of time, in seconds, that the Splunk platform waits for an LDAP search request to complete. * If your searches finish quickly, lower this value from the default. * Maximum value is 30. * Default: 15 network_timeout = * The amount of time, in seconds, that a network socket polls a connection that has no activity. * This is useful for determining if your Splunk platform instance cannot reach your LDAP server. * NOTE: As a connection could potentially be waiting for search results, this value must be higher than 'timelimit'. If you set it lower, you could terminate the connection to your server before an LDAP search completes. * Like 'timelimit', if you have a fast connection to your LDAP server, lower this value. * Maximum value is -1 (unlimited) * This setting is optional. * Default: 20 ldap_negative_cache_timeout = * The amount of time, in seconds, that the Splunk platform remembers that a non-existent user on an LDAP provider does not exist. * This setting is useful when you want to avoid frequent LDAP queries for users that do not exist on the LDAP provider. * This setting does not prevent LDAP queries on login. Login always queries the LDAP provider to confirm that a user exists. * Default: 86400 ##################### # Map roles ##################### [roleMap_] * The mapping of Splunk roles to LDAP groups for the LDAP strategy specified by * Follow this stanza name with several Role-to-Group(s) mappings as defined below. * NOTE: This role mapping ONLY applies to the specified strategy. * Importing groups for the same user from different strategies is not supported. = * Maps a Splunk role from the authorize.conf configuration file to one or more LDAP groups. * Separate multiple LDAP groups with semicolons, not spaces. * List several of these setting/value pairs to map several Splunk roles to LDAP Groups. * LDAP group names are case sensitive. ##################### # Scripted authentication ##################### [] * Follow this stanza name with the following setting/value pairs: python.version = {default|python|python2|python3|python3.7|python3.9|latest} * For Python scripts only, selects which Python version to use. * Set to either "default" or "python" to use the system-wide default Python version. * Set to "python3" or "python3.7" to use the Python 3.7 version. * Set to "python3.9" to use the Python 3.9 version. * In the context of configuring apps, the "latest" value is not currently supported. It is related to a feature that is still under development. * Optional. * Default: Not set; uses the system-wide Python version. scriptSearchFilters = [1|0] * Whether or not to call the script to add search filters. * Set this to 1 to call the script to add search filters. * Default: 0 [cacheTiming] * Use these settings to adjust how long the Splunk platform uses the answers returned from script functions before calling them again. * All timeouts can be expressed in seconds or as a search-like time range * Examples include "30" (30 seconds), "2mins" (2 minutes), "24h" (24 hours), etc. * You can opt to use no caching for a particular function by setting the value to "0". * Be aware that this can severely hinder performance as a result of heavy script invocation. * Choosing the correct values for cache timing involves a tradeoff between new information latency and general performance. * High values yield better performance from calling the script less, but introduces a latency in picking up changes. * Low values pick up changes in your external auth system more quickly, but can slow down performance due to increased script invocations. userLoginTTL =