[英]Getting Error “ Can't contact LDAP server” using PHP ldap_bind function
我必須將Active Directory用戶與服務器綁定。 我可以成功連接服務器但不知何故無法綁定用戶。我不知道是什么原因。
以下是我的PHP源代碼:
$basedn="dc=domain,dc=com";
echo "Connecting ...<br/>";
$ds=ldap_connect("192.XXX.XXX.XX"); // must be a valid LDAP server!
echo "connect result is ".$ds."<br/>";
if($ds){
ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);
$lb=ldap_bind($ds,"cn=xyz,o=domain.com","password");
if ($lb) {
echo "LDAP bind successful...";
} else {
echo "LDAP-Errno: " . ldap_errno($ds) . "<br />";
echo "LDAP-Error: " . ldap_error($ds) . "<br />";
}
ldap_close($ds);
}
你能告訴我我在ldap_bind
函數中通過用戶名參數ldap_bind
什么嗎? 請提供任何幫助我這樣做的源代碼? 任何幫助將不勝感激。
我在一個域控制器上運行Server 2008 R2,該域最初是2003,並且必須使用login @ domain格式。 我驗證了DN是正確的,2008之前的域管理員帳戶可以使用DN進行連接。 但是,除非使用了登錄@域格式,否則非管理員無法使用。
現在,我的代碼嘗試:
$ lb = ldap_bind($ ds,“cn = login,o = domain.com”,“password”);
然后,如果沒有找到,嘗試:
$ lb = ldap_bind($ ds,“login@domain.com”,“密碼”);
這是一個快速解決方案,同時我解決了DN無法正常工作的原因。 我建議即使您使用的是2008,也請嘗試使用2003格式。
在Windows Server 2003上使用Active Directory,而不是:
$lb = ldap_bind($ds, "cn=login,o=domain.com", "password");
我不得不使用:
$lb = ldap_bind($ds, "login@domain.com", "password");
但是,您的錯誤消息( 無法聯系LDAP服務器 )看起來您沒有向ldap_connect()
提供PHP腳本可訪問的服務器地址(請檢查Windows防火牆等)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.