0

我们有一个向内部用户(具有 Kerberos 身份验证)和可以通过传统用户名/密码表单登录的第三方公开的系统。我们目前所做的是让多台服务器运行,其中一些使用 a.mysite.com 进行 Kerberized,而另一些则在 b.mysite.com 上运行表单身份验证。

我想要的是有一个我们与两个组共享的 URL,并让服务器确定 Kerberos 令牌是否可用。如果是,则使用它,否则重定向到登录页面。理想情况下,用户始终停留在“myproject.mysite.com”上……但如果我们需要(自动)根据他们是否拥有该令牌,将他们重定向到 a.mysite.com 或 b.mysite.com。

想法?

4

1 回答 1

0

这很容易实现。您有两种选择。

1:发回给客户

WWW-Authenticate: Negotiate
WWW-Authenticate: Kerberos
WWW-Authenticate: Basic (or better yet Digest)

客户将选择最适合他的方法。

2:如果你真的需要form-auth,发送

WWW-Authenticate: Negotiate

并将表单呈现为 401 页面。让表单发布到未受保护的控制器并执行表单身份验证。

您可以使用mod_auth_kerbmod_auth_gss用于 Apache HTTPd 并$REMOTE_USER在成功验证后进行检查。

请记住,如果希望某些用户使用 Kerberos 身份验证,他们必须是您的网络/域的一部分,具有 KDC 帐户和正确的 DNS 条目。

于 2013-01-18T22:16:49.580 回答