Kerberos和表单身份验证?

时间:2013-01-09 17:42:00

标签: security kerberos http-authentication

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

我想要的是拥有一个我们与两个组共享的URL,让服务器确定Kerberos令牌是否可用。如果是,则使用它,否则重定向到登录页面。理想情况下,用户一直都在“myproject.mysite.com”上...但是如果我们需要(自动)将它们重定向到a.mysite.com或b.mysite.com,具体取决于他们是否有那个令牌。

思想?

1 个答案:

答案 0 :(得分: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条目。