无缝SSO对Active Directory进行身份验证

时间:2009-09-28 17:22:45

标签: php apache ldap single-sign-on kerberos

我有一个网页,我只想要一个特定的群组登录。

我在大学工作,我们使用Active Directory帐户,只有某个组可以访问此php页面(在Apache服务器上)。

我知道我可以使用一些PHP代码来限制访问,但我想完成无缝登录。

每个人都在工作中使用IE7(配置为传递正确的凭据),并且需要登录到计算机(将其记录到域控制器中)。

当用户转到http://intranet时,他们会自动登录,因为他们早先登录了他们的计算机。

如果用户转到http://intranet.domain.com,则会提示他们提供凭据。

我知道我需要使用kerberos进行身份验证,使用LDAP进行授权。

有人在无缝认证方面取得了成功吗?

2 个答案:

答案 0 :(得分:4)

有些商业产品将其作为Apache模块提供,请参阅维基百科SPNEGO文章末尾的链接(例如Guide to SPNEGO with Apache)。我也知道一些php模块,如php_krb5:php_krb5 beta / Negotiate auth with GSSAPI for PHP,或Apache模块,如mod_auth_kerb。我自己从未使用过它们。

至于整个9码并在PHP中实现Negotiate auth,我确实在我的生活RFC 2617中实现了PHP for Digest HTTP auth,我确实实现了Windows SSPI身份验证模块,但我从未尝试过实现{ PHP中的{3}}。虽然HTTP身份验证部分相当简单,但是不透明的GSS-API部分令人生畏,即使您拥有一个适用于RFC 4559的优秀GSS-API库也是如此。

答案 1 :(得分:3)

这是因为您需要将intranet.domain.local添加到IE中的Local Intranet区域。请查看此文章了解详细信息:http://www.sysadminlab.net/other/local-intranet-zone-in-ie8-exaplained-for-sysadmins