Quanto ao rascunho da IETF :
8.2.7. Policy State Updates
If the steps have completed without causing an error condition, the server performs the following steps in order to update the necessary password policy state attributes:
If the value of either pwdMaxAge or pwdMinAge is non-zero, the server updates the pwdChangedTime attribute on the entry to the current time.
If the value of pwdInHistory is non-zero, the server adds the previous password (if one existed) to the pwdHistory attribute. If the number of attributes held in the pwdHistory attribute exceeds the value of pwdInHistory, the server removes the oldest excess passwords.
If the value the pwdMustChange is TRUE and the modification is performed by a password administrator, then the pwdReset attribute is set to TRUE. Otherwise, the pwdReset is removed from the user's entry if it exists.
The pwdFailureTime and pwdGraceUseTime attributes is removed from the user's entry if they exist.
Se não me engano, o LDIF é uma operação atômica, então quando o userPassword
é modificado, ele se torna um atributo pwdFailureTime
, daí porque quando a modificação de pwdReset
parece acionar também a remoção de pwdFailureTime
falha.
Por que você precisa definir o pwdReset
para TRUE
? Você já redefiniu. Se é para garantir que o usuário deve "redefinir" a senha na primeira conexão:
pode ser que você tente modificar o atributo pwsMustChange
para TRUE
, que deve definir o atributo pwdReset
como TRUE
(de acordo com o IETF no qual se baseia a ppolicy do OpenLDAP)
ou pode ser apenas mudar as duas modificações no LDIF poderia fazer o truque.