Customizing SSSD
By default, the SSSD service used by the sssd
profile uses Pluggable
Authentication Modules (PAM) and the Name Service Switch (NSS) for managing system access
and authentication. As you enable extra features for the profile to customize SSSD
authentication, you must also configure SSSD for the enabled feature.
Customize an SSSD configuration by creating configuration files within the
/etc/sssd/conf.d
directory. Each configuration file must have the
.conf
suffix.
Configuration files use ini-style syntax. The file is divided into sections, identified by
square brackets. Each section contains parameters which are listed as key =
value
entries.
The following example shows how you might configure SSSD to authenticate against an LDAP provider that uses Kerberos:
-
Create a configuration file for the feature and store it in
/etc/sssd/conf.d
, for example/etc/sssd/conf.d/00-ldap.conf
. -
Configure
/etc/sssd/conf.d/00-ldap.conf
with the appropriate parameter definitions, for example:[sssd] config_file_version = 2 domains = LDAP services = nss, pam [domain/LDAP] id_provider = ldap ldap_uri = ldap://ldap.mydom.com ldap_search_base = dc=mydom,dc=com auth_provider = krb5 krb5_server = krbsvr.mydom.com krb5_realm = MYDOM.COM cache_credentials = true min_id = 5000 max_id = 25000 enumerate = false [nss] filter_groups = root filter_users = root reconnection_retries = 3 entry_cache_timeout = 300 [pam] reconnection_retries = 3 offline_credentials_expiration = 2 offline_failed_login_attempts = 3 offline_failed_login_delay = 5
-
[sssd]
-
Contains configuration settings for SSSD monitor options, domains, and services. The SSSD monitor service manages the services that SSSD provides.
-
services
defines the services SSSD works with, which includesnss
for the Name Service Switch andpam
for Pluggable Authentication Modules. -
The
domains
entry specifies the names of the sections that define authentication domains.
-
-
[domain/LDAP]
-
Defines a domain for an LDAP identity provider that uses Kerberos authentication. Each domain defines where user information is stored, the authentication method, and any configuration options. SSSD can work with LDAP identity providers such as OpenLDAP, Red Hat Directory Server, IPA, and Microsoft Active Directory, and it can use either native LDAP or Kerberos authentication.
-
id_provider
specifies the type of provider (in this example, LDAP). -
ldap_uri
specifies a comma-separated list of the Universal Resource Identifiers (URIs) of the LDAP servers, in order of preference, which SSSD can connect to. -
ldap_search_base
specifies the base distinguished name (dn
) that SSSD uses when performing LDAP user operations on a relative distinguished name (RDN) such as a common name (cn
). -
auth_provider
entry specifies the authentication provider (in this example, Kerberos). -
krb5_server
specifies a comma-separated list of Kerberos servers, in order of preference, which SSSD can connect to. -
krb5_realm
specifies the Kerberos realm. -
cache_credentials
specifies if SSSD caches user credentials such as tickets, session keys, and other identifying information to enable offline authentication and single sign-on.Note:
To enable SSSD to use Kerberos authentication with an LDAP server, you must configure the LDAP server to use both Simple Authentication and Security Layer (SASL) and the Generic Security Services API (GSSAPI). For more information about configuring SASL and GSSAPI for OpenLDAP, see https://www.openldap.org/doc/admin24/sasl.html.
-
min_id
andmax_id
specify upper and lower limits on the values of user and group IDs. -
enumerate
specifies whether SSSD caches the complete list of users and groups that are available on the provider. The recommended setting isFalse
unless a domain contains relatively few users or groups.
-
-
[nss]
-
Configures the Name Service Switch (NSS) module that integrates the SSSD database (SSS) with NSS.
-
filter_users
andfilter_groups
prevent NSS from extracting information about the specified users and groups being retrieved from SSS. -
reconnection_retries
specifies the number of times that SSSD tries to reconnect if a data provider fails. -
enum_cache_timeout
specifies the number of seconds SSSD caches user information requests for.
-
-
[pam]
-
Configures the PAM module that integrates SSSD with PAM.
-
offline_credentials_expiration
specifies the number of days for which to enable cached logins if the authentication provider is offline. -
offline_failed_login_attempts
specifies how many failed sign-ins are allowed if the authentication provider is offline. -
offline_failed_login_delay
specifies how many minutes after the maximum number of failed sign-ins before the user can try to sign-in again.
-
-
-
Change the mode of
/etc/sssd/conf.d/00-ldap.conf
to0600
:sudo chmod 0600 /etc/sssd/conf.d/00-ldap.conf
-
Ensure that the
sssd
service is running:sudo systemctl status sssd
Start and enable the
sssd
service if required:sudo systemctl enable --now sssd
-
Select the
sssd
profile.sudo authselect select sssd
For more information about SSSD, see the README file: https://github.com/SSSD/sssd.
The manual pages provided for SSSD are comprehensive and provide detailed information on
the options that are available. These include sssd(8)
,
sssd.conf(5)
, sssd-ldap(5)
,
sssd-krb5(5)
, and sssd-ipa(5)
.