Le principe général est le suivant :
En identification ldap, postgres délègue à l'annuaire l'identification (et que l'identification). Les droits restent gérés dans postgres, y compris les dates d'expiration des comptes, etc.
Pour configurer ça, il faut modifier le fichier /etc/postgresql/9.x/main/pg_hba.conf
. La configuration est lue dans l'ordre, cela veut dire que dès qu'une condition est remplie, la lecture du fichier s'arrête.
Pour que l'identification fonctionne comme décrite précédemment, on devrait donc avoir :
# "local" is for Unix domain socket connections only
local all all peer
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# Connexions pour les serveurs web
host all all adresse_serveur1/32 md5 host all all adresse_serveur2/32 md5
# Connexions pour les applis specifiques host base_de_donnees login_specifique [plage_adresse_CIDR|adresse_ip|0.0.0.0/0] md5
# Connexions ldap pour les autres usages
host all all [plage_adresse_CIDR|adresse_ip|0.0.0.0/0] ldap ldapserver=ldap.societe.com ldapprefix="uid=" ldapsuffix=",ou=people,o=societe,c=fr" ldaptls=1
Il est conseillé d'inhiber l'identification IPV6, sinon cela peut poser des problèmes si le protocole est prioritaire dans une machine et que tout ne soit pas configuré “tip-top”.
Un reload du service postgres suffit, en principe, pour faire prendre en compte la config.