====== Module Chain ======
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.
===== Installation =====
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.
Si vous activez le paramètre ''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é [[authzproxy|l'authentification proxyfiée]] et s'être assuré que l'utilisateur configuré dans le [[chain|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%%'' ).