我正在尝试使用PHP对使用LDAP的用户进行身份验证。我有我检查过的用户的DN是正确的。我也有密码。这是用户使用SamAccountName
进行身份验证时的正确密码。PHP ldap_bind()验证 - 错误无法绑定到服务器:凭据无效?
我希望这是在使用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绑定]:无法绑定到服务器: 无效凭证LDAP绑定失败.. 。
从行,其中ldap_bind()
调用时:
$ldapbind = ldap_bind($connect, "$dn" . "$basedn", $password);
无效凭证让我相信DN或密码可能存在错误。我已经三重检查了DN,并且据我所知,没有错误。
任何想法?
宾果!这样可行!那么您在ldap_bind()中使用的用户ID取决于ldap服务器的域的类型?或者服务器的管理员是否可以改变它?因此,在某些使用DN的ldap域中,在其他使用DOMAIN \ user的域上。其他潜在用户ID是电子邮件地址? – user840930
@ user840930 DOMAIN \ user只能在Microsoft域控制器上使用,LDAP默认是要求(我可能在这里是错误的)完整的DN,我觉得很有趣,因为这只在LDAP中可用。 –
@Stephan B请问我可以在哪里更改此域\用户?你能帮我吗? –