使用Kerberos的PHP Active Directory身份验证

使用Kerberos的PHP Active Directory身份验证,php,authentication,active-directory,kerberos,Php,Authentication,Active Directory,Kerberos,我目前正在将CMS(用PHP开发)身份验证与Active Directory集成。这个特定的Active Directory只允许通过Kerberos或ldaps://(但最后一个不是最需要的,因为我必须使用绝对路径)进行身份验证 我一直在网上搜索关于PHP AD Kerberos身份验证的任何信息,但什么也没找到。谁能给我指出正确的方向吗 提前感谢。不是免费软件解决方案-google by'Plexcel'关键字如果您使用的是Active Directory,您的Web服务器可能是IIS,它内

我目前正在将CMS(用PHP开发)身份验证与Active Directory集成。这个特定的Active Directory只允许通过Kerberos或ldaps://(但最后一个不是最需要的,因为我必须使用绝对路径)进行身份验证

我一直在网上搜索关于PHP AD Kerberos身份验证的任何信息,但什么也没找到。谁能给我指出正确的方向吗


提前感谢。

不是免费软件解决方案-google by'Plexcel'关键字

如果您使用的是Active Directory,您的Web服务器可能是IIS,它内置了kerberos*。。然后让浏览器和Web服务器处理身份验证并使用一些PHP,如:

$user = isset($_SERVER['AUTH_USER']) ? $_SERVER['AUTH_USER'] : false; if((false === $user) or ('' == $user)){ //Divert to incorrect password page.. //MSIE typically tries three times, Kerb/NTLM/Plain //FF will only try NTLM/Plain if configured for NTLM //Chrome.. won't work with this at all.. not that I have discovered. //If testing locally using Apache, user will be 0 } $user=isset($\u服务器['AUTH\u用户'])$_服务器['AUTH_USER']:false; 如果((false===$user)或(“”==$user)){ //转到不正确的密码页。。 //MSIE通常尝试三次,路缘石/NTLM/平原 //如果配置为NTLM,FF将仅尝试NTLM/Plain //Chrome..根本不能用这个..我还没发现。 //如果使用Apache在本地进行测试,则用户将为0 } 现在,您可以使用Kerberos执行SSO,这是一种魅力

*:称为“集成Windows身份验证”,必须通过将“安全区域”设置为“本地Intranet”在浏览器中启用。。如果IIS框实际位于本地Intranet上,则可能发生这种情况。。但这取决于SPN和域、用户框和IIS框以及任何信任关系。。如果它位于域名/计算机名相同的单个域上,则它应该可以工作。如果你是集群或者其他有趣的事情,那么你可能会头疼,而不仅仅是普通的头痛。如果您觉得需要,您可以为IE设置编写脚本/GPO


希望你是在问别的事情。。如果我祈祷你没有实现这一点,它会导致每个请求的整个身份验证过程。。这会减慢每一页的加载速度。。无论您实施了多少聚合/黑客攻击/变通方法。。这只是一个坏主意,但一旦你开始或告诉经理这件事,他们真的很喜欢,因为这样他们就不用再登录了。。哦,他们还是会抱怨速度,但是

有一个用于PHP的krb5模块。虽然还没有包装,但它还是很有吸引力。您可以在此处了解更多信息: