从PHP到Windows的基于声明的身份验证


Claim based authentication from PHP to Windows?

我在一家公司工作,我所有的web应用程序都连接到ldap目录或AD进行身份验证和/或授权。通常情况下,这是非常有效的。但是现在,特别是由于SP2010的最新推出,人们更期待单点登录,而不想重新登录。

所以我的问题是:

是否有任何方法使PHP从Windows索赔身份验证?我的意思是,SharePoint在IIS上使用WIF可以做到这一点——也许PHP也有同样棒的地方:P

我快速谷歌没有带来任何伟大的结果,所以我的希望不是太高,但我想问你们可能值得一试。提前感谢-新年快乐!

在纯PHP中没有简单的方法来实现它。我已经完成了完全相同的任务,但整个解决方案涉及到原始 HTTP/1.1, NTLM和SMB (Windows共享)通过TCP/UDP/NetBIOS -至少。每一个都是足够复杂的,PHP没有任何扩展来帮助他们。

有一个"Apache方式":

  • mod_auth_sspi(如果你在Windows上运行)
  • mod_auth_ntlm(我认为这只适用于Apache <= 1.3)
  • libapache2-authenntlm-perl(有报告说这会导致web服务器在接收到大量请求后挂起)
  • mod_auth_kerb(我没有使用过这个,但是NTLM被KerberosV5的Microsoft实现所取代,它是可用的最现代的解决方案;但是,它需要额外的服务器配置)