OpenLdap不会检索用户密码

时间:2016-05-03 09:41:44

标签: php symfony ldap 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]

其他属性工作正常,期望用户密码

任何人都可以帮忙吗?

感谢。

1 个答案:

答案 0 :(得分:2)

尝试指定要显式返回的属性。

$dn = 'ou=people,dc=powerm,dc=com';
$filter = 'uid=' . $login;
$attrs = ['displayname', 'userpassword', 'mobile', 'mail'];

$sr = ldap_search($ds, $dn, $filter, $attrs);

除非您明确要求,否则可以将目录配置为不返回此安全敏感属性。

该属性可能还需要特殊权限才能访问它 - 您是否使用相同的凭据连接到代码中的数据库,就像在phpLDAPAdmin中一样?

服务器也可能配置为不通过加密连接返回密码 - 使用传递给ldaps://的{​​{1}}网址或使用ldap_start_tls()启动。