Ceci est une ancienne révision du document !
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 :
- Créer le fichier /tmp/load-module.ldif :
cat << EOF > /tmp/load-module.ldif dn: cn=module{0},cn=config changetype: modify add: olcModuleLoad olcModuleLoad: back_ldap EOF
- Jouer ce LDIF via ldapmodify :
ldapmodify -x -D cn=admin,cn=config -W -f /tmp/load-module.ldif # Ou : ldapmodify -Y EXTERNAL -H ldapi:/// -f /tmp/load-module.ldif
Il faut ensuite activer ce module pour votre database :
- Créer le fichier /tmp/config-module.ldif :
cat << EOF > /tmp/config-module.ldif dn: olcOverlay={0}chain,olcDatabase={1}mdb,cn=config objectClass: olcOverlayConfig objectClass: olcChainConfig olcOverlay: {0}chain olcChainReturnError: TRUE dn: olcDatabase={0}ldap,olcOverlay={0}chain,olcDatabase={1}mdb,cn=config 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
- Jouer ce LDIF avec ldapadd :
ldapadd -x -D cn=admin,cn=config -W -f /tmp/config-module.ldif # Ou : ldapadd -Y EXTERNAL -H ldapi:/// -f /tmp/config-module.ldif
Ici on ajoute la configuration de l'overlay
chain
pour la database o=example
avec la configuration de sa database ldap
fournissant les informations de connexion à l'annuaire LDAP mâitre. 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).
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
).