php ldap 用户认证的问题

$name = 'abc';
$ldap['pwd'] = 'qwee';
$conn = ldap_connect('beijing.com');
$ldap['dn'] = 'cn='.$name.',ou=IT,o=beijing.com';

//echo $ldap['dn'];die;
if($conn){
echo $conn.'连接服务器成功';
$bind = ldap_bind($conn,$ldap['dn'], $ldap['pwd']);

if ($bind)
{
echo "yes";
} else {
echo "no";
}
}else{
echo $conn.'连接服务器不成功';
}
echo ldap_error( $conn );
这段程序有错误,提示是这样的:

Resource id #2连接服务器成功Warning: ldap_bind() [function.ldap-bind]: Unable to bind to server: Invalid credentials in D:\AppServ\web\ceshi\index.php on line 10noInvalid credentials
简单的说就是无效的证书,但是我的rdn,和密码应该是对的啊,丢大神指教

你好,我也遇到过这个问题.
我的解决方法是不用RDN,直接用DN.
希望能帮到你.追问

我这边用DN也是不可以的,我想知道这个程序的问题出在哪里,是我的rdn,组织不正确,还是什么??

追答

这个没有特定的要求,要看你服务器那边的配置.
不过从一般情况来说你的o=beijing.com好像写的不会,
通常应该是dc=beijing,dc=com
因为不知道你LDAP服务器的配置所以我只能说通常.
至于你遇到的错误的提示信息,跟你想的一样,就是dn,和密码不匹配.

追问

奥,谢谢,哈哈,因为我是刚刚接触,所以不太了解,你能不能告诉我怎么看ldap服务器的配置,服务器不在我这,

追答

看配置文件的.不知道你用的是哪种服务器,如果是openldap的话看slapd.conf

追问

我这边用的是windows AD域,这个您了解吗,这个能不能在服务器那边看到我要绑定时的参数??或者是能不能看到rdn,或dn

追答

windows AD域是可以的.
如果是windows AD域那么你写的o=beijing.com是不正确的.
具体格式,以及查找方法我记不清了,你可以从网上搜到.
祝你成功.

追问

谢谢,我弄出来了,可以绑定了,非常感谢,我用的是beijing.com\abc这种形式

追答

你这种形式简单,下次我也试试.

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网