我是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";
}
}
连接通过,但绑定没有通过。
答案 0 :(得分:1)
我遇到了类似的问题,问题是我在userPassword
属性中添加了另一个指定语言的参数,导致userPassword;lang-ca-ES
(向导显示一个表单来添加它)。< / p>
这引起了使用Apache Directory Studio的“验证”工作正常,但在“绑定”检查中失败了(您可以在密码编辑器中同时执行这两项操作,双击userPassword
属性。
我最终离开了userPassword
而没有其他属性,并且它完全绑定了:)
答案 1 :(得分: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";
}
}
?>
答案 2 :(得分:0)
简单的BIND请求需要DN,而不是RDN。您的BIND DN应该是uid=admin,ou=system,dc=example,dc=com
吗?