Arch manual pages

SSSD-KRB5(5) Formats de fichier et conventi SSSD-KRB5(5)

sssd-krb5 - Fournisseur Kerberos SSSD

Cette page de manuel décrit la configuration du moteur d'authentification de Kerberos 5 pour sssd(8). Pour une référence détaillée sur la syntaex, veuillez vous référer à la section “FORMAT DE FICHIER” du manuel de sssd.conf(5).

Le moteur d'authentification Kerberos 5 contient les fournisseurs d'authentification et de changement de mot de passe. Il doit être couplé avec un fournisseur d'identité de manière à fonctionner proprement (par exemple, id_provider = ldap). Plusieurs informations requises par le moteur d'authentification Kerberos 5 doivent être fournies par le fournisseur d'identité, telles que le nom du principal de l'utilisateur Kerberos (UPN). La configuration du fournisseur d'identité doit avoir une entrée pour spécifier l'UPN. Veuillez vous référer aux pages du manuel du fournisseur d'identité ad-hoc pour pouvoir le configurer.

Ce moteur fournit aussi un contrôle d'accès sur le fichier .k5login dans le répertoire personnel de l'utilisateur. Voir .k5login(5) pour plus de détails. Veuillez noter qu'un fichier .k5login vide interdira tout accès pour cet utilisateur. Pour activer cette option, utilisez « access_provider = krb5 » dans votre configuration de SSSD.

Dans le cas où l'UPN n'est pas valide dans le moteur d'identité, sssd construira un UPN en utilisant le format utilisateur@krb5_realm.

Si le module auth krb5 est utilisé dans un domaine SSSD, les options suivantes doivent être utilisées. Cf. la page de manuel sssd.conf(5), section “SECTIONS DOMAINE” pour plus de détails sur la configuration d'un domaine SSSD.

krb5_server, krb5_backup_server (string)

Spécifie la liste séparée par des virgules des adresses IP ou des noms de systèmes des serveurs Kerberos auquel SSSD doit se connecter, par ordre de préférence. Pour plus d'informations sur la redondance par bascule et le serveur, consultez la section de “BASCULE”. Un numéro de port facultatif (précédé de deux-points) peut être ajouté aux adresses ou aux noms de systèmes. Si vide, le service de découverte est activé - pour plus d'informations, se reporter à la section “DÉCOUVERTE DE SERVICE”.

Lors de l'utilisation de découverte de services pour le KDC ou les serveurs kpasswd, SSSD recherche en premier les entrées DNS qui définissent _udp comme protocole, et passe sur _tcp si aucune entrée n'est trouvée.

Cette option s'appelait “krb5_kdcip” dans les versions précédentes de SSSD. Bien que ce nom soit toujours reconnu à l'heure actuelle, il est conseillé de migrer les fichiers de configuration vers l'utilisation de “krb5_server”.

krb5_realm (chaîne)

Le nom du domaine Kerberos. Cette option est nécessaire et doit être renseignée.

krb5_kpasswd, krb5_backup_kpasswd (string)

Si le service de changement de mot de passe ne fonctionne pas sur le KDC, des serveurs de secours peuvent être définis ici. Un numéro de port facultatif (précédé par un signe deux-points) peut-être être suffixé aux adresses ou aux noms de systèmes.

Pour plus d'information sur la bascule et la redondance de serveurs, voir la section “BASCULE”. Noter que même si il n'y a plus de serveurs kpasswd à essayer, le moteur ne passe pas en mode hors-ligne si l'authentification KDC est toujours possible.

Par défaut : utiliser le KDC

krb5_ccachedir (chaîne)

Directory to store credential caches. All the substitution sequences of krb5_ccname_template can be used here, too, except %d and %P. The directory is created as private and owned by the user, with permissions set to 0700.

Par défaut : /tmp

krb5_ccname_template (chaîne)

Location of the user's credential cache. Three credential cache types are currently supported: “FILE”, “DIR” and “KEYRING:persistent”. The cache can be specified either as TYPE:RESIDUAL, or as an absolute path, which implies the “FILE” type. In the template, the following sequences are substituted:

%u

identifiant de connexion

%U

UID de l'utilisateur

%p

nom du principal

%r

nom de domaine

%h

répertoire personnel

