我正在尝试使用PHP对LDAP用户进行身份验证。我有用户的DN,我检查了正确。我也有密码。这是用户在使用SamAccountName
进行身份验证时的正确密码。
我希望这是使用DN进行身份验证时使用的密码。没有针对LDAP的专有名称密码?以下是我使用PHP的ldap_bind()
函数进行身份验证的代码。我这样做是对的吗?
$ldaphost="ldap://somehost.com:3268";
$dn = "cn=LastName\, FirstName Dept/Country/ext,OU=Accounts,OU=Location,ou=Division,";
$basedn="dc=abc,dc=enterprise";
if (!($connect = ldap_connect($ldaphost))) {
die ("Could not connect to LDAP server");
}
$ldapbind = ldap_bind($connect, "$dn" . "$basedn", $password);
if ($ldapbind) {
echo "LDAP bind successful...";
} else {
echo "LDAP bind failed...";
}
我从上面的代码得到的结果是:
警告:ldap_bind()[function.ldap-bind]:无法绑定到服务器: 无效的凭据LDAP绑定失败...
从ldap_bind()
调用的行开始:
$ldapbind = ldap_bind($connect, "$dn" . "$basedn", $password);
无效凭据让我相信DN或密码可能存在错误。我已经对DN进行了三次检查,据我所知,没有错误。
有什么想法吗?
答案 0 :(得分:9)
我猜您正在连接到Microsoft域,您可以尝试使用域语法获取凭据。对于DOMAIN中的User015 - DOMAIN \ user015
答案 1 :(得分:3)
在处理ldap时,我总是发现jxplorer有用