2015-08-17 63 views
1

我已經安裝了OpenLDAP的設置綁定的OpenLDAP用戶爲Windows和使用LDAP用戶的這些細節我們如何連接並使用PHP WAMP服務器


IP地址:http://localhost/
完全可分辨名稱:CN =名稱,CN =用戶,DC = MYDOMAIN,DC = COM,
服務器名稱:LDAP:// server1的
pasword:祕密
域:mydomain.com

現在我試圖獲取用戶名=在代碼中給定的名稱下面進行驗證ldap服務器。它正在連接,但數據綁定和搜索正在產生這些錯誤。

警告:的ldap_bind():無法綁定到服務器:無法聯繫LDAP服務器在C:\瓦帕\ WWW \ LDAP認證\上線connect.php 14


警告:ldap_search() :提供的參數不是在第15行中的C:\ wamp \ www \ ldap authentication \ connect.php中的有效ldap鏈接資源

我是從未使用過的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"); 
} 
?> 
+0

你沒有做任何錯誤檢查。在繼續之前檢查每個'ldap_ *'語句是否有錯誤! – RiggsFolly

回答

0

有兩種方法可以使用php連接到LDAP服務器。

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

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

至於我能看到你想這兩者是行不通的混合。

個人而言,我喜歡ldap://ldap.example.org:389因爲這是連接到LDAPS保護的服務器(你不需要的端口,如果它的默認端口)的唯一途徑使用ldaps://ldap.example.org