从Windows工作站单点登录到运行在不属于同一域的Linux服务器上的PHP脚本

从Windows工作站单点登录到运行在不属于同一域的Linux服务器上的PHP脚本,php,ldap,single-sign-on,Php,Ldap,Single Sign On,编辑:在今天上午进一步研究之后,我试图使我的帖子更具体: 我在公司数据中心的web服务器上运行了一个php脚本。我们的一个客户端需要使用单点登录从用户的windows工作站访问该脚本。php服务器无权访问windows用户登录的域 用户是否有办法打开Internet Explorer(或类似工具),访问我正在开发的网站并“知道”他们的用户名?该站点还需要拒绝不属于客户端域的任何人的访问 所以说得很清楚,我遇到的主要问题是,运行php脚本的服务器不是访问它的用户所在域的一部分 旁注:如果不可能实现

编辑:在今天上午进一步研究之后,我试图使我的帖子更具体:

我在公司数据中心的web服务器上运行了一个php脚本。我们的一个客户端需要使用单点登录从用户的windows工作站访问该脚本。php服务器无权访问windows用户登录的域

用户是否有办法打开Internet Explorer(或类似工具),访问我正在开发的网站并“知道”他们的用户名?该站点还需要拒绝不属于客户端域的任何人的访问

所以说得很清楚,我遇到的主要问题是,运行php脚本的服务器不是访问它的用户所在域的一部分

旁注:如果不可能实现真正的SSO,用户必须重新键入用户名和密码,这是可以的,但我想这意味着身份验证是由php脚本完成的,这是不可能的,因为它无法访问客户端AD服务器

谢谢:)

原职:

只是在一些链接或一般信息之后开始。我正在example1.com上构建一个基于php的网站,但要访问它,用户需要在example2.local上对active directory进行身份验证。无法在internet上访问域控制器(例如2.local)。用户将登录到example2.local域中的Windows工作站,并且可以访问internet

这有什么办法吗?我被告知要研究“单点登录”,但到目前为止,我发现的一切都表明广告域应该是example2.com(而不是.local)。这里的一位同事向我保证,更广泛的互联网通常无法访问域控制器。。那么这通常是如何做到的呢

此外,客户也强调了安全性的需要

谢谢

编辑:在阅读了更多关于SSO的内容后,我可能会更困惑,但我想补充一点,我的php应用程序需要知道的是:1)用户在其域中经过身份验证,2)他们的用户名。最简单的方法是什么?谢谢

实际上,我刚刚实现了一个基本的LDAP身份验证脚本。这是我修改和修改脚本以适应我的设置之前的第一稿。这基本上是连接到服务器,如果不是的话,scrpt将被终止。然后尝试验证给定的用户名和密码,如果没有,则失败。快速简单。
$ldapHost = "example2.com";
$ldapPort = 666;
$ldapBaseDn = "ldap base dn here";
$username = "username";
$password = "password";
$ldapUserDn = "uid=$username,".$ldapBaseDn;

echo "LDAP query test\n";
echo "Connecting ...\n";
$ldapConn = ldap_connect($ldapHost, $ldapPort)
    or die("Unable to connect to LDAP server: $ldapHost\n");

echo "Authenticating user ...\n";
$isValid = ldap_bind($ldapConn, $ldapUserDn, $password)
    or die("Unable to authenticate user: $username\n");

echo "User $username is successfully authenticated!\n";

echo "Closing connection ...\n";
ldap_close($ldapConn);

exit();

?> 

谢谢,是的,我用这种方式为一台可以通过internet访问的主机进行了LDAP身份验证。但我在这里遇到的问题是,无法通过internet访问域控制器。我更新了我原来的问题,使之更清楚。