1

我是 Apache Directory Studio 和 ldap 的新手。我正在从 Apache Directory Studio 运行 ldap 服务器。我在 ldap 中有一个用户,我正在尝试从 php 脚本绑定到 uid。不确定我哪里出错了。

我使用用户名作为"uid=admin,ou=user" 密码"secret"

我也试过用户名"uid=arone_a,ou=users,dc=example,dc=com" 和密码"password"

密码属性是手动设置的,arone_a是用户 uid。

我正在尝试编写一个可以拉出 ldap 服务器中的所有用户的 php 脚本。

提前致谢。

我的 PHP 脚本是:

$ldaphost = "localhost"; 

$ldapport = 10389;                

$ldaprdn='uid=admin,ou=system';

$ldappass='secret';

$ldapconn = ldap_connect($ldaphost, $ldapport)
          or die("Could not connect to $ldaphost");

if($ldapconn)
{

       $ldapbind=ldap_bind($ldapconn,$ldaprdn,$ldappass);


       if($ldapbind)
       {

                echo "success";
       }
       else
       {

                echo "not success";
       }
}

连接通过但绑定没有通过。

4

3 回答 3

1

我遇到了类似的问题,问题是我在userPassword属性中添加了一个指定语言的附加参数,导致userPassword;lang-ca-ES(向导显示了一个添加它的表单)。

这引发了使用 Apache Directory Studio 的“验证”运行良好,但在“绑定”检查中失败(您可以在密码编辑器中执行这两项操作,双击userPassword属性。

我终于userPassword没有附加属性就离开了,它完美地绑定了:)

于 2015-04-23T16:20:35.757 回答
1

只需添加 ldap set 选项,它对我有用

<?php 

$ldaphost = "localhost"; 

$ldapport = 10389;                

$ldaprdn='uid=admin,ou=system';

$ldappass='secret';

$ldapconn = ldap_connect($ldaphost, $ldapport)
          or die("Could not connect to $ldaphost");

if($ldapconn) {
    ldap_set_option($ldapconn, LDAP_OPT_PROTOCOL_VERSION, 3);

       $ldapbind=ldap_bind($ldapconn,$ldaprdn,$ldappass);

       if($ldapbind) {
                echo "success";
                
       } else {
                echo "not success";

       }
}

?>
于 2020-11-13T11:50:16.960 回答
0

简单的 BIND 请求需要 DN,而不是 RDN。你的 BIND DN 应该是这样的uid=admin,ou=system,dc=example,dc=com吗?

也可以看看

于 2013-06-30T11:55:13.193 回答