2

我有一个网页,我只希望特定组登录。

我在一所大学工作,我们使用 Active Directory 帐户,只有特定的组可以访问这个 php 页面(在 apache 服务器上)。

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

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

当用户访问http://intranet时,他们将自动登录,因为他们之前登录了他们的计算机。

如果用户访问http://intranet.domain.com,它将提示他们输入凭据。

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

有没有人在无缝身份验证方面取得成功?

4

2 回答 2

4

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

至于走完整个 9 码并在 PHP 中实现 Negotiate auth,我确实在 PHP 中实现了RFC 2617 for Digest HTTP auth,并且我确实实现了 Windows SSPI 身份验证模块,但我从未尝试在 PHP中实现RFC 4559 。虽然 HTTP auth 部分相当琐碎,但不透明的 GSS-API 部分令人生畏,即使您有一个好的 GSS-API 库可供您使用RFC 2743

于 2009-09-28T17:46:54.737 回答
3

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

于 2010-06-22T09:48:30.467 回答