OpenLdap не получит пароль пользователя

Моя проблема в том, что когда я пытаюсь получить значение атрибута ‘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]

остальные атрибуты работают нормально, ожидайте пароль пользователя

кто-нибудь может помочь?

Благодарю.

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().

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]