我们如何使用php wamp服务器连接和绑定openldap用户

时间:2015-08-17 09:46:41

标签: php windows ldap wamp openldap

我已经为windows安装了openldap设置并使用了ldap用户的这些详细信息


IP地址:http://localhost/
完整的专有名称:cn = name,cn = users,dc = mydomain,dc = com,
服务器名称:ldap:// server1
密码:秘密
域名:mydomain.com

现在我想尝试在下面的代码中给出username = name,以便从ldap服务器进行身份验证。它正在连接,但数据绑定和搜索正在生成这些错误。

警告:ldap_bind():无法绑定到服务器:无法在C:\ wamp \ www \ ldap authentication \ connect中联系LDAP服务器。第14行的php


警告:ldap_search():提供的参数不是第15行C:\ wamp \ www \ ldap authentication \ connect.php中的有效ldap链接资源

< / p>

我是ldap的新手从未使用过。任何人都可以告诉我我错在哪里或遗失了什么。我正在使用下面给出的代码。

<?php
$domain = 'mydomain.com';
$username = 'name';
$password = 'secret';
$ldapconfig['host'] = 'ldap://server1';
$ldapconfig['port'] = 389;
$ldapconfig['basedn'] = 'dc=mydomain,dc=com';

$ds=ldap_connect($ldapconfig['host'], $ldapconfig['port']);
ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($ds, LDAP_OPT_REFERRALS, 0);

$dn="cn=users,".$ldapconfig['basedn'];
$bind=ldap_bind($ds, $username .'@' .$domain, $password);
$isITuser = ldap_search($bind,$dn,'(&(objectClass=users)(sAMAccountName=' . $username. '))');
if ($isITuser) {
echo("Login correct");
} else {
echo("Login incorrect");
}
?>

1 个答案:

答案 0 :(得分:0)

使用php连接LDAP服务器有两种方法。

ldap_connect('ldap.example.com', 389);

ldap_connect('ldap://ldap.example.org:389');

据我所知,你正在尝试两者兼而有之。

我个人喜欢ldap://ldap.example.org:389,因为这是使用ldaps://ldap.example.org连接到ldaps安全服务器的唯一方法(如果它是默认端口,则不需要端口)