Моя проблема в том, что когда я пытаюсь получить значение атрибута ‘userPassword’, он не работает, я работаю под PHP, проблема в том, что атрибут существует, когда я открываю Phpldapadmin, я вижу его, но когда я пытаюсь получить его, используя эти строки кода, он не будет работать
$sr = ldap_search($ds,"ou=people,dc=powerm,dc=com","uid=".$login);
$data = ldap_get_entries($ds,$sr);
$password = $data[0]["userpassword"][0];
$displayName = $data[0]["displayname"][0];
$num_tel =$data[0]["mobile"][0];
$mail =$data[0]["mail"][0]
остальные атрибуты работают нормально, ожидайте пароль пользователя
кто-нибудь может помочь?
Благодарю.
Попробуйте указать атрибуты, которые вы хотите вернуть явно.
$dn = 'ou=people,dc=powerm,dc=com';
$filter = 'uid=' . $login;
$attrs = ['displayname', 'userpassword', 'mobile', 'mail'];
$sr = ldap_search($ds, $dn, $filter, $attrs);
Каталог может быть настроен так, чтобы он не возвращал этот чувствительный к безопасности атрибут, если вы явно не запросите его.
Также может быть, что для доступа к атрибуту требуются особые привилегии. Используете ли вы те же учетные данные для подключения к базе данных в вашем коде, что и в phpLDAPAdmin?
Сервер также может быть настроен так, чтобы не возвращать пароль, если он не подключен к зашифрованному соединению, инициированному с помощью ldaps://
URL передан ldap_connect()
или используя ldap_start_tls()
.
Других решений пока нет …