%d

valeur de krb5_ccachedir

%P

l'ID de processus du client SSSD

%%

un « % » littéral

If the template ends with 'XXXXXX' mkstemp(3) is used to create a unique filename in a safe way.

When using KEYRING types, the only supported mechanism is “KEYRING:persistent:%U”, which uses the Linux kernel keyring to store credentials on a per-UID basis. This is also the recommended choice, as it is the most secure and predictable method.

The default value for the credential cache name is sourced from the profile stored in the system wide krb5.conf configuration file in the [libdefaults] section. The option name is default_ccache_name. See krb5.conf(5)'s PARAMETER EXPANSION paragraph for additional information on the expansion format defined by krb5.conf.

NOTE: Please be aware that libkrb5 ccache expansion template from krb5.conf(5) uses different expansion sequences than SSSD.

Par défaut : (valeur provenant de libkrb5)

krb5_auth_timeout (entier)

Délai d'attente, en secondes, après l'annulation d'une requête d'authentification en ligne ou de changement de mot de passe. La requête d'authentification sera effectuée hors-ligne si cela est possible.

Par défaut : 6

krb5_validate (booléen)

Vérifie à l'aide de krb5_keytab que le TGT obtenu n'a pas été usurpé. Les entrées d'un fichier keytab sont vérifiées dans l'ordre, et la première entrée avec un domaine correspondant est utilisée pour la validation. Si aucune entrée ne correspond au domaine, la dernière entrée dans le fichier keytab est utilisée. Ce processus peut être utilisé pour valider des environnements utilisant l'approbation entre domaines en plaçant l'entrée keytab appropriée comme dernière ou comme seule entrée dans le fichier keytab.

Par défaut : false

krb5_keytab (chaîne)

L'emplacement du fichier keytab à utiliser pour valider les données d'identification obtenues à partir de KDC.

Par défaut : /etc/krb5.keytab

krb5_store_password_if_offline (booléen)

Stocke le mot de passe de l'utilisateur si le fournisseur est hors-ligne, puis l'utilise pour obtenir un TGT lorsque le fournisseur redevient disponible en ligne.

NOTE : cette fonctionnalité n'est actuellement disponible que sur les plates-formes Linux. Les mots de passe stockés de cette manière sont conservés en texte brut dans le trousseau de clés du noyau et sont potentiellement accessibles à l'utilisateur root (avec difficulté).

Par défaut : false

krb5_renewable_lifetime (chaîne)

Demande un ticket renouvelable avec une durée de vie totale, donnée par un entier immédiatement suivi par une unité de temps :

s pour secondes

m pour minutes

h pour heures

d pour jours.

Si aucune unité n'est spécifiée, s est utilisé.

NOTE : il n'est pas possible de mélanger les unités. Pour indiquer une durée de vie renouvelable de une heure et trente minutes, utiliser « 90m » au lieu de « 1h30m ».

Par défaut : non défini, c'est-à-dire que le TGT n'est pas renouvelable

krb5_lifetime (chaîne)

Demande un ticket avec une durée de vie, donnée par un entier immédiatement suivi par une unité de temps :

s pour secondes

m pour minutes

h pour heures

d pour jours.

Si aucune unité n'est spécifiée, s est utilisé.

NOTE : il n'est pas possible de mélanger les unités. Pour indiquer une durée de vie de une heure et trente minutes, utiliser « 90m » au lieu de « 1h30m ».

Par défaut : non défini, c'est-à-dire la durée de vie par défaut configurée dans le KDC.

krb5_renew_interval (chaîne)

La durée, en secondes, entre deux vérifications pour savoir si le TGT doit être renouvelé. Les TGT sont renouvelés si environ la moitié de leur durée de vie est dépassée. Indiquée par un entier immédiatement suivi d'une unité de temps :

s pour secondes

m pour minutes

h pour heures

d pour jours.

Si aucune unité n'est spécifiée, s est utilisé.

NOTE : il n'est pas possible de mélanger les unités. Pour indiquer une durée de vie renouvelable de une heure et trente minutes, utiliser « 90m » au lieu de « 1h30m ».

Si cette option n'est pas définie ou définie à 0, le renouvellement automatique est désactivé.

Par défaut : non défini

krb5_use_fast (chaîne)

