Nodejs ldapjs activedirectory - сброс пароля без знания текущего пароля - PullRequest
0 голосов
/ 25 апреля 2019

В Nodejs как сбросить пароль активной директории, не зная текущего пароля?

В настоящее время я использую 2 библиотеки ниже.

https://www.npmjs.com/package/activedirectory

http://ldapjs.org/index.html

У меня есть код ниже, который отлично работает, если я знаю текущий пароль. Но я также хочу сбросить пароль, если я не знаю текущий пароль.

function modifyPassword() {

   return new Promise((resolve, reject) => {

    try {
      //ldapClient.bind(userDN, oldPassword, err => {
      ldapClient.bind(service_acc_user, service_acc_pwd, err => {
        if (err) {
          reject(err);
        }

        ldapClient.modify(userDN, [
          new ldap.Change({
            operation: 'delete',
            modification: {
              unicodePwd: encodePassword(oldPassword)
            }
          }),
          new ldap.Change({
            operation: 'add',
            modification: {
              unicodePwd: encodePassword(newPassword)
            }
          })
        ], (error) => {
          if (error) {
            reject(error);
          } else {
            resolve('Successfully password modified.');
          }
        });
      })
    } catch (error) {
      console.error(error);
      reject(error);

       }
      })
}

Я попытался использовать приведенный выше код, передав фиктивный текущий пароль, но получил следующую ошибку.

'00000056: AtrErr: DSID-03190F80, #1:\n\t0: 00000056: DSID-03190F80, problem 1005 (CONSTRAINT_ATT_TYPE), data 0, Att 9005a (unicodePwd)\n\u0000'

1 Ответ

0 голосов
/ 25 апреля 2019

При одновременной отправке add и delete Active Directory рассматривает его как нормальный сброс пароля, чтобы выполнить сброс пароля администратора. Active Directory ожидает только получение команды replace.

Я написал о проблеме Github , но пришел сюда в надежде получить правильные ответы.: D

...