我有一个小问题,我需要更多地了解,我建立了一个网站,通过活动目录认证用户,它是使用PHP中的ldap
函数完成的,它是完美的工作。问题是,我不知道如何访问活动目录后,我上传网站到主机服务器。我应该做哪些步骤?
<?php
if(isset($_POST['username']) && isset($_POST['password'])){
$adServer = "ldap://Qarunho.local";
$ldap = ldap_connect($adServer);
$username = $_POST['username'];
$password = $_POST['password'];
$ldaprdn = 'Qarunho' . "''" . $username;
ldap_set_option($ldap, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($ldap, LDAP_OPT_REFERRALS, 0);
$bind = @ldap_bind($ldap, $ldaprdn, $password);
if(!empty($_POST['username'])&&!empty($_POST['password'])){
if ($bind) {
$filter="(sAMAccountName=$username)";
$result = ldap_search($ldap,"dc=Qarunho,dc=Local",$filter);
ldap_sort($ldap,$result,"sn");
$info = ldap_get_entries($ldap, $result);
for ($i=0; $i<$info["count"]; $i++)
{
if($info['count'] > 1)
break;
$_SESSION['sn'] = $info[$i]["givenname"][0].' '.$info[$i]["sn"][0];
header('location:manager_page.php');
}
@ldap_close($ldap);
}
?>
thanks in advance .....:)
这实际上取决于它的托管位置。如果web服务器是当前ActiveDirectory域的本地服务器,那么问题可能是您的web服务器没有明确的安全/网络路径到您的一个域控制器。
如果web服务器不是本地到你当前的AD域(例如,你把它放在一个远程主机像godaddy或hostgator),那么你需要使用不同的身份验证方法。具体来说,您需要看一下:
SimpleSAMLphp和谷歌如何与ADFS (Active Directory Federated Services)交互。挑战在于你必须创造一种方式,让你的私有网络和它的私有托管域控制器可以向网络发送/接收极其敏感、极其需要安全的数据。
这是个问题,因为LDAP在本地计算机上,对吗?
但是,你的网站在服务器上,并且有公共IP。所以,你必须有隧道到你的本地LDAP或者你可以发布你的LDAP到外部,这样你的网站可以访问你的LDAP