diff --git a/Notes_sssd.md b/Notes_sssd.md index 17a869a..e37745b 100644 --- a/Notes_sssd.md +++ b/Notes_sssd.md @@ -111,6 +111,57 @@ la documentation mentionne explicitement LDAP comme sources d'identité, donc il faudrait joindre le domaine AD, fonctionnerait seulement online (sauf si cache). +Stockage du Credential Cache +---------------------------- + +Par défaut, SSSD stocke le credential cache dans un fichier dont le modèle +de nom est `/tmp/krb5cc_%U_XXXXXX`, avec `%U` qui est remplacé par le UID +de l'utilisateur, et `XXXXXX` est remplacé par `mkstemp(3)` pour obtenir +un nom de fichier unique. Pour le premier utilisateur humain, cela donne: + +``` +/tmp/krb5cc_1000_TiXG5v +``` + +_Important: il semble qu'il y a un fichier par session, quand on se connecte +à la machine en SSH, on voit apparaitre un nouveau fichier `krb5cc` avec un +suffixe différent. Ces fichiers ne sont pas nettoyés lorsque la connexion +SSH est coupée._ + +Ce modèle est différent de celui utilisé par la bibliothèque système +`libkrb5` et la configuration `/etc/krb5.conf`, qui utilise plutôt +`/tmp/krb5cc_%U`, ce qui donne par exemple: + +``` +/tmp/krb5_1000_TiXG5v +``` + +Pour conserver la compatibilité avec l'existant, on force dans la +configuration SSSD l'utilisation du modèle de nom classique, c'est peut être +moins sécurisé, mais ça fait moins de surprises dans les scripts existants +qui utilisent l'authentification Kerberos (cf `orange-yourdev-setup`). +Ce qui donne dans la configuration: + +``` +krb5_ccachedir = /tmp +krb5_ccname_template = FILE:%d/krb5cc_%U +``` + +Pour bien faire, il faudrait stocker le cache dans la mémoire du noyau, c'est +ce qui est le plus sécurisé, avec la propriété: + +``` +krb5_ccname_template = KEYRING:persistent:%U +``` + +et reporter la propriété équivalente dans `/etc/krb5.conf`. +Néanmoins, ce changement a des conséquences: + + - il faut vérifier que tous nos scripts fonctionnent toujours + - il faut gérer la transition de `/etc/krb5.conf` + - l'applet `krb5-auth-dialog` ne gère pas le mode KEYRING + - dans GNOME, il faut tester le dialogue "comptes en lignes" pour Kerberos + TODO ---- diff --git a/etc/sssd/sssd.conf b/etc/sssd/sssd.conf index 4efa46b..04636a7 100644 --- a/etc/sssd/sssd.conf +++ b/etc/sssd/sssd.conf @@ -36,6 +36,8 @@ krb5_renewable_lifetime = 7d krb5_renew_interval = 30m krb5_use_kdcinfo = true krb5_kdcinfo_lookahead = 5:2 +krb5_ccachedir = /tmp +krb5_ccname_template = FILE:%d/krb5cc_%U dns_discovery_domain = S-FT-FR-EBU._sites.ad.francetelecom.fr # chpass_provider = none