Estou tentando gravar uma função para permitir que um usuário redefina sua senha quando precisar alterar sua senha (código 49 - ERROR_PASSWORD_MUST_CHANGE).
Eu solicito seu nome de usuário, senha atual, insira uma nova senha e confirme a nova senha.
Uma nota lateral, notei que quando tentei entrar em um aplicativo que usa a autenticação ldap, ele não permite que eles entrem. Isso me leva a acreditar que o ERROR_PASSWORD_MUST_CHANGE de alguma forma interrompe o processo de autenticação.
Para que eles redefinam a senha, eles precisam se autenticar com a senha atual (o que os confirma como sendo o proprietário real da conta), mas ela falhará.
Sei que posso usar uma conta de administrador para alterar a senha, mas ela nunca verifica se o usuário é o proprietário real da conta, pois não se importa com a senha atual.
Eu planejo escrever isso em php, não tenho certeza se isso é importante, mas estou aprendendo mais sobre as "dicas" do ldap e qualquer ajuda é apreciada.
UPDATE: eu encontrei "hack" para fazer isso funcionar. Se ldap retorna o número de código para pwdLastSet sendo 0, então você configura o pwdLastSet usando uma conta admin para -1, então eles serão capazes de autenticar para ldap, para redefinir sua senha.
Atualização: Respondeu a pergunta sobre como fazer isso no php aqui link