我正在嘗試使用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請問我可以在哪裏更改此域\用戶?你能幫我嗎? –