Version française
Récemment nous avons eu des soucis curieux sur un annuaire OpenLDAP.
Lors de la création d'une entrée, le message d'erreur était :
adding new entry "uid=GFR6285008,ou=users,dc=example,dc=com" ldap_add: Constraint violation (19) additional info: attribute 'pwdChangedTime' cannot have multiple values
L'overlay ppolicy est en place, et une politique par défaut existe. Le message n'apparaît pas lorsque l'on modifie une entrée.
Par contre, il est également impossible de modifier l'objet définissant la politique de mot de passe par défaut : via un ldapmodify, la commande reste en suspens, sans message dans les logs.
Après investigation, j'ai trouvé des choses curieuses dans le répertoire /etc/openldap/slapd.d/cn=config/olcDatabase={2}hdb :
ls /etc/openldap/slapd.d/cn=config/olcDatabase={2}hdb olcOverlay={0}memberof.ldif olcOverlay={1}refint.ldif olcOverlay={2}ppolicy.ldif olcOverlay={3}syncprov.ldif olcOverlay={4}memberof.ldif olcOverlay={5}refint.ldif olcOverlay={6}ppolicy.ldif olcOverlay={7}syncprov.ldif
Les définitions des overlays étaient toutes doublées. Mauvaise manipulation ? copie hasardeuse de fichiers ?
Une fois la situation clarifiée, en supprimant les doublons, le message d'erreur a disparu.
English version - Issue on OpenLDAP with duplicate overlays definitions
Recently, we had some curious issues with an OpenLDAP instance.
When creating a new entry, we had an error message of Constraint Violation :
adding new entry "uid=GFR6285008,ou=users,dc=example,dc=com" ldap_add: Constraint violation (19) additional info: attribute 'pwdChangedTime' cannot have multiple values
The ppolicy overlay is in place, and there is a default password policy. The message does not show when we modify an entry.
It is also impossible to change the LDAP object which defines the defaut password policy: when using ldapmodify, the command hangs, and nothing special shows in the log file.
After some research, I found some curious things in the directory /etc/openldap/slapd.d/cn=config/olcDatabase={2}hdb :
ls /etc/openldap/slapd.d/cn=config/olcDatabase={2}hdb olcOverlay={0}memberof.ldif olcOverlay={1}refint.ldif olcOverlay={2}ppolicy.ldif olcOverlay={3}syncprov.ldif olcOverlay={4}memberof.ldif olcOverlay={5}refint.ldif olcOverlay={6}ppolicy.ldif olcOverlay={7}syncprov.ldif
Overlays definitions for our dabase where duplicated. Was it due to a bad copy or command?
Once we cleared duplicate files, error message didn't show, and we were able to create an entry without problem.