Password change should be done using the LDAP Password Modify Extended Operation
https://www.ietf.org/rfc/rfc3062.txt This might help using ppolicy.
Also, all password change in FD should go through the change_password function as it takes care of things like samba sync or shadowAccount update.