summaryrefslogtreecommitdiffstats
path: root/src/man/sssd.conf.5.xml
diff options
context:
space:
mode:
Diffstat (limited to 'src/man/sssd.conf.5.xml')
-rw-r--r--src/man/sssd.conf.5.xml4627
1 files changed, 4627 insertions, 0 deletions
diff --git a/src/man/sssd.conf.5.xml b/src/man/sssd.conf.5.xml
new file mode 100644
index 0000000..e7a8cbd
--- /dev/null
+++ b/src/man/sssd.conf.5.xml
@@ -0,0 +1,4627 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE reference PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
+"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd"
+[
+<!ENTITY sssd_user_name SYSTEM "sssd_user_name.include">
+]>
+<reference>
+<title>SSSD Manual pages</title>
+<refentry>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="include/upstream.xml" />
+
+ <refmeta>
+ <refentrytitle>sssd.conf</refentrytitle>
+ <manvolnum>5</manvolnum>
+ <refmiscinfo class="manual">File Formats and Conventions</refmiscinfo>
+ </refmeta>
+
+ <refnamediv id='name'>
+ <refname>sssd.conf</refname>
+ <refpurpose>the configuration file for SSSD</refpurpose>
+ </refnamediv>
+
+ <refsect1 id='file-format'>
+ <title>FILE FORMAT</title>
+
+ <para>
+ The file has an ini-style syntax and consists of sections and
+ parameters. A section begins with the name of the section in
+ square brackets and continues until the next section begins. An
+ example of section with single and multi-valued parameters:
+ <programlisting>
+<replaceable>[section]</replaceable>
+<replaceable>key</replaceable> = <replaceable>value</replaceable>
+<replaceable>key2</replaceable> = <replaceable>value2,value3</replaceable>
+ </programlisting>
+ </para>
+
+ <para>
+ The data types used are string (no quotes needed), integer
+ and bool (with values of <quote>TRUE/FALSE</quote>).
+ </para>
+
+ <para>
+ A comment line starts with a hash sign (<quote>#</quote>) or a
+ semicolon (<quote>;</quote>).
+ Inline comments are not supported.
+ </para>
+
+ <para>
+ All sections can have an optional
+ <replaceable>description</replaceable> parameter. Its function
+ is only as a label for the section.
+ </para>
+
+ <para>
+ <filename>sssd.conf</filename> must be a regular file, owned by
+ root and only root may read from or write to the file.
+ </para>
+ </refsect1>
+
+ <refsect1 id='config-snippets'>
+ <title>CONFIGURATION SNIPPETS FROM INCLUDE DIRECTORY</title>
+
+ <para>
+ The configuration file <filename>sssd.conf</filename> will
+ include configuration snippets using the include directory
+ <filename>conf.d</filename>. This feature is available if
+ SSSD was compiled with libini version 1.3.0 or later.
+ </para>
+
+ <para>
+ Any file placed in <filename>conf.d</filename>
+ that ends in <quote><filename>.conf</filename></quote>
+ and does not begin with a dot (<quote>.</quote>) will
+ be used together with <filename>sssd.conf</filename>
+ to configure SSSD.
+ </para>
+
+ <para>
+ The configuration snippets from <filename>conf.d</filename>
+ have higher priority than <filename>sssd.conf</filename>
+ and will override <filename>sssd.conf</filename> when
+ conflicts occur. If several snippets are present in
+ <filename>conf.d</filename>, then they are included in
+ alphabetical order (based on locale).
+ Files included later have higher priority. Numerical
+ prefixes (<filename>01_snippet.conf</filename>,
+ <filename>02_snippet.conf</filename> etc.) can help
+ visualize the priority (higher number means higher
+ priority).
+ </para>
+
+ <para>
+ The snippet files require the same owner and permissions
+ as <filename>sssd.conf</filename>. Which are by default
+ root:root and 0600.
+ </para>
+ </refsect1>
+
+ <refsect1 id='general-options'>
+ <title>GENERAL OPTIONS</title>
+ <para>
+ Following options are usable in more than one configuration
+ sections.
+ </para>
+ <refsect2 id='all-section-options'>
+ <title>Options usable in all sections</title>
+ <para>
+ <variablelist>
+ <varlistentry>
+ <term>debug_level (integer)</term>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="include/debug_levels.xml" />
+ </varlistentry>
+ <varlistentry>
+ <term>debug (integer)</term>
+ <listitem>
+ <para>
+ SSSD 1.14 and later also includes the
+ <replaceable>debug</replaceable> alias for
+ <replaceable>debug_level</replaceable> as a
+ convenience feature. If both are specified, the
+ value of <replaceable>debug_level</replaceable>
+ will be used.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>debug_timestamps (bool)</term>
+ <listitem>
+ <para>
+ Add a timestamp to the debug messages.
+ If journald is enabled for SSSD debug logging this
+ option is ignored.
+ </para>
+ <para>
+ Default: true
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>debug_microseconds (bool)</term>
+ <listitem>
+ <para>
+ Add microseconds to the timestamp in debug messages.
+ If journald is enabled for SSSD debug logging this
+ option is ignored.
+ </para>
+ <para>
+ Default: false
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>debug_backtrace_enabled (bool)</term>
+ <listitem>
+ <para>
+ Enable debug backtrace.
+ </para>
+ <para>
+ In case SSSD is run with debug_level less than 9,
+ everything is logged to a ring buffer in memory and
+ flushed to a log file on any error up to
+ and including `min(0x0040, debug_level)`
+ (i.e. if debug_level is explicitly set to 0 or 1 then
+ only those error levels will trigger backtrace,
+ otherwise up to 2).
+ </para>
+ <para>
+ Feature is only supported for `logger == files` (i.e.
+ setting doesn't have effect for other logger types).
+ </para>
+ <para>
+ Default: true
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </para>
+ </refsect2>
+
+ <refsect2 id='services-and-domains-section-options'>
+ <title>Options usable in SERVICE and DOMAIN sections</title>
+ <para>
+ <variablelist>
+ <varlistentry>
+ <term>timeout (integer)</term>
+ <listitem>
+ <para>
+ Timeout in seconds between heartbeats for this
+ service. This is used to ensure that the process
+ is alive and capable of answering requests. Note
+ that after three missed heartbeats the process
+ will terminate itself.
+ </para>
+ <para>
+ Default: 10
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </para>
+ </refsect2>
+ </refsect1>
+
+ <refsect1 id='special-sections'>
+ <title>SPECIAL SECTIONS</title>
+
+ <refsect2 id='services'>
+ <title>The [sssd] section</title>
+ <para>
+ Individual pieces of SSSD functionality are provided by special
+ SSSD services that are started and stopped together with SSSD.
+ The services are managed by a special service frequently called
+ <quote>monitor</quote>. The <quote>[sssd]</quote> section is used
+ to configure the monitor as well as some other important options
+ like the identity domains.
+ <variablelist>
+ <title>Section parameters</title>
+ <varlistentry>
+ <term>config_file_version (integer)</term>
+ <listitem>
+ <para>
+ Indicates what is the syntax of the config
+ file. SSSD 0.6.0 and later use version 2.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>services</term>
+ <listitem>
+ <para>
+ Comma separated list of services that are
+ started when sssd itself starts.
+ <phrase condition="have_systemd">
+ The services' list is optional on platforms
+ where systemd is supported, as they will either
+ be socket or D-Bus activated when needed.
+ </phrase>
+ </para>
+ <para>
+ Supported services: nss, pam
+ <phrase condition="with_sudo">, sudo</phrase>
+ <phrase condition="with_autofs">, autofs</phrase>
+ <phrase condition="with_ssh">, ssh</phrase>
+ <phrase condition="with_pac_responder">, pac</phrase>
+ <phrase condition="with_ifp">, ifp</phrase>
+ </para>
+ <para>
+ <phrase condition="have_systemd">
+ By default, all services are disabled and the administrator
+ must enable the ones allowed to be used by executing:
+ "systemctl enable sssd-@service@.socket".
+ </phrase>
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>reconnection_retries (integer)</term>
+ <listitem>
+ <para>
+ Number of times services should attempt to
+ reconnect in the event of a Data Provider
+ crash or restart before they give up
+ </para>
+ <para>
+ Default: 3
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>domains</term>
+ <listitem>
+ <para>
+ A domain is a database containing user
+ information. SSSD can use more domains
+ at the same time, but at least one
+ must be configured or SSSD won't start.
+ This parameter describes the list of domains
+ in the order you want them to be queried.
+ A domain name is recommended to contain only
+ alphanumeric ASCII characters, dashes, dots
+ and underscores. '/' character is forbidden.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>re_expression (string)</term>
+ <listitem>
+ <para>
+ Default regular expression that describes how to
+ parse the string containing user name and domain
+ into these components.
+ </para>
+ <para>
+ Each domain can have an individual regular
+ expression configured. For some ID providers
+ there are also default regular expressions. See
+ DOMAIN SECTIONS for more info on these regular
+ expressions.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>full_name_format (string)</term>
+ <listitem>
+ <para>
+ A <citerefentry>
+ <refentrytitle>printf</refentrytitle>
+ <manvolnum>3</manvolnum>
+ </citerefentry>-compatible format that describes how to
+ compose a fully qualified name from user name
+ and domain name components.
+ </para>
+ <para>
+ The following expansions are supported:
+ <variablelist>
+ <varlistentry>
+ <term>%1$s</term>
+ <listitem><para>user name</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>%2$s</term>
+ <listitem>
+ <para>
+ domain name as specified in the
+ SSSD config file.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>%3$s</term>
+ <listitem>
+ <para>
+ domain flat name. Mostly usable
+ for Active Directory domains, both
+ directly configured or discovered
+ via IPA trusts.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </para>
+ <para>
+ Each domain can have an individual format string configured.
+ See DOMAIN SECTIONS for more info on this option.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>monitor_resolv_conf (boolean)</term>
+ <listitem>
+ <para>
+ Controls if SSSD should monitor the state of
+ resolv.conf to identify when it needs to
+ update its internal DNS resolver.
+ </para>
+ <para>
+ Default: true
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>try_inotify (boolean)</term>
+ <listitem>
+ <para condition="have_inotify">
+ By default, SSSD will attempt to use inotify
+ to monitor configuration files changes and
+ will fall back to polling every five seconds
+ if inotify cannot be used.
+ </para>
+ <para condition="have_inotify">
+ There are some limited situations where it is
+ preferred that we should skip even trying to
+ use inotify. In these rare cases, this option
+ should be set to 'false'
+ </para>
+ <para condition="have_inotify">
+ Default: true on platforms where inotify is
+ supported. False on other platforms.
+ </para>
+ <para>
+ Note: this option will have no effect on
+ platforms where inotify is unavailable. On
+ these platforms, polling will always be used.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>krb5_rcache_dir (string)</term>
+ <listitem>
+ <para>
+ Directory on the filesystem where SSSD should
+ store Kerberos replay cache files.
+ </para>
+ <para>
+ This option accepts a special value
+ __LIBKRB5_DEFAULTS__ that will instruct SSSD
+ to let libkrb5 decide the appropriate
+ location for the replay cache.
+ </para>
+ <para>
+ Default: Distribution-specific and specified
+ at build-time. (__LIBKRB5_DEFAULTS__ if not
+ configured)
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry condition="with_non_root_user_support">
+ <term>user (string)</term>
+ <listitem>
+ <para>
+ The user to drop the privileges to where
+ appropriate to avoid running as the
+ root user.
+ Currently the only supported value is '&sssd_user_name;'.
+ </para>
+
+ <para condition="have_systemd">
+ This option does not work when running socket-activated
+ services, as the user set up to run the processes is
+ set up during compilation time.
+
+ The way to override the systemd unit files is by creating
+ the appropriate files in /etc/systemd/system/.
+
+ Keep in mind that any change in the socket user, group or
+ permissions may result in a non-usable SSSD. The same may
+ occur in case of changes of the user running the NSS
+ responder.
+ </para>
+
+ <para>
+ Default: not set, process will run as root
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>default_domain_suffix (string)</term>
+ <listitem>
+ <para>
+ This string will be used as a default domain
+ name for all names without a domain name
+ component. The main use case is environments
+ where the primary domain is intended for managing host
+ policies and all users are located in a trusted domain.
+ The option allows those users
+ to log in just with their user name without
+ giving a domain name as well.
+ </para>
+ <para>
+ Please note that if this option is set all
+ users from the primary domain have to use their
+ fully qualified name, e.g. user@domain.name,
+ to log in. Setting this option changes default
+ of use_fully_qualified_names to True. It is not
+ allowed to use this option together with
+ use_fully_qualified_names set to False.
+ <phrase condition="with_files_provider">
+ One exception from this rule are domains with
+ <quote>id_provider=files</quote> that always try
+ to match the behaviour of nss_files
+ and therefore their output is not
+ qualified even when the default_domain_suffix
+ option is used.
+ </phrase>
+ </para>
+ <para>
+ Default: not set
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>override_space (string)</term>
+ <listitem>
+ <para>
+ This parameter will replace spaces (space bar)
+ with the given character for user and group names.
+ e.g. (_). User name &quot;john doe&quot; will
+ be &quot;john_doe&quot; This feature was added to
+ help compatibility with shell scripts that have
+ difficulty handling spaces, due to the
+ default field separator in the shell.
+ </para>
+ <para>
+ Please note it is a configuration error to use
+ a replacement character that might be used in
+ user or group names. If a name contains the
+ replacement character SSSD tries to return the
+ unmodified name but in general the result of a
+ lookup is undefined.
+ </para>
+ <para>
+ Default: not set (spaces will not be replaced)
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>certificate_verification (string)</term>
+ <listitem>
+ <para>
+ With this parameter the certificate verification
+ can be tuned with a comma separated list of
+ options. Supported options are:
+ <variablelist>
+ <varlistentry>
+ <term>no_ocsp</term>
+ <listitem>
+ <para>Disables Online Certificate Status
+ Protocol (OCSP) checks. This might be
+ needed if the OCSP servers defined in
+ the certificate are not reachable from
+ the client.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>soft_ocsp</term>
+ <listitem>
+ <para> If a connection
+ cannot be established to an OCSP
+ responder the OCSP check is skipped.
+ This option should be used to allow
+ authentication when the system is
+ offline and the OCSP responder cannot be
+ reached.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>ocsp_dgst</term>
+ <listitem>
+ <para>Digest (hash) function used to
+ create the certificate ID for the OCSP
+ request. Allowed values are:
+ <itemizedlist>
+ <listitem><para>sha1</para></listitem>
+ <listitem><para>sha256</para></listitem>
+ <listitem><para>sha384</para></listitem>
+ <listitem><para>sha512</para></listitem>
+ </itemizedlist></para>
+ <para>
+ Default: sha1 (to allow compatibility with
+ RFC5019-compliant responder)
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>no_verification</term>
+ <listitem>
+ <para>Disables verification completely.
+ This option should only be used for
+ testing.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>partial_chain</term>
+ <listitem>
+ <para>Allow verification to succeed even
+ if a <replaceable>complete</replaceable>
+ chain cannot be built to a self-signed
+ trust-anchor, provided it is possible to
+ construct a chain to a trusted certificate
+ that might not be self-signed.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>ocsp_default_responder=URL</term>
+ <listitem>
+ <para>Sets the OCSP default responder
+ which should be used instead of the one
+ mentioned in the certificate. URL must
+ be replaced with the URL of the OCSP
+ default responder e.g.
+ http://example.com:80/ocsp.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ ocsp_default_responder_signing_cert=NAME</term>
+ <listitem>
+ <para>This option is
+ currently ignored. All needed
+ certificates must be available in the
+ PEM file given by
+ pam_cert_db_path.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>crl_file=/PATH/TO/CRL/FILE</term>
+ <listitem>
+ <para>Use the
+ Certificate Revocation List (CRL) from
+ the given file during the verification
+ of the certificate. The CRL must be
+ given in PEM format, see
+ <citerefentry>
+ <refentrytitle>crl</refentrytitle>
+ <manvolnum>1ssl</manvolnum>
+ </citerefentry>
+ for details.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>soft_crl</term>
+ <listitem>
+ <para>
+ If a Certificate Revocation List (CRL)
+ is expired ignore the CRL checks for the
+ related certificates. This option should
+ be used to allow authentication when the
+ system is offline and the CRL cannot be
+ renewed.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </para>
+ <para>
+ Unknown options are reported but ignored.
+ </para>
+ <para>
+ Default: not set, i.e. do not restrict
+ certificate verification
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>disable_netlink (boolean)</term>
+ <listitem>
+ <para>
+ SSSD hooks into the netlink interface to
+ monitor changes to routes, addresses, links
+ and trigger certain actions.
+ </para>
+ <para>
+ The SSSD state changes caused by netlink
+ events may be undesirable and can be disabled
+ by setting this option to 'true'
+ </para>
+ <para>
+ Default: false (netlink changes are detected)
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry condition="with_files_provider">
+ <term>enable_files_domain (boolean)</term>
+ <listitem>
+ <para>
+ When this option is enabled, SSSD
+ prepends an implicit domain with
+ <quote>id_provider=files</quote> before
+ any explicitly configured domains.
+ </para>
+ <para>
+ Default: false
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>domain_resolution_order</term>
+ <listitem>
+ <para>
+ Comma separated list of domains and subdomains
+ representing the lookup order that will be
+ followed.
+ The list doesn't have to include all possible
+ domains as the missing domains will be looked
+ up based on the order they're presented in the
+ <quote>domains</quote> configuration option.
+ The subdomains which are not listed as part of
+ <quote>lookup_order</quote> will be looked up
+ in a random order for each parent domain.
+ </para>
+ <para>
+ Please, note that when this option is set the
+ output format of all commands is always
+ fully-qualified even when using short names
+ for input
+ <phrase condition="with_files_provider">
+ , for all users but the ones managed
+ by the files provider
+ </phrase>.
+ In case the administrator wants the output not
+ fully-qualified, the full_name_format option
+ can be used as shown below:
+ <quote>full_name_format=%1$s</quote>
+ However, keep in mind that during login, login
+ applications often canonicalize the username by
+ calling
+ <citerefentry>
+ <refentrytitle>getpwnam</refentrytitle>
+ <manvolnum>3</manvolnum>
+ </citerefentry>
+ which, if a shortname is returned for a
+ qualified input (while trying to reach a user
+ which exists in multiple domains) might
+ re-route the login attempt into the domain
+ which uses shortnames, making this workaround
+ totally not recommended in cases where
+ usernames may overlap between domains.
+ </para>
+ <para>
+ Default: Not set
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>implicit_pac_responder (boolean)</term>
+ <listitem>
+ <para>
+ The PAC responder is enabled automatically for
+ the IPA and AD provider to evaluate and check
+ the PAC. If it has to be disabled
+ set this option to 'false'.
+ </para>
+ <para>
+ Default: true
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>core_dumpable (boolean)</term>
+ <listitem>
+ <para>
+ This option can be used for general system
+ hardening: setting it to 'false' forbids core
+ dumps for all SSSD processes to avoid
+ leaking plain text passwords. See man page
+ prctl:PR_SET_DUMPABLE for details.
+ </para>
+ <para>
+ Default: true
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry condition="build_passkey">
+ <term>passkey_verification (string)</term>
+ <listitem>
+ <para>
+ With this parameter the passkey verification
+ can be tuned with a comma separated list of
+ options. Supported options are:
+ <variablelist>
+ <varlistentry>
+ <term>user_verification (boolean)</term>
+ <listitem>
+ <para> Enable or disable the user
+ verification (i.e. PIN, fingerprint)
+ during authentication. If enabled, the
+ PIN will always be requested.
+ </para>
+ <para>
+ The default is that the key settings
+ decide what to do. In the IPA or
+ kerberos pre-authentication case,
+ this value will be overwritten by the
+ server.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </para>
+ </refsect2>
+
+ </refsect1>
+
+ <refsect1 id='services-sections'>
+ <title>SERVICES SECTIONS</title>
+ <para>
+ Settings that can be used to configure different services
+ are described in this section. They should reside in the
+ [<replaceable>$NAME</replaceable>] section, for example,
+ for NSS service, the section would be <quote>[nss]</quote>
+ </para>
+
+ <refsect2 id='general'>
+ <title>General service configuration options</title>
+ <para>
+ These options can be used to configure any service.
+ </para>
+ <variablelist>
+ <varlistentry>
+ <term>reconnection_retries (integer)</term>
+ <listitem>
+ <para>
+ Number of times services should attempt to
+ reconnect in the event of a Data Provider
+ crash or restart before they give up
+ </para>
+ <para>
+ Default: 3
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>fd_limit</term>
+ <listitem>
+ <para>
+ This option specifies the maximum number of file
+ descriptors that may be opened at one time by this
+ SSSD process. On systems where SSSD is granted the
+ CAP_SYS_RESOURCE capability, this will be an
+ absolute setting. On systems without this
+ capability, the resulting value will be the lower
+ value of this or the limits.conf "hard" limit.
+ </para>
+ <para>
+ Default: 8192 (or limits.conf "hard" limit)
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>client_idle_timeout</term>
+ <listitem>
+ <para>
+ This option specifies the number of seconds that
+ a client of an SSSD process can hold onto a file
+ descriptor without communicating on it. This value
+ is limited in order to avoid resource exhaustion
+ on the system. The timeout can't be shorter than
+ 10 seconds. If a lower value is configured, it
+ will be adjusted to 10 seconds.
+ </para>
+ <para>
+ Default: 60, KCM: 300
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>offline_timeout (integer)</term>
+ <listitem>
+ <para>
+ When SSSD switches to offline mode the amount of
+ time before it tries to go back online will
+ increase based upon the time spent disconnected.
+ By default SSSD uses incremental behaviour to
+ calculate delay in between retries.
+ So, the wait time for a given retry will be longer
+ than the wait time for the previous ones.
+ After each unsuccessful attempt to go online,
+ the new interval is recalculated by the following:
+ </para>
+ <para>
+ new_delay = Minimum(old_delay * 2, offline_timeout_max) + random[0...offline_timeout_random_offset]
+ </para>
+ <para>
+ The offline_timeout default value is 60.
+ The offline_timeout_max default value is 3600.
+ The offline_timeout_random_offset default value is 30.
+ The end result is amount of seconds before next retry.
+ </para>
+ <para>
+ Note that the maximum length of each interval
+ is defined by offline_timeout_max (apart of random part).
+ </para>
+ <para>
+ Default: 60
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>offline_timeout_max (integer)</term>
+ <listitem>
+ <para>
+ Controls by how much the time between attempts to go
+ online can be incremented following unsuccessful
+ attempts to go online.
+ </para>
+ <para>
+ A value of 0 disables the incrementing behaviour.
+ </para>
+ <para>
+ The value of this parameter should be set in correlation
+ to offline_timeout parameter value.
+ </para>
+ <para>
+ With offline_timeout set to 60 (default value) there is no point
+ in setting offlinet_timeout_max to less than 120 as it will
+ saturate instantly. General rule here should be to set
+ offline_timeout_max to at least 4 times offline_timeout.
+ </para>
+ <para>
+ Although a value between 0 and offline_timeout may be
+ specified, it has the effect of overriding the
+ offline_timeout value so is of little use.
+ </para>
+ <para>
+ Default: 3600
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>offline_timeout_random_offset (integer)</term>
+ <listitem>
+ <para>
+ When SSSD is in offline mode it keeps probing
+ backend servers in specified time intervals:
+ </para>
+ <para>
+ new_delay = Minimum(old_delay * 2, offline_timeout_max) + random[0...offline_timeout_random_offset]
+ </para>
+ <para>
+ This parameter controls the value of the random offset
+ used for the above equation. Final random_offset value
+ will be random number in range:
+ </para>
+ <para>
+ [0 - offline_timeout_random_offset]
+ </para>
+ <para>
+ A value of 0 disables the random offset addition.
+ </para>
+ <para>
+ Default: 30
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>responder_idle_timeout</term>
+ <listitem>
+ <para>
+ This option specifies the number of seconds that
+ an SSSD responder process can be up without being
+ used. This value is limited in order to avoid
+ resource exhaustion on the system.
+ The minimum acceptable value for this option is 60
+ seconds.
+ Setting this option to 0 (zero) means that no
+ timeout will be set up to the responder.
+
+ This option only has effect when SSSD is built with
+ systemd support and when services are either socket
+ or D-Bus activated.
+ </para>
+ <para>
+ Default: 300
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>cache_first</term>
+ <listitem>
+ <para>
+ This option specifies whether the responder should
+ query all caches before querying the Data Providers.
+ </para>
+ <para condition="with_files_provider">
+ Default: false
+ </para>
+ <para condition="without_files_provider">
+ Default: true
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect2>
+
+ <refsect2 id='NSS'>
+ <title>NSS configuration options</title>
+ <para>
+ These options can be used to configure the
+ Name Service Switch (NSS) service.
+ </para>
+ <variablelist>
+ <varlistentry>
+ <term>enum_cache_timeout (integer)</term>
+ <listitem>
+ <para>
+ How many seconds should nss_sss cache enumerations
+ (requests for info about all users)
+ </para>
+ <para>
+ Default: 120
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>entry_cache_nowait_percentage (integer)</term>
+ <listitem>
+ <para>
+ The entry cache can be set to automatically update
+ entries in the background if they are requested
+ beyond a percentage of the entry_cache_timeout
+ value for the domain.
+ </para>
+ <para>
+ For example, if the domain's entry_cache_timeout
+ is set to 30s and entry_cache_nowait_percentage is
+ set to 50 (percent), entries that come in after 15
+ seconds past the last cache update will be
+ returned immediately, but the SSSD will go and
+ update the cache on its own, so that future
+ requests will not need to block waiting for a
+ cache update.
+ </para>
+ <para>
+ Valid values for this option are 0-99 and
+ represent a percentage of the entry_cache_timeout
+ for each domain. For performance reasons, this
+ percentage will never reduce the nowait timeout to
+ less than 10 seconds.
+ (0 disables this feature)
+ </para>
+ <para>
+ Default: 50
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>entry_negative_timeout (integer)</term>
+ <listitem>
+ <para>
+ Specifies for how many seconds nss_sss should cache
+ negative cache hits (that is, queries for
+ invalid database entries, like nonexistent ones)
+ before asking the back end again.
+ </para>
+ <para>
+ Default: 15
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>local_negative_timeout (integer)</term>
+ <listitem>
+ <para>
+ Specifies for how many seconds nss_sss should keep
+ local users and groups in negative cache before
+ trying to look it up in the back end again. Setting
+ the option to 0 disables this feature.
+ </para>
+ <para>
+ Default: 14400 (4 hours)
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>filter_users, filter_groups (string)</term>
+ <listitem>
+ <para>
+ Exclude certain users or groups from being fetched
+ from the sss NSS database. This is particularly
+ useful for system accounts. This option can also
+ be set per-domain or include fully-qualified names
+ to filter only users from the particular domain or
+ by a user principal name (UPN).
+ </para>
+ <para>
+ NOTE: The filter_groups option doesn't affect
+ inheritance of nested group members, since
+ filtering happens after they are propagated for
+ returning via NSS. E.g. a group having a member
+ group filtered out will still have the member
+ users of the latter listed.
+ </para>
+ <para>
+ Default: root
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>filter_users_in_groups (bool)</term>
+ <listitem>
+ <para>
+ If you want filtered user still be group members
+ set this option to false.
+ </para>
+ <para>
+ Default: true
+ </para>
+ </listitem>
+ </varlistentry>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="include/override_homedir.xml" />
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="include/homedir_substring.xml" />
+ <varlistentry>
+ <term>fallback_homedir (string)</term>
+ <listitem>
+ <para>
+ Set a default template for a user's home directory
+ if one is not specified explicitly by the domain's
+ data provider.
+ </para>
+ <para>
+ The available values for this option are the same
+ as for override_homedir.
+ </para>
+ <para>
+ example:
+ <programlisting>
+fallback_homedir = /home/%u
+ </programlisting>
+ </para>
+ <para>
+ Default: not set (no substitution for unset home
+ directories)
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>override_shell (string)</term>
+ <listitem>
+ <para>
+ Override the login shell for all users. This
+ option supersedes any other shell options if
+ it takes effect and can be set either in the
+ [nss] section or per-domain.
+ </para>
+ <para>
+ Default: not set (SSSD will use the value
+ retrieved from LDAP)
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>allowed_shells (string)</term>
+ <listitem>
+ <para>
+ Restrict user shell to one of the listed values. The order of evaluation is:
+ </para>
+ <para>
+ 1. If the shell is present in
+ <quote>/etc/shells</quote>, it is used.
+ </para>
+ <para>
+ 2. If the shell is in the allowed_shells list but
+ not in <quote>/etc/shells</quote>, use the
+ value of the shell_fallback parameter.
+ </para>
+ <para>
+ 3. If the shell is not in the allowed_shells list and
+ not in <quote>/etc/shells</quote>, a nologin shell
+ is used.
+ </para>
+ <para>
+ The wildcard (*) can be used to allow any shell.
+ </para>
+ <para>
+ The (*) is useful if you want to use
+ shell_fallback in case that user's shell is not
+ in <quote>/etc/shells</quote> and maintaining list
+ of all allowed shells in allowed_shells would be
+ to much overhead.
+ </para>
+ <para>
+ An empty string for shell is passed as-is to libc.
+ </para>
+ <para>
+ The <quote>/etc/shells</quote> is only read on SSSD start up, which means that
+ a restart of the SSSD is required in case a new shell is installed.
+ </para>
+ <para>
+ Default: Not set. The user shell is automatically used.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>vetoed_shells (string)</term>
+ <listitem>
+ <para>
+ Replace any instance of these shells with the shell_fallback
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>shell_fallback (string)</term>
+ <listitem>
+ <para>
+ The default shell to use if an allowed shell is not
+ installed on the machine.
+ </para>
+ <para>
+ Default: /bin/sh
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>default_shell</term>
+ <listitem>
+ <para>
+ The default shell to use if the provider does
+ not return one during lookup. This option can
+ be specified globally in the [nss] section
+ or per-domain.
+ </para>
+ <para>
+ Default: not set (Return NULL if no shell is
+ specified and rely on libc to substitute something
+ sensible when necessary, usually /bin/sh)
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>get_domains_timeout (int)</term>
+ <listitem>
+ <para>
+ Specifies time in seconds for which the list of
+ subdomains will be considered valid.
+ </para>
+ <para>
+ Default: 60
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>memcache_timeout (integer)</term>
+ <listitem>
+ <para>
+ Specifies time in seconds for which records
+ in the in-memory cache will be valid. Setting this
+ option to zero will disable the in-memory cache.
+ </para>
+ <para>
+ Default: 300
+ </para>
+ <para>
+ WARNING: Disabling the in-memory cache will
+ have significant negative impact on SSSD's
+ performance and should only be used for
+ testing.
+ </para>
+ <para>
+ NOTE: If the environment variable
+ SSS_NSS_USE_MEMCACHE is set to "NO", client
+ applications will not use the fast in-memory
+ cache.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>memcache_size_passwd (integer)</term>
+ <listitem>
+ <para>
+ Size (in megabytes) of the data table allocated inside
+ fast in-memory cache for passwd requests.
+ Setting the size to 0 will disable the passwd
+ in-memory cache.
+ </para>
+ <para>
+ Default: 8
+ </para>
+ <para>
+ WARNING: Disabled or too small in-memory cache can
+ have significant negative impact on SSSD's
+ performance.
+ </para>
+ <para>
+ NOTE: If the environment variable
+ SSS_NSS_USE_MEMCACHE is set to "NO", client
+ applications will not use the fast in-memory
+ cache.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>memcache_size_group (integer)</term>
+ <listitem>
+ <para>
+ Size (in megabytes) of the data table allocated inside
+ fast in-memory cache for group requests.
+ Setting the size to 0 will disable the group
+ in-memory cache.
+ </para>
+ <para>
+ Default: 6
+ </para>
+ <para>
+ WARNING: Disabled or too small in-memory cache can
+ have significant negative impact on SSSD's
+ performance.
+ </para>
+ <para>
+ NOTE: If the environment variable
+ SSS_NSS_USE_MEMCACHE is set to "NO", client
+ applications will not use the fast in-memory
+ cache.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>memcache_size_initgroups (integer)</term>
+ <listitem>
+ <para>
+ Size (in megabytes) of the data table allocated inside
+ fast in-memory cache for initgroups requests.
+ Setting the size to 0 will disable the initgroups
+ in-memory cache.
+ </para>
+ <para>
+ Default: 10
+ </para>
+ <para>
+ WARNING: Disabled or too small in-memory cache can
+ have significant negative impact on SSSD's
+ performance.
+ </para>
+ <para>
+ NOTE: If the environment variable
+ SSS_NSS_USE_MEMCACHE is set to "NO", client
+ applications will not use the fast in-memory
+ cache.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>memcache_size_sid (integer)</term>
+ <listitem>
+ <para>
+ Size (in megabytes) of the data table allocated inside
+ fast in-memory cache for SID related requests.
+ Only SID-by-ID and ID-by-SID requests are currently
+ cached in fast in-memory cache.
+ Setting the size to 0 will disable the SID
+ in-memory cache.
+ </para>
+ <para>
+ Default: 6
+ </para>
+ <para>
+ WARNING: Disabled or too small in-memory cache can
+ have significant negative impact on SSSD's
+ performance.
+ </para>
+ <para>
+ NOTE: If the environment variable
+ SSS_NSS_USE_MEMCACHE is set to "NO", client
+ applications will not use the fast in-memory
+ cache.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>user_attributes (string)</term>
+ <listitem>
+ <para>
+ Some of the additional NSS responder requests can
+ return more attributes than just the POSIX ones
+ defined by the NSS interface. The list of attributes
+ is controlled by this option. It is handled the same
+ way as the <quote>user_attributes</quote> option of
+ the InfoPipe responder (see
+ <citerefentry>
+ <refentrytitle>sssd-ifp</refentrytitle>
+ <manvolnum>5</manvolnum>
+ </citerefentry>
+ for details) but with no default values.
+ </para>
+ <para>
+ To make configuration more easy the NSS responder
+ will check the InfoPipe option if it is not set for
+ the NSS responder.
+ </para>
+ <para>
+ Default: not set, fallback to InfoPipe option
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>pwfield (string)</term>
+ <listitem>
+ <para>
+ The value that NSS operations that return
+ users or groups will return for the
+ <quote>password</quote> field.
+ </para>
+ <para>
+ Default: <quote>*</quote>
+ </para>
+ <para>
+ Note: This option can also be set per-domain which
+ overwrites the value in [nss] section.
+ </para>
+ <para>
+ Default: <quote>not set</quote> (remote domains),
+ <phrase condition="with_files_provider">
+ <quote>x</quote> (the files domain),
+ </phrase>
+ <quote>x</quote> (proxy domain with nss_files
+ and sssd-shadowutils target)
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect2>
+ <refsect2 id='PAM'>
+ <title>PAM configuration options</title>
+ <para>
+ These options can be used to configure the
+ Pluggable Authentication Module (PAM) service.
+ </para>
+ <variablelist>
+ <varlistentry>
+ <term>offline_credentials_expiration (integer)</term>
+ <listitem>
+ <para>
+ If the authentication provider is offline, how
+ long should we allow cached logins (in days since
+ the last successful online login).
+ </para>
+ <para>
+ Default: 0 (No limit)
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>offline_failed_login_attempts (integer)</term>
+ <listitem>
+ <para>
+ If the authentication provider is offline, how
+ many failed login attempts are allowed.
+ </para>
+ <para>
+ Default: 0 (No limit)
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>offline_failed_login_delay (integer)</term>
+ <listitem>
+ <para>
+ The time in minutes which has to pass after
+ offline_failed_login_attempts has been reached
+ before a new login attempt is possible.
+ </para>
+ <para>
+ If set to 0 the user cannot authenticate offline if
+ offline_failed_login_attempts has been reached. Only
+ a successful online authentication can enable
+ offline authentication again.
+ </para>
+ <para>
+ Default: 5
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>pam_verbosity (integer)</term>
+ <listitem>
+ <para>
+ Controls what kind of messages are shown to the user
+ during authentication. The higher the number to more
+ messages are displayed.
+ </para>
+ <para>
+ Currently sssd supports the following values:
+ </para>
+ <para>
+ <emphasis>0</emphasis>: do not show any message
+ </para>
+ <para>
+ <emphasis>1</emphasis>: show only important
+ messages
+ </para>
+ <para>
+ <emphasis>2</emphasis>: show informational messages
+ </para>
+ <para>
+ <emphasis>3</emphasis>: show all messages and debug
+ information
+ </para>
+ <para>
+ Default: 1
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>pam_response_filter (string)</term>
+ <listitem>
+ <para>
+ A comma separated list of strings which allows to
+ remove (filter) data sent by the PAM responder to
+ pam_sss PAM module. There are different kind of
+ responses sent to pam_sss e.g. messages displayed to
+ the user or environment variables which should be
+ set by pam_sss.
+ </para>
+ <para>
+ While messages already can be controlled with the
+ help of the pam_verbosity option this option allows
+ to filter out other kind of responses as well.
+ </para>
+ <para>
+ Currently the following filters are supported:
+ <variablelist>
+ <varlistentry><term>ENV</term>
+ <listitem><para>Do not send any environment
+ variables to any service.</para></listitem>
+ </varlistentry>
+ <varlistentry><term>ENV:var_name</term>
+ <listitem><para>Do not send environment
+ variable var_name to any
+ service.</para></listitem>
+ </varlistentry>
+ <varlistentry><term>ENV:var_name:service</term>
+ <listitem><para>Do not send environment
+ variable var_name to
+ service.</para></listitem>
+ </varlistentry>
+ </variablelist>
+ </para>
+ <para>
+ The list of strings can either be the list of
+ filters which would set this list of filters and
+ overwrite the defaults. Or each element of the list
+ can be prefixed by a '+' or '-' character which
+ would add the filter to the existing default or
+ remove it from the defaults, respectively. Please
+ note that either all list elements must have a '+'
+ or '-' prefix or none. It is considered as an error
+ to mix both styles.
+ </para>
+ <para>
+ Default: ENV:KRB5CCNAME:sudo, ENV:KRB5CCNAME:sudo-i
+ </para>
+ <para>
+ Example: -ENV:KRB5CCNAME:sudo-i will remove the
+ filter from the default list
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>pam_id_timeout (integer)</term>
+ <listitem>
+ <para>
+ For any PAM request while SSSD is online, the SSSD will
+ attempt to immediately update the cached identity
+ information for the user in order to ensure that
+ authentication takes place with the latest information.
+ </para>
+ <para>
+ A complete PAM conversation may perform multiple PAM
+ requests, such as account management and session
+ opening. This option controls (on a
+ per-client-application basis) how long (in seconds) we
+ can cache the identity information to avoid excessive
+ round-trips to the identity provider.
+ </para>
+ <para>
+ Default: 5
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>pam_pwd_expiration_warning (integer)</term>
+ <listitem>
+ <para>
+ Display a warning N days before the password expires.
+ </para>
+ <para>
+ Please note that the backend server has to provide
+ information about the expiration time of the password.
+ If this information is missing, sssd cannot display a
+ warning.
+ </para>
+ <para>
+ If zero is set, then this filter is not applied,
+ i.e. if the expiration warning was received from
+ backend server, it will automatically be displayed.
+ </para>
+ <para>
+ This setting can be overridden by setting
+ <emphasis>pwd_expiration_warning</emphasis>
+ for a particular domain.
+ </para>
+ <para>
+ Default: 0
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>get_domains_timeout (int)</term>
+ <listitem>
+ <para>
+ Specifies time in seconds for which the list of
+ subdomains will be considered valid.
+ </para>
+ <para>
+ Default: 60
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>pam_trusted_users (string)</term>
+ <listitem>
+ <para>
+ Specifies the comma-separated list of UID
+ values or user names that are allowed to run
+ PAM conversations against trusted domains.
+ Users not included in this list can only access
+ domains marked as public with
+ <quote>pam_public_domains</quote>.
+ User names are resolved to UIDs at
+ startup.
+ </para>
+ <para>
+ Default: All users are considered trusted
+ by default
+ </para>
+ <para>
+ Please note that UID 0 is always allowed to access
+ the PAM responder even in case it is not in the
+ pam_trusted_users list.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>pam_public_domains (string)</term>
+ <listitem>
+ <para>
+ Specifies the comma-separated list of domain names
+ that are accessible even to untrusted users.
+ </para>
+ <para>
+ Two special values for pam_public_domains option
+ are defined:
+ </para>
+ <para>
+ all (Untrusted users are allowed to access
+ all domains in PAM responder.)
+ </para>
+ <para>
+ none (Untrusted users are not allowed to access
+ any domains PAM in responder.)
+ </para>
+ <para>
+ Default: none
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>pam_account_expired_message (string)</term>
+ <listitem>
+ <para>
+ Allows a custom expiration message to be set,
+ replacing the default 'Permission denied'
+ message.
+ </para>
+ <para>
+ Note: Please be aware that message is only
+ printed for the SSH service unless pam_verbosity
+ is set to 3 (show all messages and debug
+ information).
+ </para>
+ <para>
+ example:
+ <programlisting>
+pam_account_expired_message = Account expired, please contact help desk.
+ </programlisting>
+ </para>
+ <para>
+ Default: none
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>pam_account_locked_message (string)</term>
+ <listitem>
+ <para>
+ Allows a custom lockout message to be set,
+ replacing the default 'Permission denied'
+ message.
+ </para>
+ <para>
+ example:
+ <programlisting>
+pam_account_locked_message = Account locked, please contact help desk.
+ </programlisting>
+ </para>
+ <para>
+ Default: none
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry condition="build_passkey">
+ <term>pam_passkey_auth (bool)</term>
+ <listitem>
+ <para>
+ Enable passkey device based authentication.
+ </para>
+ <para>
+ Default: False
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry condition="build_passkey">
+ <term>passkey_debug_libfido2 (bool)</term>
+ <listitem>
+ <para>
+ Enable libfido2 library debug messages.
+ </para>
+ <para>
+ Default: False
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>pam_cert_auth (bool)</term>
+ <listitem>
+ <para>
+ Enable certificate based Smartcard authentication.
+ Since this requires additional communication with
+ the Smartcard which will delay the authentication
+ process this option is disabled by default.
+ </para>
+ <para>
+ Default: False
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>pam_cert_db_path (string)</term>
+ <listitem>
+ <para>
+ The path to the certificate database.
+ </para>
+ <para>
+ Default:
+ <itemizedlist>
+ <listitem><para>/etc/sssd/pki/sssd_auth_ca_db.pem
+ (path to a file with trusted CA
+ certificates in PEM format)
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>pam_cert_verification (string)</term>
+ <listitem>
+ <para>
+ With this parameter the PAM certificate verification
+ can be tuned with a comma separated list of
+ options that override the
+ <quote>certificate_verification</quote> value in
+ <quote>[sssd]</quote> section.
+ Supported options are the same of
+ <quote>certificate_verification</quote>.
+ </para>
+ <para>
+ example:
+ <programlisting>
+pam_cert_verification = partial_chain
+ </programlisting>
+ </para>
+ <para>
+ Default: not set, i.e. use default
+ <quote>certificate_verification</quote> option defined
+ in <quote>[sssd]</quote> section.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>p11_child_timeout (integer)</term>
+ <listitem>
+ <para>
+ How many seconds will pam_sss wait for
+ p11_child to finish.
+ </para>
+ <para>
+ Default: 10
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry condition="build_passkey">
+ <term>passkey_child_timeout (integer)</term>
+ <listitem>
+ <para>
+ How many seconds will the PAM responder
+ wait for passkey_child to finish.
+ </para>
+ <para>
+ Default: 15
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>pam_app_services (string)</term>
+ <listitem>
+ <para>
+ Which PAM services are permitted to contact
+ domains of type <quote>application</quote>
+ </para>
+ <para>
+ Default: Not set
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>pam_p11_allowed_services (integer)</term>
+ <listitem>
+ <para>
+ A comma-separated list of PAM service names for
+ which it will be allowed to use Smartcards.
+ </para>
+ <para>
+ It is possible to add another PAM service name to
+ the default set by using
+ <quote>+service_name</quote> or to explicitly
+ remove a PAM service name from the default set by
+ using <quote>-service_name</quote>. For example,
+ in order to replace a default PAM service name for
+ authentication with Smartcards
+ (e.g. <quote>login</quote>) with a custom PAM
+ service name (e.g. <quote>my_pam_service</quote>),
+ you would use the following configuration:
+ <programlisting>
+pam_p11_allowed_services = +my_pam_service, -login
+ </programlisting>
+ </para>
+ <para>
+ Default: the default set of PAM service names
+ includes:
+ <itemizedlist>
+ <listitem>
+ <para>
+ login
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ su
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ su-l
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ gdm-smartcard
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ gdm-password
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ kdm
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ sudo
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ sudo-i
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ gnome-screensaver
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>p11_wait_for_card_timeout (integer)</term>
+ <listitem>
+ <para>
+ If Smartcard authentication is required how many
+ extra seconds in addition to p11_child_timeout
+ should the PAM responder wait until a Smartcard is
+ inserted.
+ </para>
+ <para>
+ Default: 60
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>p11_uri (string)</term>
+ <listitem>
+ <para>
+ PKCS#11 URI (see RFC-7512 for details) which can be
+ used to restrict the selection of devices used for
+ Smartcard authentication. By default SSSD's
+ p11_child will search for a PKCS#11 slot (reader)
+ where the 'removable' flags is set and read the
+ certificates from the inserted token from the first
+ slot found. If multiple readers are connected
+ p11_uri can be used to tell p11_child to use a
+ specific reader.
+ </para>
+ <para>
+ Example:
+ <programlisting>
+p11_uri = pkcs11:slot-description=My%20Smartcard%20Reader
+ </programlisting>
+ or
+ <programlisting>
+p11_uri = pkcs11:library-description=OpenSC%20smartcard%20framework;slot-id=2
+ </programlisting>
+ To find suitable URI please check the debug output
+ of p11_child. As an alternative the GnuTLS utility
+ 'p11tool' with e.g. the '--list-all' will show
+ PKCS#11 URIs as well.
+ </para>
+ <para>
+ Default: none
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>pam_initgroups_scheme</term>
+ <listitem>
+ <para>
+ The PAM responder can force an online lookup to get
+ the current group memberships of the user trying to
+ log in. This option controls when this should be
+ done and the following values are allowed:
+ <variablelist>
+ <varlistentry><term>always</term>
+ <listitem><para>Always do an online lookup,
+ please note that pam_id_timeout still
+ applies</para></listitem>
+ </varlistentry>
+ <varlistentry><term>no_session</term>
+ <listitem><para>Only do an online
+ lookup if there is no active session of the
+ user, i.e. if the user is currently not logged
+ in</para></listitem>
+ </varlistentry>
+ <varlistentry><term>never</term>
+ <listitem><para>Never force an online lookup,
+ use the data from the cache as long as they are
+ not expired</para></listitem>
+ </varlistentry>
+ </variablelist>
+ </para>
+ <para>
+ Default: no_session
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>pam_gssapi_services</term>
+ <listitem>
+ <para>
+ Comma separated list of PAM services that are
+ allowed to try GSSAPI authentication using
+ pam_sss_gss.so module.
+ </para>
+ <para>
+ To disable GSSAPI authentication, set this option
+ to <quote>-</quote> (dash).
+ </para>
+ <para>
+ Note: This option can also be set per-domain which
+ overwrites the value in [pam] section. It can also
+ be set for trusted domain which overwrites the value
+ in the domain section.
+ </para>
+ <para>
+ Example:
+ <programlisting>
+pam_gssapi_services = sudo, sudo-i
+ </programlisting>
+ </para>
+ <para>
+ Default: - (GSSAPI authentication is disabled)
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>pam_gssapi_check_upn</term>
+ <listitem>
+ <para>
+ If True, SSSD will require that the Kerberos user
+ principal that successfully authenticated through
+ GSSAPI can be associated with the user who is being
+ authenticated. Authentication will fail if the check
+ fails.
+ </para>
+ <para>
+ If False, every user that is able to obtained
+ required service ticket will be authenticated.
+ </para>
+ <para>
+ Note: This option can also be set per-domain which
+ overwrites the value in [pam] section. It can also
+ be set for trusted domain which overwrites the value
+ in the domain section.
+ </para>
+ <para>
+ Default: True
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>pam_gssapi_indicators_map</term>
+ <listitem>
+ <para>
+ Comma separated list of authentication indicators required
+ to be present in a Kerberos ticket to access a PAM service
+ that is allowed to try GSSAPI authentication using
+ pam_sss_gss.so module.
+ </para>
+ <para>
+ Each element of the list can be either an authentication indicator
+ name or a pair <quote>service:indicator</quote>. Indicators not
+ prefixed with the PAM service name will be required to access any
+ PAM service configured to be used with
+ <option>pam_gssapi_services</option>. A resulting list of indicators
+ per PAM service is then checked against indicators in the Kerberos
+ ticket during authentication by pam_sss_gss.so. Any indicator from the
+ ticket that matches the resulting list of indicators for the PAM service
+ would grant access. If none of the indicators in the list match, access
+ will be denied. If the resulting list of indicators for the PAM service
+ is empty, the check will not prevent the access.
+ </para>
+ <para>
+ To disable GSSAPI authentication indicator check, set this option
+ to <quote>-</quote> (dash). To disable the check for a specific PAM
+ service, add <quote>service:-</quote>.
+ </para>
+ <para>
+ Note: This option can also be set per-domain which
+ overwrites the value in [pam] section. It can also
+ be set for trusted domain which overwrites the value
+ in the domain section.
+ </para>
+ <para>
+ Following authentication indicators are supported by IPA Kerberos deployments:
+ <itemizedlist>
+ <listitem>
+ <para>pkinit -- pre-authentication using X.509 certificates -- whether stored in files or on smart cards.</para>
+ </listitem>
+ <listitem>
+ <para>hardened -- SPAKE pre-authentication or any pre-authentication wrapped in a FAST channel.</para>
+ </listitem>
+ <listitem>
+ <para>radius -- pre-authentication with the help of a RADIUS server.</para>
+ </listitem>
+ <listitem>
+ <para>otp -- pre-authentication using integrated two-factor authentication (2FA or one-time password, OTP) in IPA.</para>
+ </listitem>
+ <listitem>
+ <para>idp -- pre-authentication using external identity provider.</para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ Example: to require access to SUDO services only
+ for users which obtained their Kerberos tickets
+ with a X.509 certificate pre-authentication
+ (PKINIT), set
+ <programlisting>
+pam_gssapi_indicators_map = sudo:pkinit, sudo-i:pkinit
+ </programlisting>
+ </para>
+ <para>
+ Default: not set (use of authentication indicators is not required)
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect2>
+
+ <refsect2 id='SUDO' condition="with_sudo">
+ <title>SUDO configuration options</title>
+ <para>
+ These options can be used to configure the sudo service.
+ The detailed instructions for configuration of
+ <citerefentry>
+ <refentrytitle>sudo</refentrytitle>
+ <manvolnum>8</manvolnum>
+ </citerefentry> to work with
+ <citerefentry>
+ <refentrytitle>sssd</refentrytitle>
+ <manvolnum>8</manvolnum>
+ </citerefentry> are in the manual page
+ <citerefentry>
+ <refentrytitle>sssd-sudo</refentrytitle>
+ <manvolnum>5</manvolnum>
+ </citerefentry>.
+ </para>
+ <variablelist>
+ <varlistentry>
+ <term>sudo_timed (bool)</term>
+ <listitem>
+ <para>
+ Whether or not to evaluate the sudoNotBefore
+ and sudoNotAfter attributes that implement
+ time-dependent sudoers entries.
+ </para>
+ <para>
+ Default: false
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ <variablelist>
+ <varlistentry>
+ <term>sudo_threshold (integer)</term>
+ <listitem>
+ <para>
+ Maximum number of expired rules that can be
+ refreshed at once. If number of expired rules
+ is below threshold, those rules are refreshed
+ with <quote>rules refresh</quote> mechanism. If
+ the threshold is exceeded a
+ <quote>full refresh</quote> of sudo rules is
+ triggered instead. This threshold number also
+ applies to IPA sudo command and command group
+ searches.
+ </para>
+ <para>
+ Default: 50
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect2>
+
+ <refsect2 id='AUTOFS' condition="with_autofs">
+ <title>AUTOFS configuration options</title>
+ <para>
+ These options can be used to configure the autofs service.
+ </para>
+ <variablelist>
+ <varlistentry>
+ <term>autofs_negative_timeout (integer)</term>
+ <listitem>
+ <para>
+ Specifies for how many seconds should the
+ autofs responder negative cache hits
+ (that is, queries for invalid map entries,
+ like nonexistent ones) before asking the back
+ end again.
+ </para>
+ <para>
+ Default: 15
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="include/autofs_restart.xml" />
+ </refsect2>
+
+ <refsect2 id='SSH' condition="with_ssh">
+ <title>SSH configuration options</title>
+ <para>
+ These options can be used to configure the SSH service.
+ </para>
+ <variablelist>
+ <varlistentry>
+ <term>ssh_hash_known_hosts (bool)</term>
+ <listitem>
+ <para>
+ Whether or not to hash host names and addresses in
+ the managed known_hosts file.
+ </para>
+ <para>
+ Default: false
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>ssh_known_hosts_timeout (integer)</term>
+ <listitem>
+ <para>
+ How many seconds to keep a host in the managed
+ known_hosts file after its host keys were requested.
+ </para>
+ <para>
+ Default: 180
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>ssh_use_certificate_keys (bool)</term>
+ <listitem>
+ <para>
+ If set to true the
+ <command>sss_ssh_authorizedkeys</command> will
+ return ssh keys derived from the public key of X.509
+ certificates stored in the user entry as well. See
+ <citerefentry>
+ <refentrytitle>sss_ssh_authorizedkeys</refentrytitle>
+ <manvolnum>1</manvolnum>
+ </citerefentry> for details.
+ </para>
+ <para>
+ Default: true
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>ssh_use_certificate_matching_rules (string)</term>
+ <listitem>
+ <para>
+ By default the ssh responder will use all available
+ certificate matching rules to filter the
+ certificates so that ssh keys are only derived from
+ the matching ones. With this option the used rules
+ can be restricted with a comma separated list of
+ mapping and matching rule names. All other rules
+ will be ignored.
+ </para>
+ <para>
+ There are two special key words 'all_rules' and
+ 'no_rules' which will enable all or no rules,
+ respectively. The latter means that no certificates
+ will be filtered out and ssh keys will be generated
+ from all valid certificates.
+ </para>
+ <para>
+ If no rules are configured using 'all_rules' will
+ enable a default rule which enables all
+ certificates suitable for client authentication.
+ This is the same behavior as for the PAM responder
+ if certificate authentication is enabled.
+ </para>
+ <para>
+ A non-existing rule name is considered an error.
+ If as a result no rule is selected all certificates
+ will be ignored.
+ </para>
+ <para>
+ Default: not set, equivalent to 'all_rules',
+ all found rules or the default rule are used
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>ca_db (string)</term>
+ <listitem>
+ <para>
+ Path to a storage of trusted CA certificates. The
+ option is used to validate user certificates before
+ deriving public ssh keys from them.
+ </para>
+ <para>
+ Default:
+ <itemizedlist>
+ <listitem><para>/etc/sssd/pki/sssd_auth_ca_db.pem
+ (path to a file with trusted CA
+ certificates in PEM format)
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect2>
+
+ <refsect2 id='PAC_RESPONDER' condition="with_pac_responder">
+ <title>PAC responder configuration options</title>
+ <para>
+ The PAC responder works together with the authorization data
+ plugin for MIT Kerberos sssd_pac_plugin.so and a sub-domain
+ provider. The plugin sends the PAC data during a GSSAPI
+ authentication to the PAC responder. The sub-domain provider
+ collects domain SID and ID ranges of the domain the client is
+ joined to and of remote trusted domains from the local domain
+ controller. If the PAC is decoded and evaluated some of the
+ following operations are done:
+ <itemizedlist>
+ <listitem><para>If the remote user does not exist in the
+ cache, it is created. The UID is determined with the help
+ of the SID, trusted domains will have UPGs and the GID
+ will have the same value as the UID. The home directory is
+ set based on the subdomain_homedir parameter. The shell will
+ be empty by default, i.e. the system defaults are used, but
+ can be overwritten with the default_shell parameter.</para>
+ </listitem>
+ <listitem><para>If there are SIDs of groups from domains
+ sssd knows about, the user will be added to those groups.
+ </para></listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ These options can be used to configure the PAC responder.
+ </para>
+ <variablelist>
+ <varlistentry>
+ <term>allowed_uids (string)</term>
+ <listitem>
+ <para>
+ Specifies the comma-separated list of UID values or
+ user names that are allowed to access the PAC
+ responder. User names are resolved to UIDs at
+ startup.
+ </para>
+ <para>
+ Default: 0 (only the root user is allowed to access
+ the PAC responder)
+ </para>
+ <para>
+ Please note that although the UID 0 is used as the
+ default it will be overwritten with this option. If
+ you still want to allow the root user to access the
+ PAC responder, which would be the typical case, you
+ have to add 0 to the list of allowed UIDs as well.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>pac_lifetime (integer)</term>
+ <listitem>
+ <para>
+ Lifetime of the PAC entry in seconds. As long as the
+ PAC is valid the PAC data can be used to determine
+ the group memberships of a user.
+ </para>
+ <para>
+ Default: 300
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>pac_check (string)</term>
+ <listitem>
+ <para>
+ Apply additional checks on the PAC of the Kerberos
+ ticket which is available in Active Directory and
+ FreeIPA domains, if configured. Please note that
+ Kerberos ticket validation must be enabled to be
+ able to check the PAC, i.e. the krb5_validate option
+ must be set to 'True' which is the default for the
+ IPA and AD provider. If krb5_validate is set to
+ 'False' the PAC checks will be skipped.
+ </para>
+ <para>
+ The following options can be used alone or in a
+ comma-separated list:
+ <variablelist>
+ <varlistentry>
+ <term>no_check</term>
+ <listitem>
+ <para>The PAC must not be present and even
+ if it is present no additional checks will be
+ done.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>pac_present</term>
+ <listitem>
+ <para>The PAC must be present in the
+ service ticket which SSSD will request with
+ the help of the user's TGT. If the PAC is
+ not available the authentication will fail.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>check_upn</term>
+ <listitem>
+ <para>If the PAC is present check if the
+ user principal name (UPN) information is
+ consistent.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>check_upn_allow_missing</term>
+ <listitem>
+ <para>This option should be used together
+ with 'check_upn' and handles the case where
+ a UPN is set on the server-side but is not
+ read by SSSD. The typical example is a
+ FreeIPA domain where 'ldap_user_principal'
+ is set to a not existing attribute name.
+ This was typically done to work-around
+ issues in the handling of enterprise
+ principals. But this is fixed since quite
+ some time and FreeIPA can handle enterprise
+ principals just fine and there is no need
+ anymore to set 'ldap_user_principal'.</para>
+ <para>Currently this option is set by
+ default to avoid regressions in such
+ environments. A log message will be added
+ to the system log and SSSD's debug log in
+ case a UPN is found in the PAC but not in
+ SSSD's cache. To avoid this log message it
+ would be best to evaluate if the
+ 'ldap_user_principal' option can be removed.
+ If this is not possible, removing
+ 'check_upn' will skip the test and avoid the
+ log message.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>upn_dns_info_present</term>
+ <listitem>
+ <para>The PAC must contain the UPN-DNS-INFO
+ buffer, implies 'check_upn'.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>check_upn_dns_info_ex</term>
+ <listitem>
+ <para>If the PAC is present and the
+ extension to the UPN-DNS-INFO buffer is
+ available check if the information in the
+ extension is consistent.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>upn_dns_info_ex_present</term>
+ <listitem>
+ <para>The PAC must contain the extension of
+ the UPN-DNS-INFO buffer, implies
+ 'check_upn_dns_info_ex',
+ 'upn_dns_info_present' and 'check_upn'.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </para>
+ <para>
+ Default: no_check (AD and IPA provider
+ 'check_upn, check_upn_allow_missing, check_upn_dns_info_ex')
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect2>
+
+ <refsect2 id='SESSION_RECORDING'>
+ <title>Session recording configuration options</title>
+ <para>
+ Session recording works in conjunction with
+ <citerefentry>
+ <refentrytitle>tlog-rec-session</refentrytitle>
+ <manvolnum>8</manvolnum>
+ </citerefentry>, a part of tlog package, to log what users see
+ and type when they log in on a text terminal.
+ See also
+ <citerefentry>
+ <refentrytitle>sssd-session-recording</refentrytitle>
+ <manvolnum>5</manvolnum>
+ </citerefentry>.
+ </para>
+ <para>
+ These options can be used to configure session recording.
+ </para>
+ <variablelist>
+ <varlistentry>
+ <term>scope (string)</term>
+ <listitem>
+ <para>
+ One of the following strings specifying the scope
+ of session recording:
+ <variablelist>
+ <varlistentry>
+ <term>"none"</term>
+ <listitem>
+ <para>
+ No users are recorded.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>"some"</term>
+ <listitem>
+ <para>
+ Users/groups specified by
+ <replaceable>users</replaceable>
+ and
+ <replaceable>groups</replaceable>
+ options are recorded.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>"all"</term>
+ <listitem>
+ <para>
+ All users are recorded.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </para>
+ <para>
+ Default: "none"
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>users (string)</term>
+ <listitem>
+ <para>
+ A comma-separated list of users which should have
+ session recording enabled. Matches user names as
+ returned by NSS. I.e. after the possible space
+ replacement, case changes, etc.
+ </para>
+ <para>
+ Default: Empty. Matches no users.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>groups (string)</term>
+ <listitem>
+ <para>
+ A comma-separated list of groups, members of which
+ should have session recording enabled. Matches
+ group names as returned by NSS. I.e. after the
+ possible space replacement, case changes, etc.
+ </para>
+ <para>
+ NOTE: using this option (having it set to
+ anything) has a considerable performance cost,
+ because each uncached request for a user requires
+ retrieving and matching the groups the user is
+ member of.
+ </para>
+ <para>
+ Default: Empty. Matches no groups.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>exclude_users (string)</term>
+ <listitem>
+ <para>
+ A comma-separated list of users to be excluded from
+ recording, only applicable with 'scope=all'.
+ </para>
+ <para>
+ Default: Empty. No users excluded.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>exclude_groups (string)</term>
+ <listitem>
+ <para>
+ A comma-separated list of groups, members of which
+ should be excluded from recording. Only applicable
+ with 'scope=all'.
+ </para>
+ <para>
+ NOTE: using this option (having it set to
+ anything) has a considerable performance cost,
+ because each uncached request for a user requires
+ retrieving and matching the groups the user is
+ member of.
+ </para>
+ <para>
+ Default: Empty. No groups excluded.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect2>
+
+ </refsect1>
+
+ <refsect1 id='domain-sections'>
+ <title>DOMAIN SECTIONS</title>
+ <para>
+ These configuration options can be present in a domain
+ configuration section, that is, in a section called
+ <quote>[domain/<replaceable>NAME</replaceable>]</quote>
+ <variablelist>
+ <varlistentry>
+ <term>enabled</term>
+ <listitem>
+ <para>
+ Explicitly enable or disable the domain. If
+ <quote>true</quote>, the domain is always
+ <quote>enabled</quote>. If <quote>false</quote>,
+ the domain is always <quote>disabled</quote>. If
+ this option is not set, the domain is enabled only
+ if it is listed in the domains option in the
+ <quote>[sssd]</quote> section.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>domain_type (string)</term>
+ <listitem>
+ <para>
+ Specifies whether the domain is meant to be used
+ by POSIX-aware clients such as the Name Service Switch
+ or by applications that do not need POSIX data to be
+ present or generated. Only objects from POSIX domains
+ are available to the operating system interfaces and
+ utilities.
+ </para>
+ <para>
+ Allowed values for this option are <quote>posix</quote>
+ and <quote>application</quote>.
+ </para>
+ <para>
+ POSIX domains are reachable by all services. Application
+ domains are only reachable from the InfoPipe responder (see
+ <citerefentry>
+ <refentrytitle>sssd-ifp</refentrytitle>
+ <manvolnum>5</manvolnum>
+ </citerefentry>) and the PAM responder.
+ </para>
+ <para>
+ NOTE: The application domains are currently well tested with
+ <quote>id_provider=ldap</quote> only.
+ </para>
+ <para>
+ For an easy way to configure a non-POSIX domains, please
+ see the <quote>Application domains</quote> section.
+ </para>
+ <para>
+ Default: posix
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>min_id,max_id (integer)</term>
+ <listitem>
+ <para>
+ UID and GID limits for the domain. If a domain
+ contains an entry that is outside these limits, it
+ is ignored.
+ </para>
+ <para>
+ For users, this affects the primary GID limit. The
+ user will not be returned to NSS if either the
+ UID or the primary GID is outside the range. For
+ non-primary group memberships, those that are in
+ range will be reported as expected.
+ </para>
+ <para>
+ These ID limits affect even saving entries to
+ cache, not only returning them by name or ID.
+ </para>
+ <para>
+ Default: 1 for min_id, 0 (no limit) for max_id
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>enumerate (bool)</term>
+ <listitem>
+ <para>
+ Determines if a domain can be enumerated,
+ that is, whether the domain can list all the
+ users and group it contains. Note that it is
+ not required to enable enumeration in order
+ for secondary groups to be displayed. This
+ parameter can have one of the following values:
+ </para>
+ <para>
+ TRUE = Users and groups are enumerated
+ </para>
+ <para>
+ FALSE = No enumerations for this domain
+ </para>
+ <para>
+ Default: FALSE
+ </para>
+ <para>
+ Enumerating a domain requires SSSD to download
+ and store ALL user and group entries from the
+ remote server.
+ </para>
+ <para>
+ Note: Enabling enumeration has a moderate
+ performance impact on SSSD while enumeration
+ is running. It may take up to several minutes
+ after SSSD startup to fully complete enumerations.
+ During this time, individual requests for
+ information will go directly to LDAP, though it
+ may be slow, due to the heavy enumeration
+ processing. Saving a large number of entries
+ to cache after the enumeration completes might
+ also be CPU intensive as the memberships have
+ to be recomputed. This can lead to the
+ <quote>sssd_be</quote> process becoming unresponsive
+ or even restarted by the internal watchdog.
+ </para>
+ <para>
+ While the first enumeration is running, requests
+ for the complete user or group lists may return
+ no results until it completes.
+ </para>
+ <para>
+ Further, enabling enumeration may increase the time
+ necessary to detect network disconnection, as
+ longer timeouts are required to ensure that
+ enumeration lookups are completed successfully.
+ For more information, refer to the man pages for
+ the specific id_provider in use.
+ </para>
+ <para>
+ For the reasons cited above, enabling enumeration
+ is not recommended, especially in large
+ environments.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>subdomain_enumerate (string)</term>
+ <listitem>
+ <para>
+ Whether any of autodetected trusted domains should
+ be enumerated. The supported values are:
+ <variablelist>
+ <varlistentry>
+ <term>all</term>
+ <listitem><para>All discovered trusted domains will be enumerated</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>none</term>
+ <listitem><para>No discovered trusted domains will be enumerated</para></listitem>
+ </varlistentry>
+ </variablelist>
+ Optionally, a list of one or more domain
+ names can enable enumeration just for these
+ trusted domains.
+ </para>
+ <para>
+ Default: none
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>entry_cache_timeout (integer)</term>
+ <listitem>
+ <para>
+ How many seconds should nss_sss consider
+ entries valid before asking the backend again
+ </para>
+ <para>
+ The cache expiration timestamps are stored
+ as attributes of individual objects in the
+ cache. Therefore, changing the cache timeout only
+ has effect for newly added or expired entries.
+ You should run the
+ <citerefentry>
+ <refentrytitle>sss_cache</refentrytitle>
+ <manvolnum>8</manvolnum>
+ </citerefentry>
+ tool in order to force refresh of entries that
+ have already been cached.
+ </para>
+ <para>
+ Default: 5400
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>entry_cache_user_timeout (integer)</term>
+ <listitem>
+ <para>
+ How many seconds should nss_sss consider
+ user entries valid before asking the backend again
+ </para>
+ <para>
+ Default: entry_cache_timeout
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>entry_cache_group_timeout (integer)</term>
+ <listitem>
+ <para>
+ How many seconds should nss_sss consider
+ group entries valid before asking the backend again
+ </para>
+ <para>
+ Default: entry_cache_timeout
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>entry_cache_netgroup_timeout (integer)</term>
+ <listitem>
+ <para>
+ How many seconds should nss_sss consider
+ netgroup entries valid before asking the backend again
+ </para>
+ <para>
+ Default: entry_cache_timeout
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>entry_cache_service_timeout (integer)</term>
+ <listitem>
+ <para>
+ How many seconds should nss_sss consider
+ service entries valid before asking the backend again
+ </para>
+ <para>
+ Default: entry_cache_timeout
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>entry_cache_resolver_timeout (integer)</term>
+ <listitem>
+ <para>
+ How many seconds should nss_sss consider
+ hosts and networks entries valid before asking
+ the backend again
+ </para>
+ <para>
+ Default: entry_cache_timeout
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry condition="with_sudo">
+ <term>entry_cache_sudo_timeout (integer)</term>
+ <listitem>
+ <para>
+ How many seconds should sudo consider
+ rules valid before asking the backend again
+ </para>
+ <para>
+ Default: entry_cache_timeout
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry condition="with_autofs">
+ <term>entry_cache_autofs_timeout (integer)</term>
+ <listitem>
+ <para>
+ How many seconds should the autofs service
+ consider automounter maps valid before asking
+ the backend again
+ </para>
+ <para>
+ Default: entry_cache_timeout
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry condition="with_ssh">
+ <term>entry_cache_ssh_host_timeout (integer)</term>
+ <listitem>
+ <para>
+ How many seconds to keep a host ssh key after
+ refresh. IE how long to cache the host key
+ for.
+ </para>
+ <para>
+ Default: entry_cache_timeout
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>entry_cache_computer_timeout (integer)</term>
+ <listitem>
+ <para>
+ How many seconds to keep the local computer
+ entry before asking the backend again
+ </para>
+ <para>
+ Default: entry_cache_timeout
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>refresh_expired_interval (integer)</term>
+ <listitem>
+ <para>
+ Specifies how many seconds SSSD has to wait before
+ triggering a background refresh task which will
+ refresh all expired or nearly expired records.
+ </para>
+ <para>
+ The background refresh will process users,
+ groups and netgroups in the cache. For users
+ who have performed the initgroups (get group
+ membership for user, typically ran at login)
+ operation in the past, both the user entry
+ and the group membership are updated.
+ </para>
+ <para>
+ This option is automatically inherited for all
+ trusted domains.
+ </para>
+ <para>
+ You can consider setting this value to
+ 3/4 * entry_cache_timeout.
+ </para>
+ <para>
+ Cache entry will be refreshed by background task
+ when 2/3 of cache timeout has already passed.
+ If there are existing cached entries, the background
+ task will refer to their original cache timeout
+ values instead of current configuration value.
+ This may lead to a situation in which background refresh
+ task appears to not be working. This is done
+ by design to improve offline mode operation and
+ reuse of existing valid cache entries.
+ To make this change instant the user may want to
+ manually invalidate existing cache.
+ </para>
+ <para>
+ Default: 0 (disabled)
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>cache_credentials (bool)</term>
+ <listitem>
+ <para>
+ Determines if user credentials are also cached
+ in the local LDB cache. The cached credentials
+ refer to passwords, which includes the first (long
+ term) factor of two-factor authentication, not
+ other authentication mechanisms. Passkey and
+ Smartcard authentications are expected to work
+ offline as long as a successful online
+ authentication is recorded in the cache without
+ additional configuration.
+ </para>
+ <para>
+ Take a note that while credentials are stored as
+ a salted SHA512 hash, this still potentially poses
+ some security risk in case an attacker manages to
+ get access to a cache file (normally requires
+ privileged access) and to break a password using
+ brute force attack.
+ </para>
+ <para>
+ Default: FALSE
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>cache_credentials_minimal_first_factor_length (int)</term>
+ <listitem>
+ <para>
+ If 2-Factor-Authentication (2FA) is used and
+ credentials should be saved this value determines
+ the minimal length the first authentication factor
+ (long term password) must have to be saved as SHA512
+ hash into the cache.
+ </para>
+ <para>
+ This should avoid that the short PINs of a PIN based
+ 2FA scheme are saved in the cache which would make
+ them easy targets for brute-force attacks.
+ </para>
+ <para>
+ Default: 8
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>account_cache_expiration (integer)</term>
+ <listitem>
+ <para>
+ Number of days entries are left in cache after
+ last successful login before being removed during
+ a cleanup of the cache. 0 means keep forever.
+ The value of this parameter must be greater than or
+ equal to offline_credentials_expiration.
+ </para>
+ <para>
+ Default: 0 (unlimited)
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>pwd_expiration_warning (integer)</term>
+ <listitem>
+ <para>
+ Display a warning N days before the password expires.
+ </para>
+ <para>
+ If zero is set, then this filter is not applied,
+ i.e. if the expiration warning was received from
+ backend server, it will automatically be displayed.
+ </para>
+ <para>
+ Please note that the backend server has to provide
+ information about the expiration time of the password.
+ If this information is missing, sssd cannot display a
+ warning. Also an auth provider has to be configured for
+ the backend.
+ </para>
+ <para>
+ Default: 7 (Kerberos), 0 (LDAP)
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>id_provider (string)</term>
+ <listitem>
+ <para>
+ The identification provider used for the domain.
+ Supported ID providers are:
+ </para>
+ <para>
+ <quote>proxy</quote>: Support a legacy NSS provider.
+ </para>
+ <para condition="with_files_provider">
+ <quote>files</quote>: FILES provider. See
+ <citerefentry>
+ <refentrytitle>sssd-files</refentrytitle>
+ <manvolnum>5</manvolnum>
+ </citerefentry> for more information on
+ how to mirror local users and groups into SSSD.
+ </para>
+ <para>
+ <quote>ldap</quote>: LDAP provider. See
+ <citerefentry>
+ <refentrytitle>sssd-ldap</refentrytitle>
+ <manvolnum>5</manvolnum>
+ </citerefentry> for more information on
+ configuring LDAP.
+ </para>
+ <para>
+ <quote>ipa</quote>: FreeIPA and Red Hat
+ Identity Management provider. See
+ <citerefentry>
+ <refentrytitle>sssd-ipa</refentrytitle>
+ <manvolnum>5</manvolnum>
+ </citerefentry> for more information on
+ configuring FreeIPA.
+ </para>
+ <para>
+ <quote>ad</quote>: Active Directory provider. See
+ <citerefentry>
+ <refentrytitle>sssd-ad</refentrytitle>
+ <manvolnum>5</manvolnum>
+ </citerefentry> for more information on
+ configuring Active Directory.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>use_fully_qualified_names (bool)</term>
+ <listitem>
+ <para>
+ Use the full name and domain (as formatted by
+ the domain's full_name_format) as the user's login
+ name reported to NSS.
+ </para>
+ <para>
+ If set to TRUE, all requests to this domain
+ must use fully qualified names. For example,
+ if used in LOCAL domain that contains a "test"
+ user, <command>getent passwd test</command>
+ wouldn't find the user while <command>getent
+ passwd test@LOCAL</command> would.
+ </para>
+ <para>
+ NOTE: This option has no effect on netgroup
+ lookups due to their tendency to include nested
+ netgroups without qualified names. For netgroups,
+ all domains will be searched when an unqualified
+ name is requested.
+ </para>
+ <para>
+ Default: FALSE (TRUE for trusted
+ domain/sub-domains or if default_domain_suffix
+ is used)
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>ignore_group_members (bool)</term>
+ <listitem>
+ <para>
+ Do not return group members for group lookups.
+ </para>
+ <para>
+ If set to TRUE, the group membership attribute
+ is not requested from the ldap server, and
+ group members are not returned when processing
+ group lookup calls, such as
+ <citerefentry>
+ <refentrytitle>getgrnam</refentrytitle>
+ <manvolnum>3</manvolnum>
+ </citerefentry>
+ or
+ <citerefentry>
+ <refentrytitle>getgrgid</refentrytitle>
+ <manvolnum>3</manvolnum>
+ </citerefentry>.
+ As an effect, <quote>getent group
+ $groupname</quote> would return the requested
+ group as if it was empty.
+ </para>
+ <para>
+ Enabling this option can also make access
+ provider checks for group membership
+ significantly faster, especially for groups
+ containing many members.
+ </para>
+ <para>
+ This option can be also set per subdomain or
+ inherited via
+ <emphasis>subdomain_inherit</emphasis>.
+ </para>
+ <para>
+ Default: FALSE
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>auth_provider (string)</term>
+ <listitem>
+ <para>
+ The authentication provider used for the domain.
+ Supported auth providers are:
+ </para>
+ <para>
+ <quote>ldap</quote> for native LDAP authentication. See
+ <citerefentry>
+ <refentrytitle>sssd-ldap</refentrytitle>
+ <manvolnum>5</manvolnum>
+ </citerefentry> for more information on configuring LDAP.
+ </para>
+ <para>
+ <quote>krb5</quote> for Kerberos authentication. See
+ <citerefentry>
+ <refentrytitle>sssd-krb5</refentrytitle>
+ <manvolnum>5</manvolnum>
+ </citerefentry> for more information on configuring Kerberos.
+ </para>
+ <para>
+ <quote>ipa</quote>: FreeIPA and Red Hat
+ Identity Management provider. See
+ <citerefentry>
+ <refentrytitle>sssd-ipa</refentrytitle>
+ <manvolnum>5</manvolnum>
+ </citerefentry> for more information on
+ configuring FreeIPA.
+ </para>
+ <para>
+ <quote>ad</quote>: Active Directory provider. See
+ <citerefentry>
+ <refentrytitle>sssd-ad</refentrytitle>
+ <manvolnum>5</manvolnum>
+ </citerefentry> for more information on
+ configuring Active Directory.
+ </para>
+ <para>
+ <quote>proxy</quote> for relaying authentication to some other PAM target.
+ </para>
+ <para>
+ <quote>none</quote> disables authentication explicitly.
+ </para>
+ <para>
+ Default: <quote>id_provider</quote> is used if it
+ is set and can handle authentication requests.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>access_provider (string)</term>
+ <listitem>
+ <para>
+ The access control provider used for the domain.
+ There are two built-in access providers (in
+ addition to any included in installed backends)
+ Internal special providers are:
+ </para>
+ <para>
+ <quote>permit</quote> always allow access. It's the only permitted access provider for a local domain.
+ </para>
+ <para>
+ <quote>deny</quote> always deny access.
+ </para>
+ <para>
+ <quote>ldap</quote> for native LDAP authentication. See
+ <citerefentry>
+ <refentrytitle>sssd-ldap</refentrytitle>
+ <manvolnum>5</manvolnum>
+ </citerefentry> for more information on configuring LDAP.
+ </para>
+ <para>
+ <quote>ipa</quote>: FreeIPA and Red Hat
+ Identity Management provider. See
+ <citerefentry>
+ <refentrytitle>sssd-ipa</refentrytitle>
+ <manvolnum>5</manvolnum>
+ </citerefentry> for more information on
+ configuring FreeIPA.
+ </para>
+ <para>
+ <quote>ad</quote>: Active Directory provider. See
+ <citerefentry>
+ <refentrytitle>sssd-ad</refentrytitle>
+ <manvolnum>5</manvolnum>
+ </citerefentry> for more information on
+ configuring Active Directory.
+ </para>
+ <para>
+ <quote>simple</quote> access control based on access
+ or deny lists. See <citerefentry>
+ <refentrytitle>sssd-simple</refentrytitle>
+ <manvolnum>5</manvolnum></citerefentry> for more
+ information on configuring the simple access module.
+ </para>
+ <para>
+ <quote>krb5</quote>: .k5login based access control.
+ See <citerefentry>
+ <refentrytitle>sssd-krb5</refentrytitle>
+ <manvolnum>5</manvolnum></citerefentry> for more
+ information on configuring Kerberos.
+ </para>
+ <para>
+ <quote>proxy</quote> for relaying access control to another PAM module.
+ </para>
+ <para>
+ Default: <quote>permit</quote>
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>chpass_provider (string)</term>
+ <listitem>
+ <para>
+ The provider which should handle change password
+ operations for the domain.
+ Supported change password providers are:
+ </para>
+ <para>
+ <quote>ldap</quote> to change a password stored
+ in a LDAP server. See
+ <citerefentry>
+ <refentrytitle>sssd-ldap</refentrytitle>
+ <manvolnum>5</manvolnum>
+ </citerefentry> for more information on configuring LDAP.
+ </para>
+ <para>
+ <quote>krb5</quote> to change the Kerberos
+ password. See
+ <citerefentry>
+ <refentrytitle>sssd-krb5</refentrytitle>
+ <manvolnum>5</manvolnum>
+ </citerefentry> for more information on configuring Kerberos.
+ </para>
+ <para>
+ <quote>ipa</quote>: FreeIPA and Red Hat
+ Identity Management provider. See
+ <citerefentry>
+ <refentrytitle>sssd-ipa</refentrytitle>
+ <manvolnum>5</manvolnum>
+ </citerefentry> for more information on
+ configuring FreeIPA.
+ </para>
+ <para>
+ <quote>ad</quote>: Active Directory provider. See
+ <citerefentry>
+ <refentrytitle>sssd-ad</refentrytitle>
+ <manvolnum>5</manvolnum>
+ </citerefentry> for more information on
+ configuring Active Directory.
+ </para>
+ <para>
+ <quote>proxy</quote> for relaying password changes
+ to some other PAM target.
+ </para>
+ <para>
+ <quote>none</quote> disallows password changes explicitly.
+ </para>
+ <para>
+ Default: <quote>auth_provider</quote> is used if it
+ is set and can handle change password requests.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry condition="with_sudo">
+ <term>sudo_provider (string)</term>
+ <listitem>
+ <para>
+ The SUDO provider used for the domain.
+ Supported SUDO providers are:
+ </para>
+ <para>
+ <quote>ldap</quote> for rules stored in LDAP. See
+ <citerefentry>
+ <refentrytitle>sssd-ldap</refentrytitle>
+ <manvolnum>5</manvolnum>
+ </citerefentry> for more information on configuring
+ LDAP.
+ </para>
+ <para>
+ <quote>ipa</quote> the same as <quote>ldap</quote>
+ but with IPA default settings.
+ </para>
+ <para>
+ <quote>ad</quote> the same as <quote>ldap</quote>
+ but with AD default settings.
+ </para>
+ <para>
+ <quote>none</quote> disables SUDO explicitly.
+ </para>
+ <para>
+ Default: The value of <quote>id_provider</quote> is
+ used if it is set.
+ </para>
+ <para>
+ The detailed instructions for configuration of
+ sudo_provider are in the manual page
+ <citerefentry>
+ <refentrytitle>sssd-sudo</refentrytitle>
+ <manvolnum>5</manvolnum>
+ </citerefentry>.
+ There are many configuration options that can be
+ used to adjust the behavior. Please refer to
+ "ldap_sudo_*" in
+ <citerefentry>
+ <refentrytitle>sssd-ldap</refentrytitle>
+ <manvolnum>5</manvolnum>
+ </citerefentry>.
+ </para>
+ <para>
+ <emphasis>NOTE:</emphasis> Sudo rules are
+ periodically downloaded in the background unless
+ the sudo provider is explicitly disabled. Set
+ <emphasis>sudo_provider = None</emphasis> to
+ disable all sudo-related activity in SSSD if you do
+ not want to use sudo with SSSD at all.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>selinux_provider (string)</term>
+ <listitem>
+ <para>
+ The provider which should handle loading of selinux
+ settings. Note that this provider will be called right
+ after access provider ends.
+ Supported selinux providers are:
+ </para>
+ <para>
+ <quote>ipa</quote> to load selinux settings
+ from an IPA server. See
+ <citerefentry>
+ <refentrytitle>sssd-ipa</refentrytitle>
+ <manvolnum>5</manvolnum>
+ </citerefentry> for more information on configuring IPA.
+ </para>
+ <para>
+ <quote>none</quote> disallows fetching selinux settings explicitly.
+ </para>
+ <para>
+ Default: <quote>id_provider</quote> is used if it
+ is set and can handle selinux loading requests.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>subdomains_provider (string)</term>
+ <listitem>
+ <para>
+ The provider which should handle fetching of
+ subdomains. This value should be always the same as
+ id_provider.
+ Supported subdomain providers are:
+ </para>
+ <para>
+ <quote>ipa</quote> to load a list of subdomains
+ from an IPA server. See
+ <citerefentry>
+ <refentrytitle>sssd-ipa</refentrytitle>
+ <manvolnum>5</manvolnum>
+ </citerefentry> for more information on configuring
+ IPA.
+ </para>
+ <para>
+ <quote>ad</quote> to load a list of subdomains
+ from an Active Directory server. See
+ <citerefentry>
+ <refentrytitle>sssd-ad</refentrytitle>
+ <manvolnum>5</manvolnum>
+ </citerefentry> for more information on configuring
+ the AD provider.
+ </para>
+ <para>
+ <quote>none</quote> disallows fetching subdomains
+ explicitly.
+ </para>
+ <para>
+ Default: The value of <quote>id_provider</quote> is
+ used if it is set.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>session_provider (string)</term>
+ <listitem>
+ <para>
+ The provider which configures and manages user session
+ related tasks. The only user session task currently
+ provided is the integration with Fleet Commander, which
+ works only with IPA.
+ Supported session providers are:
+ </para>
+ <para>
+ <quote>ipa</quote> to allow performing user session
+ related tasks.
+ </para>
+ <para>
+ <quote>none</quote> does not perform any kind of user
+ session related tasks.
+ </para>
+ <para>
+ Default: <quote>id_provider</quote> is used if it
+ is set and can perform session related tasks.
+ </para>
+ <para>
+ <emphasis>NOTE:</emphasis> In order to have this feature
+ working as expected SSSD must be running as "root" and
+ not as the unprivileged user.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry condition="with_autofs">
+ <term>autofs_provider (string)</term>
+ <listitem>
+ <para>
+ The autofs provider used for the domain.
+ Supported autofs providers are:
+ </para>
+ <para>
+ <quote>ldap</quote> to load maps stored in LDAP. See
+ <citerefentry>
+ <refentrytitle>sssd-ldap</refentrytitle>
+ <manvolnum>5</manvolnum>
+ </citerefentry> for more information on configuring LDAP.
+ </para>
+ <para>
+ <quote>ipa</quote> to load maps stored in an IPA
+ server. See
+ <citerefentry>
+ <refentrytitle>sssd-ipa</refentrytitle>
+ <manvolnum>5</manvolnum>
+ </citerefentry> for more information on configuring IPA.
+ </para>
+ <para>
+ <quote>ad</quote> to load maps stored in an AD
+ server. See
+ <citerefentry>
+ <refentrytitle>sssd-ad</refentrytitle>
+ <manvolnum>5</manvolnum>
+ </citerefentry> for more information on configuring
+ the AD provider.
+ </para>
+ <para>
+ <quote>none</quote> disables autofs explicitly.
+ </para>
+ <para>
+ Default: The value of <quote>id_provider</quote> is used if it
+ is set.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>hostid_provider (string)</term>
+ <listitem>
+ <para>
+ The provider used for retrieving host identity information.
+ Supported hostid providers are:
+ </para>
+ <para>
+ <quote>ipa</quote> to load host identity stored in an IPA
+ server. See
+ <citerefentry>
+ <refentrytitle>sssd-ipa</refentrytitle>
+ <manvolnum>5</manvolnum>
+ </citerefentry> for more information on configuring IPA.
+ </para>
+ <para>
+ <quote>none</quote> disables hostid explicitly.
+ </para>
+ <para>
+ Default: The value of <quote>id_provider</quote> is used if it
+ is set.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>resolver_provider (string)</term>
+ <listitem>
+ <para>
+ The provider which should handle hosts and networks
+ lookups. Supported resolver providers are:
+ </para>
+ <para>
+ <quote>proxy</quote> to forward lookups to another
+ NSS library. See <quote>proxy_resolver_lib_name</quote>
+ </para>
+ <para>
+ <quote>ldap</quote> to fetch hosts and networks stored in LDAP. See
+ <citerefentry>
+ <refentrytitle>sssd-ldap</refentrytitle>
+ <manvolnum>5</manvolnum>
+ </citerefentry> for more information on configuring LDAP.
+ </para>
+ <para>
+ <quote>ad</quote> to fetch hosts and networks stored in AD. See
+ <citerefentry>
+ <refentrytitle>sssd-ad</refentrytitle>
+ <manvolnum>5</manvolnum>
+ </citerefentry> for more information on configuring
+ the AD provider.
+ </para>
+ <para>
+ <quote>none</quote> disallows fetching hosts and networks explicitly.
+ </para>
+ <para>
+ Default: The value of <quote>id_provider</quote> is used if it
+ is set.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>re_expression (string)</term>
+ <listitem>
+ <para>
+ Regular expression for this domain that describes
+ how to parse the string containing user name and
+ domain into these components.
+ The "domain" can match either the SSSD
+ configuration domain name, or, in the case
+ of IPA trust subdomains and Active Directory
+ domains, the flat (NetBIOS) name of the domain.
+ </para>
+ <para>
+ Default: <quote>^((?P&lt;name&gt;.+)@(?P&lt;domain&gt;[^@]*)|(?P&lt;name&gt;[^@]+))$</quote>
+
+ which allows two different styles for user names:
+ <itemizedlist>
+ <listitem>
+ <para>username</para>
+ </listitem>
+ <listitem>
+ <para>username@domain.name</para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ Default for the AD and IPA provider:
+ <quote>^(((?P&lt;domain&gt;[^\\]+)\\(?P&lt;name&gt;.+))|((?P&lt;name&gt;.+)@(?P&lt;domain&gt;[^@]+))|((?P&lt;name&gt;[^@\\]+)))$</quote>
+
+ which allows three different styles for user names:
+ <itemizedlist>
+ <listitem>
+ <para>username</para>
+ </listitem>
+ <listitem>
+ <para>username@domain.name</para>
+ </listitem>
+ <listitem>
+ <para>domain\username</para>
+ </listitem>
+ </itemizedlist>
+ While the first two correspond to the general
+ default the third one is introduced to allow easy
+ integration of users from Windows domains.
+ </para>
+ <para>
+ The default re_expression uses the <quote>@</quote>
+ character as a separator between the name and the
+ domain. As a result of this setting the default
+ does not accept the <quote>@</quote> character in
+ short names (as it is allowed in Windows group
+ names). If a user wishes to use short names with
+ <quote>@</quote> they must create their own
+ re_expression.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>full_name_format (string)</term>
+ <listitem>
+ <para>
+ A <citerefentry>
+ <refentrytitle>printf</refentrytitle>
+ <manvolnum>3</manvolnum>
+ </citerefentry>-compatible format that describes how to
+ compose a fully qualified name from user name
+ and domain name components.
+ </para>
+ <para>
+ The following expansions are supported:
+ <variablelist>
+ <varlistentry>
+ <term>%1$s</term>
+ <listitem><para>user name</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>%2$s</term>
+ <listitem>
+ <para>
+ domain name as specified in the
+ SSSD config file.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>%3$s</term>
+ <listitem>
+ <para>
+ domain flat name. Mostly usable
+ for Active Directory domains, both
+ directly configured or discovered
+ via IPA trusts.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </para>
+ <para>
+ Default: <quote>%1$s@%2$s</quote>.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>lookup_family_order (string)</term>
+ <listitem>
+ <para>
+ Provides the ability to select preferred address family
+ to use when performing DNS lookups.
+ </para>
+ <para>
+ Supported values:
+ </para>
+ <para>
+ ipv4_first: Try looking up IPv4 address, if that fails, try IPv6
+ </para>
+ <para>
+ ipv4_only: Only attempt to resolve hostnames to IPv4 addresses.
+ </para>
+ <para>
+ ipv6_first: Try looking up IPv6 address, if that fails, try IPv4
+ </para>
+ <para>
+ ipv6_only: Only attempt to resolve hostnames to IPv6 addresses.
+ </para>
+ <para>
+ Default: ipv4_first
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>dns_resolver_server_timeout (integer)</term>
+ <listitem>
+ <para>
+ Defines the amount of time (in milliseconds)
+ SSSD would try to talk to DNS server before
+ trying next DNS server.
+ </para>
+ <para>
+ The AD provider will use this option for the
+ CLDAP ping timeouts as well.
+ </para>
+ <para>
+ Please see the section <quote>FAILOVER</quote>
+ for more information about the service
+ resolution.
+ </para>
+ <para>
+ Default: 1000
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>dns_resolver_op_timeout (integer)</term>
+ <listitem>
+ <para>
+ Defines the amount of time (in seconds) to
+ wait to resolve single DNS query
+ (e.g. resolution of a hostname or an SRV record)
+ before trying the next hostname or DNS discovery.
+ </para>
+ <para>
+ Please see the section <quote>FAILOVER</quote>
+ for more information about the service
+ resolution.
+ </para>
+ <para>
+ Default: 3
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>dns_resolver_timeout (integer)</term>
+ <listitem>
+ <para>
+ Defines the amount of time (in seconds) to
+ wait for a reply from the internal fail over
+ service before assuming that the service is
+ unreachable. If this timeout is reached, the
+ domain will continue to operate in offline mode.
+ </para>
+ <para>
+ Please see the section <quote>FAILOVER</quote>
+ for more information about the service
+ resolution.
+ </para>
+ <para>
+ Default: 6
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>dns_resolver_use_search_list (bool)</term>
+ <listitem>
+ <para>
+ Normally, the DNS resolver searches the domain
+ list defined in the "search" directive from the
+ resolv.conf file. This can lead to delays in
+ environments with improperly configured DNS.
+ </para>
+ <para>
+ If fully qualified domain names (or _srv_) are used
+ in the SSSD configuration, setting this option
+ to FALSE can prevent unnecessary DNS lookups in such
+ environments.
+ </para>
+ <para>
+ Default: TRUE
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>dns_discovery_domain (string)</term>
+ <listitem>
+ <para>
+ If service discovery is used in the back end, specifies
+ the domain part of the service discovery DNS query.
+ </para>
+ <para>
+ Default: Use the domain part of machine's hostname
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>override_gid (integer)</term>
+ <listitem>
+ <para>
+ Override the primary GID value with the one specified.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>case_sensitive (string)</term>
+ <listitem>
+ <para>
+ Treat user and group names as case sensitive.
+ Possible option values are:
+ <variablelist>
+ <varlistentry>
+ <term>True</term>
+ <listitem>
+ <para>
+ Case sensitive. This value is invalid
+ for AD provider.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>False</term>
+ <listitem>
+ <para>Case insensitive.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Preserving</term>
+ <listitem>
+ <para>
+ Same as False (case insensitive), but
+ does not lowercase names in the result
+ of NSS operations. Note that name
+ aliases (and in case of services also
+ protocol names) are still lowercased in
+ the output.
+ </para>
+ <para>
+ If you want to set this value for
+ trusted domain with IPA provider, you
+ need to set it on both the client and
+ SSSD on the server.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </para>
+ <para>
+ This option can be also set per subdomain or
+ inherited via
+ <emphasis>subdomain_inherit</emphasis>.
+ </para>
+ <para>
+ Default: True (False for AD provider)
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>subdomain_inherit (string)</term>
+ <listitem>
+ <para>
+ Specifies a list of configuration parameters that
+ should be inherited by a subdomain. Please note
+ that only selected parameters can be inherited.
+ Currently the following options can be inherited:
+ </para>
+ <para>
+ ldap_search_timeout
+ </para>
+ <para>
+ ldap_network_timeout
+ </para>
+ <para>
+ ldap_opt_timeout
+ </para>
+ <para>
+ ldap_offline_timeout
+ </para>
+ <para>
+ ldap_enumeration_refresh_timeout
+ </para>
+ <para>
+ ldap_enumeration_refresh_offset
+ </para>
+ <para>
+ ldap_purge_cache_timeout
+ </para>
+ <para>
+ ldap_purge_cache_offset
+ </para>
+ <para>
+ ldap_krb5_keytab (the value of krb5_keytab will be
+ used if ldap_krb5_keytab is not set explicitly)
+ </para>
+ <para>
+ ldap_krb5_ticket_lifetime
+ </para>
+ <para>
+ ldap_enumeration_search_timeout
+ </para>
+ <para>
+ ldap_connection_expire_timeout
+ </para>
+ <para>
+ ldap_connection_expire_offset
+ </para>
+ <para>
+ ldap_connection_idle_timeout
+ </para>
+ <para>
+ ldap_use_tokengroups
+ </para>
+ <para>
+ ldap_user_principal
+ </para>
+ <para>
+ ignore_group_members
+ </para>
+ <para>
+ auto_private_groups
+ </para>
+ <para>
+ case_sensitive
+ </para>
+ <para>
+ Example:
+ <programlisting>
+subdomain_inherit = ldap_purge_cache_timeout
+ </programlisting>
+ </para>
+ <para>
+ Default: none
+ </para>
+ <para>
+ Note: This option only works with the IPA and
+ AD provider.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>subdomain_homedir (string)</term>
+ <listitem>
+ <para>
+ Use this homedir as default value for all subdomains
+ within this domain in IPA AD trust.
+ See <emphasis>override_homedir</emphasis>
+ for info about possible values. In addition to those, the
+ expansion below can only be used with
+ <emphasis>subdomain_homedir</emphasis>.
+ <variablelist>
+ <varlistentry>
+ <term>%F</term>
+ <listitem><para>flat (NetBIOS) name of a subdomain.</para></listitem>
+ </varlistentry>
+ </variablelist>
+ </para>
+ <para>
+ The value can be overridden by
+ <emphasis>override_homedir</emphasis> option.
+ </para>
+ <para>
+ Default: <filename>/home/%d/%u</filename>
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>realmd_tags (string)</term>
+ <listitem>
+ <para>
+ Various tags stored by the realmd configuration service
+ for this domain.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>cached_auth_timeout (int)</term>
+ <listitem>
+ <para>
+ Specifies time in seconds since last successful
+ online authentication for which user will be
+ authenticated using cached credentials while
+ SSSD is in the online mode. If the credentials
+ are incorrect, SSSD falls back to online
+ authentication.
+ </para>
+ <para>
+ This option's value is inherited by all trusted
+ domains. At the moment it is not possible to set
+ a different value per trusted domain.
+ </para>
+ <para>
+ Special value 0 implies that this feature is
+ disabled.
+ </para>
+ <para>
+ Please note that if <quote>cached_auth_timeout</quote>
+ is longer than <quote>pam_id_timeout</quote> then the
+ back end could be called to handle
+ <quote>initgroups.</quote>
+ </para>
+ <para>
+ Default: 0
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>local_auth_policy (string)</term>
+ <listitem>
+ <para>
+ Local authentication methods policy. Some backends
+ (i.e. LDAP, proxy provider) only support a password
+ based authentication, while others can handle PKINIT
+ based Smartcard authentication (AD, IPA),
+ two-factor authentication (IPA), or other methods
+ against a central instance. By default in such cases
+ authentication is only performed with the methods
+ supported by the backend.
+ </para>
+ <para>
+ There are three possible values for this option:
+ match, only, enable. <quote>match</quote> is
+ used to match offline and online states for Kerberos
+ methods. <quote>only</quote> ignores the online methods
+ and only offer the local ones. enable allows explicitly
+ defining the methods for local authentication. As an
+ example, <quote>enable:passkey</quote>, only enables
+ passkey for local authentication. Multiple enable values
+ should be comma-separated, such as
+ <quote>enable:passkey, enable:smartcard</quote>
+ </para>
+ <para>
+ Please note that if local Smartcard authentication
+ is enabled and a Smartcard is present, Smartcard
+ authentication will be preferred over the
+ authentication methods supported by the backend.
+ I.e. there will be a PIN prompt instead of e.g. a
+ password prompt.
+ </para>
+ <para>
+ The following configuration example allows local users
+ to authenticate locally using any enabled method
+ (i.e. smartcard, passkey).
+<programlisting>
+[domain/shadowutils]
+id_provider = proxy
+proxy_lib_name = files
+auth_provider = none
+local_auth_policy = only
+</programlisting>
+ </para>
+ <para condition="with_files_provider">
+ It is expected that the <quote>files</quote>
+ provider ignores the local_auth_policy option and
+ supports Smartcard authentication by default.
+ </para>
+ <para>
+ Default: match
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>auto_private_groups (string)</term>
+ <listitem>
+ <para>
+ This option takes any of three available values:
+ <variablelist>
+ <varlistentry>
+ <term>true</term>
+ <listitem>
+ <para>
+ Create user's private group unconditionally from user's UID number.
+ The GID number is ignored in this case.
+ </para>
+ <para>
+ NOTE: Because the GID number and the user private group
+ are inferred from the UID number, it is not supported
+ to have multiple entries with the same UID or GID number
+ with this option. In other words, enabling this option
+ enforces uniqueness across the ID space.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>false</term>
+ <listitem>
+ <para>
+ Always use the user's primary GID number. The GID number must refer
+ to a group object in the LDAP database.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>hybrid</term>
+ <listitem>
+ <para>
+ A primary group is autogenerated
+ for user entries whose UID
+ and GID numbers have the same
+ value and at the same time the
+ GID number does not correspond
+ to a real group object in LDAP.
+ If the values are the same, but
+ the primary GID in the user entry
+ is also used by a group object,
+ the primary GID of the user resolves
+ to that group object.
+ </para>
+ <para>
+ If the UID and GID of a user
+ are different, then the GID
+ must correspond to a group
+ entry, otherwise the GID is
+ simply not resolvable.
+ </para>
+ <para>
+ This feature is useful for
+ environments that wish to stop
+ maintaining a separate group
+ objects for the user private
+ groups, but also wish to retain
+ the existing user private groups.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </para>
+ <para>
+ For subdomains, the default value is False for
+ subdomains that use assigned POSIX IDs and True
+ for subdomains that use automatic ID-mapping.
+ </para>
+ <para>
+ The value of auto_private_groups can either be set per subdomains
+ in a subsection, for example:
+<programlisting>
+[domain/forest.domain/sub.domain]
+auto_private_groups = false
+</programlisting>
+ or globally for all subdomains in the main domain section
+ using the subdomain_inherit option:
+<programlisting>
+[domain/forest.domain]
+subdomain_inherit = auto_private_groups
+auto_private_groups = false
+</programlisting>
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </para>
+
+ <para>
+ Options valid for proxy domains.
+
+ <variablelist>
+ <varlistentry>
+ <term>proxy_pam_target (string)</term>
+ <listitem>
+ <para>
+ The proxy target PAM proxies to.
+ </para>
+ <para>
+ Default: not set by default, you have to take an
+ existing pam configuration or create a new one and
+ add the service name here. As an alternative you
+ can enable local authentication with the
+ local_auth_policy option.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>proxy_lib_name (string)</term>
+ <listitem>
+ <para>
+ The name of the NSS library to use in proxy
+ domains. The NSS functions searched for in the
+ library are in the form of
+ _nss_$(libName)_$(function), for example
+ _nss_files_getpwent.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>proxy_resolver_lib_name (string)</term>
+ <listitem>
+ <para>
+ The name of the NSS library to use for hosts and
+ networks lookups in proxy domains. The NSS
+ functions searched for in the
+ library are in the form of
+ _nss_$(libName)_$(function), for example
+ _nss_dns_gethostbyname2_r.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>proxy_fast_alias (boolean)</term>
+ <listitem>
+ <para>
+ When a user or group is looked up by name in
+ the proxy provider, a second lookup by ID is
+ performed to "canonicalize" the name in case
+ the requested name was an alias. Setting this
+ option to true would cause the SSSD to perform
+ the ID lookup from cache for performance reasons.
+ </para>
+ <para>
+ Default: false
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>proxy_max_children (integer)</term>
+ <listitem>
+ <para>
+ This option specifies the number of pre-forked
+ proxy children. It is useful for high-load SSSD
+ environments where sssd may run out of available
+ child slots, which would cause some issues due to
+ the requests being queued.
+ </para>
+ <para>
+ Default: 10
+ </para>
+ </listitem>
+ </varlistentry>
+
+ </variablelist>
+ </para>
+
+ <refsect2 id='app_domains'>
+ <title>Application domains</title>
+ <para>
+ SSSD, with its D-Bus interface (see
+ <citerefentry>
+ <refentrytitle>sssd-ifp</refentrytitle>
+ <manvolnum>5</manvolnum>
+ </citerefentry>) is appealing to applications
+ as a gateway to an LDAP directory where users and groups
+ are stored. However, contrary to the traditional SSSD
+ deployment where all users and groups either have POSIX
+ attributes or those attributes can be inferred from the
+ Windows SIDs, in many cases the users and groups in the
+ application support scenario have no POSIX attributes.
+ Instead of setting a
+ <quote>[domain/<replaceable>NAME</replaceable>]</quote>
+ section, the administrator can set up an
+ <quote>[application/<replaceable>NAME</replaceable>]</quote>
+ section that internally represents a domain with type
+ <quote>application</quote> optionally inherits settings
+ from a tradition SSSD domain.
+ </para>
+ <para>
+ Please note that the application domain must still be
+ explicitly enabled in the <quote>domains</quote> parameter
+ so that the lookup order between the application domain
+ and its POSIX sibling domain is set correctly.
+ </para>
+ <variablelist>
+ <title>Application domain parameters</title>
+ <varlistentry>
+ <term>inherit_from (string)</term>
+ <listitem>
+ <para>
+ The SSSD POSIX-type domain the application
+ domain inherits all settings from. The
+ application domain can moreover add its own
+ settings to the application settings that augment
+ or override the <quote>sibling</quote>
+ domain settings.
+ </para>
+ <para>
+ Default: Not set
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ <para>
+ The following example illustrates the use of an application
+ domain. In this setup, the POSIX domain is connected to an LDAP
+ server and is used by the OS through the NSS responder. In addition,
+ the application domain also requests the telephoneNumber attribute,
+ stores it as the phone attribute in the cache and makes the phone
+ attribute reachable through the D-Bus interface.
+ </para>
+<programlisting>
+[sssd]
+domains = appdom, posixdom
+
+[ifp]
+user_attributes = +phone
+
+[domain/posixdom]
+id_provider = ldap
+ldap_uri = ldap://ldap.example.com
+ldap_search_base = dc=example,dc=com
+
+[application/appdom]
+inherit_from = posixdom
+ldap_user_extra_attrs = phone:telephoneNumber
+</programlisting>
+ </refsect2>
+
+ </refsect1>
+
+ <refsect1 id='trusted-domains'>
+ <title>TRUSTED DOMAIN SECTION</title>
+ <para>
+ Some options used in the domain section can also be used in the
+ trusted domain section, that is, in a section called
+ <quote>[domain/<replaceable>DOMAIN_NAME</replaceable>/<replaceable>TRUSTED_DOMAIN_NAME</replaceable>]</quote>.
+ Where DOMAIN_NAME is the actual joined-to base domain. Please refer
+ to examples below for explanation.
+ Currently supported options in the trusted domain section are:
+ </para>
+ <para>ldap_search_base,</para>
+ <para>ldap_user_search_base,</para>
+ <para>ldap_group_search_base,</para>
+ <para>ldap_netgroup_search_base,</para>
+ <para>ldap_service_search_base,</para>
+ <para>ldap_sasl_mech,</para>
+ <para>ad_server,</para>
+ <para>ad_backup_server,</para>
+ <para>ad_site,</para>
+ <para>use_fully_qualified_names</para>
+ <para>pam_gssapi_services</para>
+ <para>pam_gssapi_check_upn</para>
+ <para>
+ For more details about these options see their individual description
+ in the manual page.
+ </para>
+ </refsect1>
+
+ <refsect1 id='certmap'>
+ <title>CERTIFICATE MAPPING SECTION</title>
+ <para>
+ To allow authentication with Smartcards and certificates SSSD must
+ be able to map certificates to users. This can be done by adding the
+ full certificate to the LDAP object of the user or to a local
+ override. While using the full certificate is required to use the
+ Smartcard authentication feature of SSH (see
+ <citerefentry>
+ <refentrytitle>sss_ssh_authorizedkeys</refentrytitle>
+ <manvolnum>8</manvolnum>
+ </citerefentry>
+ for details) it might be cumbersome or not even possible to do this
+ for the general case where local services use PAM for
+ authentication.
+ </para>
+ <para>
+ To make the mapping more flexible mapping and matching rules were
+ added to SSSD (see
+ <citerefentry>
+ <refentrytitle>sss-certmap</refentrytitle>
+ <manvolnum>5</manvolnum>
+ </citerefentry>
+ for details).
+ </para>
+ <para>
+ A mapping and matching rule can be added to the SSSD configuration
+ in a section on its own with a name like
+ <quote>[certmap/<replaceable>DOMAIN_NAME</replaceable>/<replaceable>RULE_NAME</replaceable>]</quote>.
+ In this section the following options are allowed:
+ </para>
+ <variablelist>
+ <varlistentry>
+ <term>matchrule (string)</term>
+ <listitem>
+ <para>
+ Only certificates from the Smartcard which matches this
+ rule will be processed, all others are ignored.
+ </para>
+ <para>
+ Default: KRB5:&lt;EKU&gt;clientAuth, i.e. only
+ certificates which have the Extended Key Usage
+ <quote>clientAuth</quote>
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>maprule (string)</term>
+ <listitem>
+ <para>
+ Defines how the user is found for a given certificate.
+ </para>
+ <para>
+ Default:
+ <itemizedlist>
+ <listitem>
+ <para>LDAP:(userCertificate;binary={cert!bin})
+ for LDAP based providers like
+ <quote>ldap</quote>, <quote>AD</quote> or
+ <quote>ipa</quote>.</para>
+ </listitem>
+ <listitem condition="with_files_provider">
+ <para>The RULE_NAME for the <quote>files</quote>
+ provider which tries to find a user with the
+ same name.</para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>domains (string)</term>
+ <listitem>
+ <para>
+ Comma separated list of domain names the rule should be
+ applied. By default a rule is only valid in the domain
+ configured in sssd.conf. If the provider supports
+ subdomains this option can be used to add the rule to
+ subdomains as well.
+ </para>
+ <para>
+ Default: the configured domain in sssd.conf
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>priority (integer)</term>
+ <listitem>
+ <para>
+ Unsigned integer value defining the priority of the
+ rule. The higher the number the lower the priority.
+ <quote>0</quote> stands for the highest priority while
+ <quote>4294967295</quote> is the lowest.
+ </para>
+ <para>
+ Default: the lowest priority
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ <para condition="with_files_provider">
+ To make the configuration simple and reduce the amount of
+ configuration options the <quote>files</quote> provider has some
+ special properties:
+ <itemizedlist>
+ <listitem>
+ <para>
+ if maprule is not set the RULE_NAME name is assumed to
+ be the name of the matching user
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ if a maprule is used both a single user name or a
+ template like
+ <quote>{subject_rfc822_name.short_name}</quote> must
+ be in braces like e.g. <quote>(username)</quote> or
+ <quote>({subject_rfc822_name.short_name})</quote>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ the <quote>domains</quote> option is ignored
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </refsect1>
+
+ <refsect1 id='prompting_configuration'>
+ <title>PROMPTING CONFIGURATION SECTION</title>
+ <para>
+ If a special file
+ (<filename>/var/lib/sss/pubconf/pam_preauth_available</filename>)
+ exists SSSD's PAM module pam_sss will ask SSSD to figure out which
+ authentication methods are available for the user trying to log in.
+ Based on the results pam_sss will prompt the user for appropriate
+ credentials.
+ </para>
+ <para>
+ With the growing number of authentication methods and the
+ possibility that there are multiple ones for a single user the
+ heuristic used by pam_sss to select the prompting might not be
+ suitable for all use cases. The following options should provide a
+ better flexibility here.
+ </para>
+ <para>
+ Each supported authentication method has its own configuration
+ subsection under <quote>[prompting/...]</quote>. Currently there
+ are:
+ <variablelist>
+ <varlistentry>
+ <term>[prompting/password]</term>
+ <listitem>
+ <para>to configure password prompting, allowed options are:
+ <variablelist><varlistentry><term>password_prompt</term>
+ <listitem><para>to change the string of the password
+ prompt</para></listitem></varlistentry></variablelist>
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ <variablelist>
+ <varlistentry>
+ <term>[prompting/2fa]</term>
+ <listitem>
+ <para>to configure two-factor authentication prompting,
+ allowed options are:
+ <variablelist><varlistentry><term>first_prompt</term>
+ <listitem><para>to change the string of the prompt for
+ the first factor </para></listitem>
+ </varlistentry>
+ <varlistentry><term>second_prompt</term>
+ <listitem><para>to change the string of the prompt for
+ the second factor </para></listitem>
+ </varlistentry>
+ <varlistentry><term>single_prompt</term>
+ <listitem><para>boolean value, if True there will be
+ only a single prompt using the value of first_prompt
+ where it is expected that both factors are entered as a
+ single string. Please note that both factors have to be
+ entered here, even if the second factor is
+ optional.</para></listitem>
+ </varlistentry>
+ </variablelist>
+ If the second factor is optional and it should be possible
+ to log in either only with the password or with both factors
+ two-step prompting has to be used.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ <variablelist>
+ <varlistentry condition="build_passkey">
+ <term>[prompting/passkey]</term>
+ <listitem>
+ <para>to configure passkey authentication prompting,
+ allowed options are:
+ <variablelist>
+ <varlistentry>
+ <term>interactive</term>
+ <listitem>
+ <para>boolean value, if True prompt a message and wait
+ before testing the presence of a passkey device.
+ Recommended if your device doesn’t have a
+ tactile trigger.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>interactive_prompt</term>
+ <listitem>
+ <para>to change the message of the interactive prompt.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>touch</term>
+ <listitem>
+ <para>boolean value, if True prompt a message to
+ remind the user to touch the device.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>touch_prompt</term>
+ <listitem>
+ <para>to change the message of the touch prompt.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </para>
+ <para>
+ It is possible to add a subsection for specific PAM services,
+ e.g. <quote>[prompting/password/sshd]</quote> to individual change
+ the prompting for this service.
+ </para>
+ </refsect1>
+
+ <refsect1 id='example'>
+ <title>EXAMPLES</title>
+ <para>
+ 1. The following example shows a typical SSSD config. It does
+ not describe configuration of the domains themselves - refer to
+ documentation on configuring domains for more details.
+<programlisting>
+[sssd]
+domains = LDAP
+services = nss, pam
+config_file_version = 2
+
+[nss]
+filter_groups = root
+filter_users = root
+
+[pam]
+
+[domain/LDAP]
+id_provider = ldap
+ldap_uri = ldap://ldap.example.com
+ldap_search_base = dc=example,dc=com
+
+auth_provider = krb5
+krb5_server = kerberos.example.com
+krb5_realm = EXAMPLE.COM
+cache_credentials = true
+
+min_id = 10000
+max_id = 20000
+enumerate = False
+</programlisting>
+ </para>
+ <para>
+ 2. The following example shows configuration of IPA AD trust where
+ the AD forest consists of two domains in a parent-child structure.
+ Suppose IPA domain (ipa.com) has trust with AD domain(ad.com).
+ ad.com has child domain (child.ad.com). To enable shortnames in
+ the child domain the following configuration should be used.
+<programlisting>
+[domain/ipa.com/child.ad.com]
+use_fully_qualified_names = false
+</programlisting>
+ </para>
+ <para>
+ 3. The following example shows the configuration of a certificate
+ mapping rule. It is valid for the configured domain
+ <quote>my.domain</quote> and additionally for the subdomains
+ <quote>your.domain</quote> and uses the full certificate in the
+ search filter.
+<programlisting>
+[certmap/my.domain/rule_name]
+matchrule = &lt;ISSUER&gt;^CN=My-CA,DC=MY,DC=DOMAIN$
+maprule = (userCertificate;binary={cert!bin})
+domains = my.domain, your.domain
+priority = 10
+</programlisting>
+ </para>
+ </refsect1>
+
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="include/seealso.xml" />
+
+</refentry>
+</reference>