Cette overlay permet depuis un serveur esclave de proxifier, de manière transparente pour l'utilisateur, les requêtes en écriture sur le serveur maître.
Il faut d'abord charger le module back_ldap :
ldapmodify -Y EXTERNAL -H ldapi:/// << EOF dn: cn=module{0},cn=config changetype: modify add: olcModuleLoad olcModuleLoad: back_ldap EOF
Il faut ensuite activer ce module au niveau de la database frontend :
ldapmodify -QY EXTERNAL -H ldapi:/// << EOF dn: olcOverlay=chain,olcDatabase={-1}frontend,cn=config changetype: add objectClass: olcOverlayConfig objectClass: olcChainConfig olcOverlay: {0}chain olcChainReturnError: TRUE dn: olcDatabase=ldap,olcOverlay={0}chain,olcDatabase={-1}frontend, cn=config changetype: add objectClass: olcLDAPConfig objectClass: olcChainDatabase olcDatabase: {0}ldap olcDbURI: ldaps://ldap.example.org olcDbRebindAsUser: TRUE olcDbIDAssertBind: bindmethod=simple binddn="uid=syncrepl,ou=sysaccounts,o=example" credentials="secret" mode=self EOF
Ici on ajoute la configuration du chaining avec la configuration de sa database ldap
fournissant les informations de connexion à l'annuaire LDAP maître. Les identifiants de connexion renseignés dans le paramètre olcDbIDAssertBind
sont utilisés pour se connecter à l'annuaire LDAP maître, mais les droits endossés lors de l'exécution de la requête sur le serveur maître sont bien ceux de l'utilisateur d'origine (=celui qui a fait la requête sur le serveur esclave) si vous avez activé le paramètre olcDbRebindAsUser
. Attention cependant, dans le cas de modifications systèmes, tel que la mise à jour des attributs opérationnels des overlays ppolicy ou lastbind, la modification sera faite sur le serveur maître en tant que l'utilisateur renseigné dans le paramètre olcDbIDAssertBind
et il vous faut vous assurer que les ACLs l'y autorisent.
olcDbRebindAsUser
(fortement conseillé), lorsqu'une modification sera transmises au serveur maître, elle le sera faites en se reconnectant en tant que l'utilisateur ayant demandé la modification sur le serveur esclave. Pour que cela fonctionne, il faut avoir activé et configuré l'authentification proxyfiée et s'être assuré que l'utilisateur configuré dans le chaining dispose bien des droits pour cela.
Pour finir, assurez-vous que le paramètre olcUpdateRef
de votre database est bien renseigné et égal à l'attribut olcDbURI
du LDIF précédent ( ldaps://ldap.example.org
).