SSSD Manual pages
sssd-ldap
5
File Formats and Conventions
sssd-ldap
the configuration file for SSSD
DESCRIPTION
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.
CONFIGURATION OPTIONS
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.
ldap_uri (string)
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
ldap_chpass_uri (string)
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.
ldap_search_base (string)
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.
ldap_schema (string)
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
ldap_default_bind_dn (string)
The default bind DN to use for
performing LDAP operations.
ldap_default_authtok_type (string)
The type of the authentication token of the
default bind DN.
The two mechanisms currently supported are:
password
obfuscated_password
Default: password
ldap_default_authtok (string)
The authentication token of the default bind DN.
Only clear text passwords are currently supported.
ldap_user_object_class (string)
The object class of a user entry in LDAP.
Default: posixAccount
ldap_user_name (string)
The LDAP attribute that corresponds to the
user's login name.
Default: uid
ldap_user_uid_number (string)
The LDAP attribute that corresponds to the
user's id.
Default: uidNumber
ldap_user_gid_number (string)
The LDAP attribute that corresponds to the
user's primary group id.
Default: gidNumber
ldap_user_gecos (string)
The LDAP attribute that corresponds to the
user's gecos field.
Default: gecos
ldap_user_home_directory (string)
The LDAP attribute that contains the name of the user's
home directory.
Default: homeDirectory
ldap_user_shell (string)
The LDAP attribute that contains the path to the
user's default shell.
Default: loginShell
ldap_user_uuid (string)
The LDAP attribute that contains the UUID/GUID of
an LDAP user object.
Default: nsUniqueId
ldap_user_modify_timestamp (string)
The LDAP attribute that contains timestamp of the
last modification of the parent object.
Default: modifyTimestamp
ldap_user_shadow_last_change (string)
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
ldap_user_shadow_min (string)
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
ldap_user_shadow_max (string)
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
ldap_user_shadow_warning (string)
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
ldap_user_shadow_inactive (string)
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
ldap_user_shadow_expire (string)
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
ldap_user_krb_last_pwd_change (string)
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
ldap_user_krb_password_expiration (string)
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
ldap_user_ad_account_expires (string)
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
ldap_user_ad_user_account_control (string)
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
ldap_ns_account_lock (string)
When using ldap_account_expire_policy=rhds or
equivalent, this parameter determines if access is
allowed or not.
Default: nsAccountLock
ldap_user_nds_login_disabled (string)
When using ldap_account_expire_policy=nds, this
attribute determines if access is allowed or not.
Default: loginDisabled
ldap_user_nds_login_expiration_time (string)
When using ldap_account_expire_policy=nds, this
attribute determines until which date access is
granted.
Default: loginDisabled
ldap_user_nds_login_allowed_time_map (string)
When using ldap_account_expire_policy=nds, this
attribute determines the hours of a day in a week
when access is granted.
Default: loginAllowedTimeMap
ldap_user_principal (string)
The LDAP attribute that contains the user's Kerberos
User Principal Name (UPN).
Default: krbPrincipalName
ldap_force_upper_case_realm (boolean)
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
ldap_enumeration_refresh_timeout (integer)
The LDAP attribute that contains how many seconds
SSSD has to wait before refreshing its cache of
enumerated records.
Default: 300
ldap_purge_cache_timeout
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)
ldap_user_fullname (string)
The LDAP attribute that corresponds to the
user's full name.
Default: cn
ldap_user_member_of (string)
The LDAP attribute that lists the user's
group memberships.
Default: memberOf
ldap_user_authorized_service (string)
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
ldap_user_authorized_host (string)
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
ldap_group_object_class (string)
The object class of a group entry in LDAP.
Default: posixGroup
ldap_group_name (string)
The LDAP attribute that corresponds to
the group name.
Default: cn
ldap_group_gid_number (string)
The LDAP attribute that corresponds to the
group's id.
Default: gidNumber
ldap_group_member (string)
The LDAP attribute that contains the names of
the group's members.
Default: memberuid (rfc2307) / member (rfc2307bis)
ldap_group_uuid (string)
The LDAP attribute that contains the UUID/GUID of
an LDAP group object.
Default: nsUniqueId
ldap_group_modify_timestamp (string)
The LDAP attribute that contains timestamp of the
last modification of the parent object.
Default: modifyTimestamp
ldap_group_nesting_level (integer)
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
ldap_netgroup_object_class (string)
The object class of a netgroup entry in LDAP.
In IPA provider, ipa_netgroup_object_class should
be used instead.
Default: nisNetgroup
ldap_netgroup_name (string)
The LDAP attribute that corresponds to
the netgroup name.
In IPA provider, ipa_netgroup_name should
be used instead.
Default: cn
ldap_netgroup_member (string)
The LDAP attribute that contains the names of
the netgroup's members.
In IPA provider, ipa_netgroup_member should
be used instead.
Default: memberNisNetgroup
ldap_netgroup_triple (string)
The LDAP attribute that contains the (host, user,
domain) netgroup triples.
This option is not available in IPA provider.
Default: nisNetgroupTriple
ldap_netgroup_uuid (string)
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
ldap_netgroup_modify_timestamp (string)
The LDAP attribute that contains timestamp of the
last modification of the parent object.
This option is not available in IPA provider.
Default: modifyTimestamp
ldap_search_timeout (integer)
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
ldap_enumeration_search_timeout (integer)
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
ldap_network_timeout (integer)
Specifies the timeout (in seconds) after which
the
poll
2
/
select
2
following a
connect
2
returns in case of no activity.
Default: 6
ldap_opt_timeout (integer)
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
ldap_page_size (integer)
Specify the number of records to retrieve from
LDAP in a single request. Some LDAP servers
enforce a maximum limit per-request.
Default: 1000
ldap_deref_threshold (integer)
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.
Default: 10
ldap_tls_reqcert (string)
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
ldap_tls_cacert (string)
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
ldap_tls_cacertdir (string)
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
ldap_tls_cert (string)
Specifies the file that contains the certificate
for the client's key.
Default: not set
ldap_tls_key (string)
Specifies the file that contains the client's key.
Default: not set
ldap_tls_cipher_suite (string)
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
ldap_id_use_start_tls (boolean)
Specifies that the id_provider connection must also
use tls to protect the channel.
Default: false
ldap_sasl_mech (string)
Specify the SASL mechanism to use.
Currently only GSSAPI is tested and supported.
Default: none
ldap_sasl_authid (string)
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
ldap_sasl_canonicalize (boolean)
If set to true, the LDAP library would perform
a reverse lookup to canonicalize the host name
during a SASL bind.
Default: false;
ldap_krb5_keytab (string)
Specify the keytab to use when using SASL/GSSAPI.
Default: System keytab, normally /etc/krb5.keytab
ldap_krb5_init_creds (boolean)
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
ldap_krb5_ticket_lifetime (integer)
Specifies the lifetime in seconds of the TGT if
GSSAPI is used.
Default: 86400 (24 hours)
krb5_server (string)
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.
krb5_realm (string)
Specify the Kerberos REALM (for SASL/GSSAPI auth).
Default: System defaults, see /etc/krb5.conf
krb5_canonicalize (boolean)
Specifies if the host principal should be canonicalized
when connecting to LDAP server. This feature is
available with MIT Kerberos >= 1.7
Default: false
ldap_pwd_policy (string)
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.
Note that the current version of sssd cannot
update this attribute during a password change.
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
ldap_referrals (boolean)
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.
Default: true
ldap_dns_service_name (string)
Specifies the service name to use when service
discovery is enabled.
Default: ldap
ldap_chpass_dns_service_name (string)
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
ldap_access_filter (string)
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 = allow 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
ldap_account_expire_policy (string)
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.
Default: Empty
ldap_access_order (string)
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.
ldap_deref (string)
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)
ADVANCED OPTIONS
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.
ldap_netgroup_search_base (string)
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
ldap_user_search_base (string)
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
ldap_group_search_base (string)
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
ldap_user_search_filter (string)
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.
ldap_group_search_filter (string)
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
EXAMPLE
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
NOTES
The descriptions of some of the configuration options in this manual
page are based on the
ldap.conf
5
manual page from the OpenLDAP 2.4 distribution.
SEE ALSO
sssd.conf5
,
sssd-krb55
,
sssd8