Active le flexible authentication secure tunneling (FAST) pour la pré-authentification Kerberos. Les options suivantes sont supportées :

never : ne jamais utiliser FAST. Ceci équivaut à ne pas définir cette option.

try : eassyer d'utiliser FAST. Si le serveur ne prend pas en charge FAST, continuer l'authentification sans.

demander  : imposer d'utiliser FAST. L'authentification échoue si le serveur ne requiert pas FAST.

Par défaut : non défini, i.e. FAST n'est pas utilisé.

NOTE : un fichier keytab est requis pour utiliser FAST.

NOTE : SSSD prend en charge le paramètre FAST uniquement avec MIT Kerberos version 1.8 et au-delà. L'utilisation de SSSD avec une version antérieure de MIT Kerberos avec cette option est une erreur de configuration.

krb5_fast_principal (chaîne)

Spécifie le principal de serveur afin d'utiliser FAST.

krb5_canonicalize (booléen)

Spécifie si les principaux du système et de l'utilisateur doivent être rendus canoniques. Cette fonctionnalité est disponible avec MIT Kerberos 1.7 et versions suivantes.

Par défaut : false

krb5_use_kdcinfo (booléen)

Indique si SSSD doit préciser aux bibliothèques Kerberos quels domaine et KDC utiliser. Cette option est activée par défaut, si elle est désactivée, la bibliothèque Kerberos doit être configurée à l'aide du fichier de configuration krb5.conf(5).

Consulter la page de manuel de sssd_krb5_locator_plugin(8) pour plus d'informations sur le greffon de localisation.

Par défaut : true

krb5_kdcinfo_lookahead (string)

When krb5_use_kdcinfo is set to true, you can limit the amount of servers handed to sssd_krb5_locator_plugin(8). This might be helpful when there are too many servers discovered using SRV record.

The krb5_kdcinfo_lookahead option contains two numbers separated by a colon. The first number represents number of primary servers used and the second number specifies the number of backup servers.

For example 10:0 means that up to 10 primary servers will be handed to sssd_krb5_locator_plugin(8) but no backup servers.

Default: 3:1

krb5_use_enterprise_principal (booléen)

Indique si le principal de l'utilisateur doit être traité comme un principal d'entreprise. Cf. la section 5 de la RFC 6806 pour plus de détails sur les principals d'entreprise.

Par défaut : false (AD provider : true)

The IPA provider will set to option to 'true' if it detects that the server is capable of handling enterprise principals and the option is not set explicitly in the config file.

krb5_map_user (chaîne)

The list of mappings is given as a comma-separated list of pairs “username:primary” where “username” is a UNIX user name and “primary” is a user part of a kerberos principal. This mapping is used when user is authenticating using “auth_provider = krb5”.

exemple :

krb5_realm = REALM
krb5_map_user = joe:juser,dick:richard

“joe” and “dick” are UNIX user names and “juser” and “richard” are primaries of kerberos principals. For user “joe” resp. “dick” SSSD will try to kinit as “juser@REALM” resp. “richard@REALM”.

Par défaut : non défini

La fonctionnalité de bascule autorise le moteur à basculer automatiquement sur un serveur différent si le serveur actuel est défaillant.

La liste des serveurs est donnée sous forme de liste séparée par des virgules ; un nombre quelconque d'espaces est autorisé autour de la virgule. Les serveurs sont répertoriés par ordre de préférence. La liste peut contenir un nombre quelconque de serveurs.

Pour chaque option de configuration alors que la bascule est activée, il existe deux variantes : primary et backup. L'idée est que les serveurs dans la liste principale sont préférés et les serveurs de secours sont interrogés uniquement si aucun serveur primaire ne peut être atteint. Si un serveur de secours est sélectionné, un délai d'attente de 31 secondes est défini. Après ce délai d'attente, SSSD tentera périodiquement de se reconnecter à un des serveurs primaires. S'il réussit, il remplacera l'actuel serveur (de secours) actif.

