Table of Contents
This manual page describes the configuration of LDAP domains for sssd(8). Refer to the “FILE FORMAT” section of the sssd.conf(5) manual page for detailed syntax information.
You can configure SSSD to use more than one LDAP domain.
LDAP back end supports id, auth, access and chpass providers. If you want to authenticate against an LDAP server either TLS/SSL or LDAPS is required. sssd does not support authentication over an unencrypted channel. If the LDAP server is used only as an identity provider, an encrypted channel is not needed. Please refer to “ldap_access_filter” config option for more information about using LDAP as an access provider.
All of the common configuration options that apply to SSSD domains also apply to LDAP domains. Refer to the “DOMAIN SECTIONS” section of the sssd.conf(5) manual page for full details.
Specifies the comma-separated list of URIs of the LDAP servers to which SSSD should connect in the order of preference. Refer to the “FAILOVER” section for more information on failover and server redundancy. If not specified, service discovery is enabled. For more information, refer to the “SERVICE DISCOVERY” section.
The format of the URI must match the format defined in RFC 2732:
ldap[s]://<host>[:port]
For explicit IPv6 addresses, <host> must be enclosed in brackets []
example: ldap://[fc00::126:25]:389
Specifies the comma-separated list of URIs of the LDAP servers to which SSSD should connect in the order of preference to change the password of a user. Refer to the “FAILOVER” section for more information on failover and server redundancy.
To enable service discovery ldap_chpass_dns_service_name must be set.
Default: empty, i.e. ldap_uri is used.
The default base DN to use for performing LDAP user operations.
Starting with SSSD 1.7.0, SSSD supports multiple search bases using the syntax:
search_base[?scope?[filter][?search_base?scope?[filter]]*]
The scope can be one of "base", "onelevel" or "subtree".
The filter must be a valid LDAP search filter as specified by http://www.ietf.org/rfc/rfc2254.txt
Examples:
ldap_search_base = dc=example,dc=com (which is equivalent to) ldap_search_base = dc=example,dc=com?subtree?
ldap_search_base = cn=host_specific,dc=example,dc=com?subtree?(host=thishost)?dc=example.com?subtree?
Note: It is unsupported to have multiple search bases which reference identically-named objects (for example, groups with the same name in two different search bases). This will lead to unpredictable behavior on client machines.
Default: If not set, the value of the defaultNamingContext or namingContexts attribute from the RootDSE of the LDAP server is used. If defaultNamingContext does not exists or has an empty value namingContexts is used. The namingContexts attribute must have a single value with the DN of the search base of the LDAP server to make this work. Multiple values are are not supported.
Specifies the Schema Type in use on the target LDAP server. Depending on the selected schema, the default attribute names retrieved from the servers may vary. The way that some attributes are handled may also differ. Three schema types are currently supported: rfc2307 rfc2307bis IPA The main difference between these schema types is how group memberships are recorded in the server. With rfc2307, group members are listed by name in the memberUid attribute. With rfc2307bis and IPA, group members are listed by DN and stored in the member attribute.
Default: rfc2307
The default bind DN to use for performing LDAP operations.
The type of the authentication token of the default bind DN.
The two mechanisms currently supported are:
password
obfuscated_password
Default: password
The authentication token of the default bind DN. Only clear text passwords are currently supported.
The object class of a user entry in LDAP.
Default: posixAccount
The LDAP attribute that corresponds to the user's login name.
Default: uid
The LDAP attribute that corresponds to the user's id.
Default: uidNumber
The LDAP attribute that corresponds to the user's primary group id.
Default: gidNumber
The LDAP attribute that corresponds to the user's gecos field.
Default: gecos
The LDAP attribute that contains the name of the user's home directory.
Default: homeDirectory
The LDAP attribute that contains the path to the user's default shell.
Default: loginShell
The LDAP attribute that contains the UUID/GUID of an LDAP user object.
Default: nsUniqueId
The LDAP attribute that contains timestamp of the last modification of the parent object.
Default: modifyTimestamp
When using ldap_pwd_policy=shadow, this parameter contains the name of an LDAP attribute corresponding to its shadow(5) counterpart (date of the last password change).
Default: shadowLastChange
When using ldap_pwd_policy=shadow, this parameter contains the name of an LDAP attribute corresponding to its shadow(5) counterpart (minimum password age).
Default: shadowMin
When using ldap_pwd_policy=shadow, this parameter contains the name of an LDAP attribute corresponding to its shadow(5) counterpart (maximum password age).
Default: shadowMax
When using ldap_pwd_policy=shadow, this parameter contains the name of an LDAP attribute corresponding to its shadow(5) counterpart (password warning period).
Default: shadowWarning
When using ldap_pwd_policy=shadow, this parameter contains the name of an LDAP attribute corresponding to its shadow(5) counterpart (password inactivity period).
Default: shadowInactive
When using ldap_pwd_policy=shadow or ldap_account_expire_policy=shadow, this parameter contains the name of an LDAP attribute corresponding to its shadow(5) counterpart (account expiration date).
Default: shadowExpire
When using ldap_pwd_policy=mit_kerberos, this parameter contains the name of an LDAP attribute storing the date and time of last password change in kerberos.
Default: krbLastPwdChange
When using ldap_pwd_policy=mit_kerberos, this parameter contains the name of an LDAP attribute storing the date and time when current password expires.
Default: krbPasswordExpiration
When using ldap_account_expire_policy=ad, this parameter contains the name of an LDAP attribute storing the expiration time of the account.
Default: accountExpires
When using ldap_account_expire_policy=ad, this parameter contains the name of an LDAP attribute storing the user account control bit field.
Default: userAccountControl
When using ldap_account_expire_policy=rhds or equivalent, this parameter determines if access is allowed or not.
Default: nsAccountLock
When using ldap_account_expire_policy=nds, this attribute determines if access is allowed or not.
Default: loginDisabled
When using ldap_account_expire_policy=nds, this attribute determines until which date access is granted.
Default: loginDisabled
When using ldap_account_expire_policy=nds, this attribute determines the hours of a day in a week when access is granted.
Default: loginAllowedTimeMap
The LDAP attribute that contains the user's Kerberos User Principal Name (UPN).
Default: krbPrincipalName
The LDAP attribute that contains the user's SSH public keys.
Some directory servers, for example Active Directory, might deliver the realm part of the UPN in lower case, which might cause the authentication to fail. Set this option to a non-zero value if you want to use an upper-case realm.
Default: false
Specifies how many seconds SSSD has to wait before refreshing its cache of enumerated records.
Default: 300
Determine how often to check the cache for inactive entries (such as groups with no members and users who have never logged in) and remove them to save space.
Setting this option to zero will disable the cache cleanup operation.
Default: 10800 (12 hours)
The LDAP attribute that corresponds to the user's full name.
Default: cn
The LDAP attribute that lists the user's group memberships.
Default: memberOf
If access_provider=ldap and ldap_access_order=authorized_service, SSSD will use the presence of the authorizedService attribute in the user's LDAP entry to determine access privilege.
An explicit deny (!svc) is resolved first. Second, SSSD searches for explicit allow (svc) and finally for allow_all (*).
Default: authorizedService
If access_provider=ldap and ldap_access_order=host, SSSD will use the presence of the host attribute in the user's LDAP entry to determine access privilege.
An explicit deny (!host) is resolved first. Second, SSSD searches for explicit allow (host) and finally for allow_all (*).
Default: host
The object class of a group entry in LDAP.
Default: posixGroup
The LDAP attribute that corresponds to the group name.
Default: cn
The LDAP attribute that corresponds to the group's id.
Default: gidNumber
The LDAP attribute that contains the names of the group's members.
Default: memberuid (rfc2307) / member (rfc2307bis)
The LDAP attribute that contains the UUID/GUID of an LDAP group object.
Default: nsUniqueId
The LDAP attribute that contains timestamp of the last modification of the parent object.
Default: modifyTimestamp
If ldap_schema is set to a schema format that supports nested groups (e.g. RFC2307bis), then this option controls how many levels of nesting SSSD will follow. This option has no effect on the RFC2307 schema.
Default: 2
The object class of a netgroup entry in LDAP.
In IPA provider, ipa_netgroup_object_class should be used instead.
Default: nisNetgroup
The LDAP attribute that corresponds to the netgroup name.
In IPA provider, ipa_netgroup_name should be used instead.
Default: cn
The LDAP attribute that contains the names of the netgroup's members.
In IPA provider, ipa_netgroup_member should be used instead.
Default: memberNisNetgroup
The LDAP attribute that contains the (host, user, domain) netgroup triples.
This option is not available in IPA provider.
Default: nisNetgroupTriple
The LDAP attribute that contains the UUID/GUID of an LDAP netgroup object.
In IPA provider, ipa_netgroup_uuid should be used instead.
Default: nsUniqueId
The LDAP attribute that contains timestamp of the last modification of the parent object.
This option is not available in IPA provider.
Default: modifyTimestamp
The object class of a service entry in LDAP.
Default: ipService
The LDAP attribute that contains the name of service attributes and their aliases.
Default: cn
The LDAP attribute that contains the port managed by this service.
Default: ipServicePort
The LDAP attribute that contains the protocols understood by this service.
Default: ipServiceProtocol
An optional base DN to restrict service searches to a specific subtree.
See “ldap_search_base” for information about configuring multiple search bases.
Default: the value of ldap_search_base
Specifies the timeout (in seconds) that ldap searches are allowed to run before they are cancelled and cached results are returned (and offline mode is entered)
Note: this option is subject to change in future versions of the SSSD. It will likely be replaced at some point by a series of timeouts for specific lookup types.
Default: 6
Specifies the timeout (in seconds) that ldap searches for user and group enumerations are allowed to run before they are cancelled and cached results are returned (and offline mode is entered)
Default: 60
Specifies the timeout (in seconds) after which the poll(2)/select(2) following a connect(2) returns in case of no activity.
Default: 6
Specifies a timeout (in seconds) after which calls to synchronous LDAP APIs will abort if no response is received. Also controls the timeout when communicating with the KDC in case of SASL bind.
Default: 6
Specifies a timeout (in seconds) that a connection to an LDAP server will be maintained. After this time, the connection will be re-established. If used in parallel with SASL/GSSAPI, the sooner of the two values (this value vs. the TGT lifetime) will be used.
Default: 900 (15 minutes)
Specify the number of records to retrieve from LDAP in a single request. Some LDAP servers enforce a maximum limit per-request.
Default: 1000
Disable the LDAP paging control. This option should be used if the LDAP server reports that it supports the LDAP paging control in its RootDSE but it is not enabled or does not behave properly.
Example: OpenLDAP servers with the paging control module installed on the server but not enabled will report it in the RootDSE but be unable to use it.
Example: 389 DS has a bug where it can only support a one paging control at a time on a single connection. On busy clients, this can result in some requests being denied.
Default: False
When communicating with an LDAP server using SASL, specify the minimum security level necessary to establish the connection. The values of this option are defined by OpenLDAP.
Default: Use the system default (usually specified by ldap.conf)
Specify the number of group members that must be missing from the internal cache in order to trigger a dereference lookup. If less members are missing, they are looked up individually.
You can turn off dereference lookups completely by setting the value to 0.
A dereference lookup is a means of fetching all group members in a single LDAP call. Different LDAP servers may implement different dereference methods. The currently supported servers are 389/RHDS, OpenLDAP and Active Directory.
Note: If any of the search bases specifies a search filter, then the dereference lookup performance enhancement will be disabled regardless of this setting.
Default: 10
Specifies what checks to perform on server certificates in a TLS session, if any. It can be specified as one of the following values:
never = The client will not request or check any server certificate.
allow = The server certificate is requested. If no certificate is provided, the session proceeds normally. If a bad certificate is provided, it will be ignored and the session proceeds normally.
try = The server certificate is requested. If no certificate is provided, the session proceeds normally. If a bad certificate is provided, the session is immediately terminated.
demand = The server certificate is requested. If no certificate is provided, or a bad certificate is provided, the session is immediately terminated.
hard = Same as “demand”
Default: hard
Specifies the file that contains certificates for all of the Certificate Authorities that sssd will recognize.
Default: use OpenLDAP defaults, typically in
/etc/openldap/ldap.conf
Specifies the path of a directory that contains Certificate Authority certificates in separate individual files. Typically the file names need to be the hash of the certificate followed by '.0'. If available, cacertdir_rehash can be used to create the correct names.
Default: use OpenLDAP defaults, typically in
/etc/openldap/ldap.conf
Specifies the file that contains the certificate for the client's key.
Default: not set
Specifies the file that contains the client's key.
Default: not set
Specifies acceptable cipher suites. Typically this is a colon sperated list. See ldap.conf(5) for format.
Default: use OpenLDAP defaults, typically in
/etc/openldap/ldap.conf
Specifies that the id_provider connection must also
use tls
to protect the channel.
Default: false
Specify the SASL mechanism to use. Currently only GSSAPI is tested and supported.
Default: not set
Specify the SASL authorization id to use. When GSSAPI is used, this represents the Kerberos principal used for authentication to the directory.
Default: host/machine.fqdn@REALM
If set to true, the LDAP library would perform a reverse lookup to canonicalize the host name during a SASL bind.
Default: false;
Specify the keytab to use when using SASL/GSSAPI.
Default: System keytab, normally /etc/krb5.keytab
Specifies that the id_provider should init Kerberos credentials (TGT). This action is performed only if SASL is used and the mechanism selected is GSSAPI.
Default: true
Specifies the lifetime in seconds of the TGT if GSSAPI is used.
Default: 86400 (24 hours)
Specifies the comma-separated list of IP addresses or hostnames of the Kerberos servers to which SSSD should connect in the order of preference. For more information on failover and server redundancy, see the “FAILOVER” section. An optional port number (preceded by a colon) may be appended to the addresses or hostnames. If empty, service discovery is enabled - for more information, refer to the “SERVICE DISCOVERY” section.
When using service discovery for KDC or kpasswd servers, SSSD first searches for DNS entries that specify _udp as the protocol and falls back to _tcp if none are found.
This option was named “krb5_kdcip” in earlier releases of SSSD. While the legacy name is recognized for the time being, users are advised to migrate their config files to use “krb5_server” instead.
Specify the Kerberos REALM (for SASL/GSSAPI auth).
Default: System defaults, see /etc/krb5.conf
Specifies if the host principal should be canonicalized when connecting to LDAP server. This feature is available with MIT Kerberos >= 1.7
Default: false
Select the policy to evaluate the password expiration on the client side. The following values are allowed:
none - No evaluation on the client side. This option cannot disable server-side password policies.
shadow - Use shadow(5) style attributes to evaluate if the password has expired.
mit_kerberos - Use the attributes used by MIT Kerberos to determine if the password has expired. Use chpass_provider=krb5 to update these attributes when the password is changed.
Default: none
Specifies whether automatic referral chasing should be enabled.
Please note that sssd only supports referral chasing when it is compiled with OpenLDAP version 2.4.13 or higher.
Chasing referrals may incur a performance penalty in environments that use them heavily, a notable example is Microsoft Active Directory. If your setup does not in fact require the use of referrals, setting this option to false might bring a noticeable performance improvement.
Default: true
Specifies the service name to use when service discovery is enabled.
Default: ldap
Specifies the service name to use to find an LDAP server which allows password changes when service discovery is enabled.
Default: not set, i.e. service discovery is disabled
If using access_provider = ldap, this option is mandatory. It specifies an LDAP search filter criteria that must be met for the user to be granted access on this host. If access_provider = ldap and this option is not set, it will result in all users being denied access. Use access_provider = permit to change this default behavior.
Example:
access_provider = ldap ldap_access_filter = memberOf=cn=allowedusers,ou=Groups,dc=example,dc=com
This example means that access to this host is restricted to members of the "allowedusers" group in ldap.
Offline caching for this feature is limited to determining whether the user's last online login was granted access permission. If they were granted access during their last login, they will continue to be granted access while offline and vice-versa.
Default: Empty
With this option a client side evaluation of access control attributes can be enabled.
Please note that it is always recommended to use server side access control, i.e. the LDAP server should deny the bind request with a suitable error code even if the password is correct.
The following values are allowed:
shadow: use the value of ldap_user_shadow_expire to determine if the account is expired.
ad: use the value of the 32bit field ldap_user_ad_user_account_control and allow access if the second bit is not set. If the attribute is missing access is granted. Also the expiration time of the account is checked.
rhds, ipa, 389ds: use the value of ldap_ns_account_lock to check if access is allowed or not.
nds: the values of ldap_user_nds_login_allowed_time_map, ldap_user_nds_login_disabled and ldap_user_nds_login_expiration_time are used to check if access is allowed. If both attributes are missing access is granted. This is an experimental feature, please use http://fedorahosted.org/sssd to report any issues.
Default: Empty
Comma separated list of access control options. Allowed values are:
filter: use ldap_access_filter
expire: use ldap_account_expire_policy
authorized_service: use the authorizedService attribute to determine access
host: use the host attribute to determine access
Default: filter
Please note that it is a configuration error if a value is used more than once.
Specifies how alias dereferencing is done when performing a search. The following options are allowed:
never: Aliases are never dereferenced.
searching: Aliases are dereferenced in subordinates of the base object, but not in locating the base object of the search.
finding: Aliases are only dereferenced when locating the base object of the search.
always: Aliases are dereferenced both in searching and in locating the base object of the search.
Default: Empty (this is handled as never by the LDAP client libraries)
This is an experimental feature, please use http://fedorahosted.org/sssd to report any issues.
The object class of a sudo rule entry in LDAP.
Default: sudoRole
The LDAP attribute that corresponds to the sudo rule name.
Default: cn
The LDAP attribute that corresponds to the command name.
Default: sudoCommand
The LDAP attribute that corresponds to the host name (or host IP address, host IP network, or host netgroup)
Default: sudoHost
The LDAP attribute that corresponds to the user name (or UID, group name or user's netgroup)
Default: sudoUser
The LDAP attribute that corresponds to the sudo options.
Default: sudoOption
The LDAP attribute that corresponds to the user name that commands may be run as.
Default: sudoRunAsUser
The LDAP attribute that corresponds to the group name or group GID that commands may be run as.
Default: sudoRunAsGroup
The LDAP attribute that corresponds to the start date/time for when the sudo rule is valid.
Default: sudoNotBefore
The LDAP attribute that corresponds to the expiration date/time, after which the sudo rule will no longer be valid.
Default: sudoNotAfter
The LDAP attribute that corresponds to the ordering index of the rule.
Default: sudoOrder
Enables periodical download of all sudo rules. The cache is purged before each update.
Default: false
How many seconds SSSD has to wait before refreshing its cache of sudo rules.
Default: 300
This manual page only describes attribute name mapping. For detailed explanation of sudo related attribute semantics, see sudoers.ldap(5)
Please note that the default values correspond to the default schema which is RFC2307.
This is an experimental feature, please use http://fedorahosted.org/sssd to report any issues.
The object class of an automount map entry in LDAP.
Default: automountMap
The name of an automount map entry in LDAP.
Default: ou
The object class of an automount map entry in LDAP.
Default: automountMap
The key of an automount entry in LDAP. The entry usually corresponds to a mount point.
Default: cn
The key of an automount entry in LDAP. The entry usually corresponds to a mount point.
Default: automountInformation
These options are supported by LDAP domains, but they should be used with caution. Please include them in your configuration only if you know what you are doing.
An optional base DN to restrict netgroup searches to a specific subtree.
See “ldap_search_base” for information about configuring multiple search bases.
Default: the value of ldap_search_base
An optional base DN to restrict user searches to a specific subtree.
See “ldap_search_base” for information about configuring multiple search bases.
Default: the value of ldap_search_base
An optional base DN to restrict group searches to a specific subtree.
See “ldap_search_base” for information about configuring multiple search bases.
Default: the value of ldap_search_base
This option specifies an additional LDAP search filter criteria that restrict user searches.
This option is deprecated in favor of the syntax used by ldap_user_search_base.
Default: not set
Example:
ldap_user_search_filter = (loginShell=/bin/tcsh)
This filter would restrict user searches to users that have their shell set to /bin/tcsh.
This option specifies an additional LDAP search filter criteria that restrict group searches.
This option is deprecated in favor of the syntax used by ldap_group_search_base.
Default: not set
An optional base DN to restrict sudo rules searches to a specific subtree.
See “ldap_search_base” for information about configuring multiple search bases.
Default: the value of ldap_search_base
This is an experimental feature, please use http://fedorahosted.org/sssd to report any issues.
An optional base DN to restrict automounter searches to a specific subtree.
See “ldap_search_base” for information about configuring multiple search bases.
Default: the value of ldap_search_base
This is an experimental feature, please use http://fedorahosted.org/sssd to report any issues.
The failover feature allows back ends to automatically switch to a different server if the primary server fails.
The list of servers is given as a comma-separated list; any number of spaces is allowed around the comma. The servers are listed in order of preference. The list can contain any number of servers.
The failover mechanism distinguishes between a machine and a service. The back end first tries to resolve the hostname of a given machine; if this resolution attempt fails, the machine is considered offline. No further attempts are made to connect to this machine for any other service. If the resolution attempt succeeds, the back end tries to connect to a service on this machine. If the service connection attempt fails, then only this particular service is considered offline and the back end automatically switches over to the next service. The machine is still considered online and might still be tried for another service.
Further connection attempts are made to machines or services marked as offline after a specified period of time; this is currently hard coded to 30 seconds.
If there are no more machines to try, the back end as a whole switches to offline mode, and then attempts to reconnect every 30 seconds.
The service discovery feature allows back ends to automatically find the appropriate servers to connect to using a special DNS query.
If no servers are specified, the back end automatically uses service discovery to try to find a server. Optionally, the user may choose to use both fixed server addresses and service discovery by inserting a special keyword, “_srv_”, in the list of servers. The order of preference is maintained. This feature is useful if, for example, the user prefers to use service discovery whenever possible, and fall back to a specific server when no servers can be discovered using DNS.
Please refer to the “dns_discovery_domain” parameter in the sssd.conf(5) manual page for more details.
The following example assumes that SSSD is correctly
configured and LDAP is set to one of the domains in the
[domains]
section.
[domain/LDAP] id_provider = ldap auth_provider = ldap ldap_uri = ldap://ldap.mydomain.org ldap_search_base = dc=mydomain,dc=org ldap_tls_reqcert = demand cache_credentials = true enumerate = true