La configuration du serveur LDAP se trouve dans /etc/ldap/slapd.conf
.
dc=crans,dc=org
|
+-ou=group
| +-cn=user (posixGroup)
| +-cn=admin (posixGroup)
| +-cn=association (posixGroup)
|
+-ou=passwd
+-uid=nom (inetOrgPerson, posixAccount)
Les groupes sont ajoutés dans ou=group
, il y a un groupe user
destiné à être le groupe par défaut des utilisateurs, un groupe admin
qui donne les droits root sur tfawso et un groupe par association/école.
Le client LDAP utilisé est SSSD, sa configuration se trouve dans /etc/sssd/sssd.conf
, il se connecte au serveur LDAP en utilisant un certificat client signé par le certificat du serveur (ldap.rezosup.net
).
La configuration peut être générée via Ansible elle ressemble à ceci :
[sssd]
config_file_version = 2
services = nss, pam
domains = rezosup
[pam]
offline_credentials_expiration = 0
[domain/rezosup]
cache_credentials = true
entry_cache_timeout = 604800
ldap_access_filter = (objectClass=posixAccount)
enumerate = true
id_provider = ldap
auth_provider = ldap
ldap_uri = ldaps://ldap.rezosup.net/
ldap_search_base = dc=rezosup,dc=org
ldap_tls_cert = /etc/sssd/ldap.pem
ldap_tls_key = /etc/sssd/ldap.key
ldap_tls_cacert = /etc/sssd/ca.pem
ldap_tls_reqcert = demand
Sur le serveur :
cd /etc/sssd
openssl ecparam -name secp384r1 -out secp384r1.pem
openssl ecparam -in secp384r1.pem -genkey -noout -out ldap.key
openssl req -new -key ldap.key -out ldap.csr
Il faut ensuite copier le CSR sur oswaft
et lancer la commande suivante :
openssl x509 -req -in ldap.csr -CA /etc/ldap/ldap.pem -CAkey /etc/ldap/ldap.key -CAcreateserial -out ldap.pem -days 365000
Puis il faut ensuite copier le certificat et /etc/ldap/ldap.pem
sur le serveur et changer le proprétaire des différents fichiers :
chown sssd:sssd ldap.key ldap.pem