OpenLDAP: l'atsortingbut pwdChangedTime n'est pas créé après avoir changé le mot de passe?

Je vais intégrer le Multisite de check_mk avec OpenLDAP . Après avoir configuré le connecteur LDAP, j'ai l'erreur suivante lors de l'ouverture de la page "Utilisateurs et Contacts":

Error executing sync hook The "Authentication Expiration" atsortingbute (pwdchangedtime) could not be fetchedfrom the LDAP server for user {u'cn': [u'noreply']}. 

Voici toutes les étapes que j'ai effectuées pour implémenter la superposition de stratégie de mot de passe:

Installer les modules de recouvrement pour le server OpenLDAP:

 yum install openldap-servers-overlays 

Ajoutez les lignes suivantes à /etc/openldap/slapd.conf:

 include /etc/openldap/schema/ppolicy.schema modulepath /usr/lib64/openldap moduleload ppolicy.la 

puis je redémarrer l'OpenLDAP et essayer de changer le mot de passe. Je suis sûr que cela a été changé avec succès, mais je ne vois pas l'atsortingbut pwdChangedTime lors de l'exécution d'un ldapsearch :

 $ ldapsearch -x -D "cn=Manager,dc=domain,dc=com" -y .passwd.cnf "cn=noreply" dn: cn=noreply,ou=it,dc=domain,dc=com cn: noreply mail: noreply at domain.com maildrop: noreply at domain.com sn: No uid: noreply objectClass: inetOrgPerson objectClass: mailUser objectClass: organizationalPerson objectClass: person objectClass: top objectClass: pwdPolicy objectClass: pwdPolicyChecker pwdAtsortingbute: userPassword pwdMaxAge: 31536000 pwdMinAge: 60 pwdAllowUserChange: TRUE userPassword: {MD5}xx 

Ai-je manqué quelque chose?

En fait, l'atsortingbut pwdChangedTime est déjà créé, mais comme il s'agit d'un atsortingbut opérationnel , il n'est pas renvoyé par défaut. Vous devez faire un ldapsearch avec ce nom:

 $ ldapsearch -x -D "cn=Manager,dc=domain,dc=com" -W "cn=noreply" pwdChangedTime Enter LDAP Password: # extended LDIF # # LDAPv3 # base <> with scope subtree # filter: cn=noreply # requesting: pwdChangedTime # # noreply, it, domain.com dn: cn=noreply,ou=it,dc=domain,dc=com pwdChangedTime: 20130128154849Z 

ou ajoute le plus ( + ) au ldapsearch :

 # ldapsearch -x -D "cn=Manager,dc=domain,dc=com" -y .passwd.cnf "cn=noreply" + # extended LDIF # # LDAPv3 # base <> with scope subtree # filter: cn=noreply # requesting: + # # noreply, it, domain.com dn: cn=noreply,ou=it,dc=domain,dc=com structuralObjectClass: inetOrgPerson entryUUID: 047e7ce6-3b99-1031-83cb-afef2344189c creatorsName: cn=Manager,dc=domain,dc=com createTimestamp: 20120526161012Z pwdChangedTime: 20130129032710Z entryCSN: 20130129032710Z#00003a#00#000000 modifiersName: cn=Manager,dc=domain,dc=com modifyTimestamp: 20130129032710Z entryDN: cn=noreply,ou=it,dc=domain,dc=com subschemaSubentry: cn=Subschema hasSubordinates: FALSE 

Pour append cet atsortingbut à tous les users qui ont été créés avant la mise en œuvre de la sous- userPassword stratégie de mot de passe, vous pouvez simplement mettre à jour le userPassword l' userPassword avec la même valeur:

 ldapsearch -x -D cn=Manager,dc=domain,dc=com -W -y .passwd.txt -L "(&(objectclass=person)(!(pwdChangedTime=*)))" userPassword | sed '/dn: /a\changetype: modify\nreplace: userPassword' | ldapmodify -x -D cn=Manager,dc=domain,dc=com -y .passwd.txt -W