Le mécanisme de bascule fait la distinction entre une machine et d'un service. Le moteur tente d'abord de résoudre le nom d'hôte d'un ordinateur donné ; en cas d'échec de cette tentative de résolution, la machine est considérée comme hors ligne. Aucune autre tentative n'est faite pour se connecter à cette machine pour tout autre service. Si la tentative de résolution réussit, le serveur principal tente de se connecter à un service sur cette machine. Si la tentative de connexion de service échoue, alors ce seul service est considéré comme hors ligne et le moteur passe automatiquement au service suivant. La machine est toujours considérée en ligne et peut toujours être considérée pour une tentative d'accès à un autre service.

Les tentatives de connexion ultérieures sont faites vers des machines ou des services marqués comme hors connexion après un délai spécifié ; ce délai est actuellement spécifié en dur à 30 secondes.

S'il n'y a plus aucune machine à essayer, le moteur dans son ensemble bascule dans le mode hors connexion et tente ensuite de se reconnecter toutes les 30 secondes.

Resolving a server to connect to can be as simple as running a single DNS query or can involve several steps, such as finding the correct site or trying out multiple host names in case some of the configured servers are not reachable. The more complex scenarios can take some time and SSSD needs to balance between providing enough time to finish the resolution process but on the other hand, not trying for too long before falling back to offline mode. If the SSSD debug logs show that the server resolution is timing out before a live server is contacted, you can consider changing the time outs.

This section lists the available tunables. Please refer to their description in the sssd.conf(5), manual page.

dns_resolver_server_timeout

Time in milliseconds that sets how long would SSSD talk to a single DNS server before trying next one.

Par défaut : 1000

dns_resolver_op_timeout

Time in seconds to tell how long would SSSD try to resolve single DNS query (e.g. resolution of a hostname or an SRV record) before trying the next hostname or discovery domain.

Par défaut : 2

dns_resolver_timeout

How long would SSSD try to resolve a failover service. This service resolution internally might include several steps, such as resolving DNS SRV queries or locating the site.

Default: 4

For LDAP-based providers, the resolve operation is performed as part of an LDAP connection operation. Therefore, also the “ldap_opt_timeout>” timeout should be set to a larger value than “dns_resolver_timeout” which in turn should be set to a larger value than “dns_resolver_op_timeout” which should be larger than “dns_resolver_server_timeout”.

La fonctionnalité de découverte de services permet aux moteurs de trouver automatiquement les serveurs appropriés auxquels se connecter à l'aide d'une requête DNS spéciale. Cette fonctionnalité n'est pas pris en charge pour sur les serveurs secondaires.

Si aucun serveur n'est spécifié, le moteur utilise automatiquement la découverte de services pour tenter de trouver un serveur. L'utilisateur peut aussi choisir d'utiliser des adresses de serveur et de découverte de services fixes en insérant un mot-clé spécial, “_srv_”, dans la liste des serveurs. L'ordre de préférence est maintenu. Cette fonctionnalité est utile si, par exemple, l'utilisateur préfère utiliser la découverte de services chaque fois que possible et se replier vers un serveur spécifique lorsqu'aucun serveur ne peut être découvert à l'aide du DNS.

Se reporter au paramètre “dns_discovery_domain” dans la page de manuel sssd.conf(5) pour plus de détails.

Les requêtes spécifient généralement _tcp comme protocole. Les exceptions sont documentées dans les descriptions respectives des options.

Pour plus d'informations sur le mécanisme de découverte de services, se reporter à la RFC 2782.

L'exemple suivant suppose que SSSD est correctement configuré et que FOO est l'un des domaines de la section [sssd]. Cet exemple montre uniquement la configuration de l'authentification Kerberos, et n'inclut aucun fournisseur d'identité.

[domain/FOO]
auth_provider = krb5
krb5_server = 192.168.1.1
krb5_realm = EXAMPLE.COM

sssd(8), sssd.conf(5), sssd-ldap(5), sssd-krb5(5), sssd-simple(5), sssd-ipa(5), sssd-ad(5), sssd-files(5), sssd-sudo(5), sssd-session-recording(5), sss_cache(8), sss_debuglevel(8), sss_obfuscate(8), sss_seed(8), sssd_krb5_locator_plugin(8), sss_ssh_authorizedkeys(8), sss_ssh_knownhostsproxy(8), sssd-ifp(5), pam_sss(8). sss_rpcidmapd(5)

The SSSD upstream - https://pagure.io/SSSD/sssd/
11/04/2019 SSSD