Всем доброго дня!
Столкнулся с проблемой при бинде к LDAP (Active Directory на Windows 2008 сервере) при использовании SSL-соединения (ldaps://...).
При выполнении следующего кода:
$ldapconn = ldap_connect("ldaps://192.168.11.0/", LDAP_PORT);
ldap_set_option($ldapconn, LDAP_OPT_PROTOCOL_VERSION, 3);
if ($ldapconn) {
$ldapbind = ldap_bind($ldapconn, LDAP_DOMEN."\username", "passwd");
...
}
на строке с функцией ldap_bind выдает ошибку:
WARNING: ldap_bind() [function.ldap-bind]: Unable to bind to server: Can't contact LDAP server
Если вместо
ldaps:// использовать
ldap://, то есть, незащищенное соединение, то этот же код выполняется без ошибок.
Мне критично использовать именно SSL-соединение, так как оно, судя по всему, необходимо для смены пароля пользователя LDAP посредством задания параметра unicodePwd функцией ldap_mod_replace.
Или,
возможно, есть иной способ смены пароля в AD, помимо вышеописанного?
P.S. Кстати, в комментариях на php.net есть замечательная ремарка на этот счет: "Good luck! LDAPS can be a real bitch." :)