2011-10-04 116 views

回答

1

好的,所以这是我用来连接到ldap服务器的PHP。我不是100%确定这里发生了什么,我从我的公司的IT协调员处获得了此代码。我理解所有的绑定和搜索部分,但我没有得到这整个事情的ldap_set_option部分。无论如何,通过这种方式设置后,您可以调用php脚本的URL并传递参数。看看PHP,以及下面的url示例。

<?php 
//Connection parameters 
$dn = "DC=network,DC=net"; 
$host = "ldap://ldap.network.com"; 
$port = 1111 

$user = $_GET['user']; 
$pass = $_GET['pass']; 

//$user = "[email protected]"; 
//$pass = "pass"; 

$filter = "memberof"; 
$keyword = "CN=USSC_ALL,CN=Users,DC=network,DC=net"; 

$filter = "objectclass"; 
$keyword = "user"; 

$filter = "objectcategory"; 
$keyword = "CN=Person,CN=Schema,CN=Configuration,DC=network,DC=net"; 

//The real thing with PHP 
if (!empty($keyword) and !empty($dn)) { 
//Connect to the AD 
$adConn = ldap_connect($host, $port) or die("Could not connect!"); 

//Set protocol verison 
ldap_set_option($adConn, LDAP_OPT_PROTOCOL_VERSION, 3) or die ("Could not set ldap  protocol1"); 

//Set referrals... Won't work without this... 
ldap_set_option($adConn, LDAP_OPT_REFERRALS, 0) or die ("Could not set ldap protocol2"); 

//Bind the user 
$bd = ldap_bind($adConn, $user, $pass) or die ("Could not bind"); 

echo $bd; 

//End binding 
ldap_unbind($adConn); 



} else { 
    echo "<p>No results found!</p>"; 
} 

?> 


</body> 
</html> 

确定,所以现在你需要做的是通过用户名和密码的脚本,它将返回绑定。这会给你真假。这意味着如果它成功绑定它是用户名和密码的正确组合。

我这是怎么叫它:

http://192.268.192.1/ldap.php?user=(username here)&pass=(password here) 

这是我采取的方法,我认为这是一个非常简单的答案。

+0

你应该*不*使用URL参数来发布用户凭证。你也应该使用SSL。我建议在您的邮箱中设置SSL证书,并使用表单发布这些证书。 – rwyland

0

所以我已经能够找出的是,我需要使用PHP来做到这一点。通过在服务器上创建一个php文件,我可以使用内置的ldap协议将用户名和密码提交给ldap服务器进行验证。该查询应该返回true或false。只要我得到这个工作病后我的代码

相关问题