On commence toujours par une petite mise à jour :

sudo apt update

 

Il faut tout d'abord installer le paquet sssd-ldap :

sudo apt install sssd-ldap

 

Il est nécessaire d'avoir un serveur ldap accessible en mode sécurisé (ldaps : ldap avec TLS), ce qui est la base lorsque l'on souhaite authentifier via ce mode.

Il n'est par contre pas nécessaire de disposer d'un compte sur cet annuaire si les informations non sensibles sont accessibles en anonymes.

Il faut ensuite créer le fichier "/etc/sssd/sssd/conf", voici un exemple simple :

[sssd]
services = nss, pam
config_file_version = 2
domains = mydom.fr

[nss]

[domain/mydom.fr]
id_provider = ldap
auth_provider = ldap
ldap_uri = ldap://ldap.mydom.fr
cache_credentials = True
ldap_search_base = ou=people,dc=mydom,dc=fr
ldap_id_use_start_tls = true
override_shell = /bin/bash
 

Ne pas oublier de positionner les droits sur ce fichier :

sudo chmod 600 /etc/sssd/sssd.conf

 

Et de redémarrer le service :

sudo systemctl restart sssd

 

Pour vérifier la connexion, il suffit de tester l'existence d'un login de l'annuaire :

id toto

uid=4578(toto) gid=3000(compta) groupes=3000(compta)

 

Par défaut, les personnes ne disposent pas de "Home Directory", il est possible d'ajouter un module qui va le créer automatiquement à la première connection :

sudo pam-auth-update --enable mkhomedir

 

Il n'y a plus ensuite qu'à tenter une connexion :

ssh toto@localhost

 

Il est possible de filtrer pour n'autoriser que les personnes correspondant à certains critères. Il est important de rappeler que LDAP est en notation préfixée, que le ET se note "&" et le OU se note "|". Voici un exmple de filtrage :

[domain/mydom.fr]
id_provider = ldap
auth_provider = ldap
ldap_uri = ldap://ldap.mydom.fr
cache_credentials = True
ldap_search_base = ou=people,dc=mydom,dc=fr
ldap_id_use_start_tls = true
override_shell = /bin/bash
access_provider = ldap
ldap_access_filter = (|(champ1=valeur1)(champ1=valeur2))

 

Il est également possible d'utiliser plusieurs annuaires :

[sssd]
services = nss, pam
config_file_version = 2
domains = mydom.fr,newdom.fr
[nss] [domain/mydom.fr]
id_provider = ldap
auth_provider = ldap
ldap_uri = ldap://ldap.mydom.fr
cache_credentials = True
ldap_search_base = ou=people,dc=mydom,dc=fr
ldap_id_use_start_tls = true
override_shell = /bin/bash
access_provider = ldap
ldap_access_filter = (|(champ1=valeur1)(champ1=valeur2))
[domain/newdom.fr]
id_provider = ldap
auth_provider = ldap
ldap_uri = ldap://ldap.newdom.fr
cache_credentials = True
ldap_search_base = ou=people,dc=newdom,dc=fr
ldap_id_use_start_tls = true
override_shell = /bin/bash