LDAP ИЗМЕНИТЬ ПАРОЛЬ PHP - PullRequest
0 голосов
/ 06 июня 2018

Я хочу изменить пароль пользователя [unicodePwd] в Windows Active Directory с помощью PHP LDAP.

Я использую Windows Active Directory через PHP LDAP.

У меня нет проблем с подключением

У меня нет проблем со сбором данных.

У меня нет проблем с изменением атрибутов с помощью ldap_mod_replace или ldap_modify

, за исключением "unicodePwd".

* обратите внимание, что это работает

$user['telephonenumber'] = '1234567890';

* обратите внимание, что это не работает

$user['unicodePwd'] = mb_convert_encoding('my_new_password', "UTF-16LE");

// CODE

$result = ldap_modify($ldap, $dn, $user);
return ldap_error($ldap);

// КОД

// ОШИБКА ПРИ ИЗМЕНЕНИИ unicodePwd

ldap_modify(): Modify: Server is unwilling to perform

// НЕТ ОШИБКИ для номера телефона

  • 06/11/2018 Проблема,

Я не могу настроить свой сервер на ldap поверх ssl.Уже попробовал установить AD CS, пока ничего не получалось.Все еще настраиваете на моем сервере какие-либо идеи по установке CA (центра сертификации) для использования в LDAP через SSL?

  • 06/20/2018 Проблема, НОВАЯ ПРОБЛЕМА

Уже настроенаLDAP OVER SSL, я также могу использовать ldap, используя

cmd-> ldp;порт 389 и 636 с ssl - это хорошо.

но когда я запускаю его в своем php через порт 636 или ldaps: // имя_сервера, это ошибка,

ldap_bind(): Unable to bind to server: Can't contact LDAP server

1 Ответ

0 голосов
/ 07 июня 2018

Для изменения пароля вам нужно быть на защищенном соединении (и, возможно, других опциях, связанных с безопасностью).

Добавьте следующее перед вызовом ldap_bind():

ldap_start_tls($ldap);

Это хорошая идея, даже если вы не пытаетесь сменить пароль, так как в противном случае ваша операция связывания является открытым текстом и может быть перехвачена.


Если вы видите эту ошибку:

Предупреждение: ldap_start_tls (): невозможно запустить TLS: ошибка подключения в ...

Чтобы обойти проблему, добавьте следующую строку перед Вы звоните ldap_connect:

putenv('LDAPTLS_REQCERT=never');

ПРЕДУПРЕЖДЕНИЕ : Это отключает проверку действительности сертификата сервера LDAP!В идеале вы должны добавить сертификат сервера (или подписывающий его CA) в ваше доверенное хранилище.

...