openldap身份验证php5-比较密码

openldap身份验证php5-比较密码,php,openldap,Php,Openldap,我正在尝试对我创建的ldap服务器进行身份验证。用户密码作为sha哈希存储在ldap中。但是,当我尝试访问userPassword属性时,它不存在。我必须以经理的身份登录。我认为这在生产服务器上不是一个好主意。有办法解决这个问题吗?返回密码字段没有意义。您可以简单地使用给定的凭据对ldap服务器进行身份验证 请参见此示例(此处参考:) 返回密码字段没有意义。您可以简单地使用给定的凭据对ldap服务器进行身份验证 请参见此示例(此处参考:) <?php $user = 'bob'; $

我正在尝试对我创建的ldap服务器进行身份验证。用户密码作为sha哈希存储在ldap中。但是,当我尝试访问userPassword属性时,它不存在。我必须以经理的身份登录。我认为这在生产服务器上不是一个好主意。有办法解决这个问题吗?

返回密码字段没有意义。您可以简单地使用给定的凭据对ldap服务器进行身份验证

请参见此示例(此处参考:)


返回密码字段没有意义。您可以简单地使用给定的凭据对ldap服务器进行身份验证

请参见此示例(此处参考:)


<?php

$user = 'bob';
$password = 'zhlob';
$host = 'myldap';
$domain = 'mydomain.ex';
$basedn = 'dc=mydomain,dc=ex';
$group = 'SomeGroup';

$ad = ldap_connect("ldap://{$host}.{$domain}") or die('Could not connect to LDAP server.');
ldap_set_option($ad, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($ad, LDAP_OPT_REFERRALS, 0);
@ldap_bind($ad, "{$user}@{$domain}", $password) or die('Could not bind to AD.');
$userdn = getDN($ad, $user, $basedn);
if (checkGroupEx($ad, $userdn, getDN($ad, $group, $basedn))) {
//if (checkGroup($ad, $userdn, getDN($ad, $group, $basedn))) {
    echo "You're authorized as ".getCN($userdn);
} else {
    echo 'Authorization failed';
}
ldap_unbind($ad);
?>