SPNEGO可选Kerberos身份验证(Optional SPNEGO Kerberos auth

2019-07-29 18:28发布

是否有可能做的可选Kerberos身份验证?

我要的是:如果客户端(浏览器)是不属于域名被重定向到一个用户名/密码登录网页。 否则,它会做SPNEGO做Kerberos身份验证。

如果我只是发送WWW身份验证:协商的标头,只是什么都不做进一步的非域浏览器。

有一些选项,告诉浏览器尝试不同的东西,如果它不知道如何认证? 还是我来确定用户发送“WWW身份验证”标头前的域的一部分?

Answer 1:

我还没有发现谁anynone解决了这个公开,并以标准的方式。 是的,正如所提到的,一个可能回落到Basic但这并不对其中涉及请求从CGI形式的用户名和密码身份验证方案,其中,只要浏览器看到的东西,你就回落到验证,如果Negotiate失败。 也许这是暗示性的认证方案被打破? 我不知道。

我会告诉你我所知道的,第一。 我们的网站是有效的,余弦保护的,所以我们有一个类似的问题给你:只有专门配置的机器回应WWW-Authenticate头,所以在默认情况下,我们必须把所有的用户给我们余弦的登录页面。 诀窍是,余弦服务器还允许已通过验证GSSAPI / Kerberos的主机来完成认证过程,而无需输入登录信息,但只能在特定浏览器,通过一个解决办法的途径。

此替代方法简单地包括其尝试一个登录页面内的JavaScript代码块的HEAD的SPNEGO保护的资源的; 如果成功,该脚本将浏览器重定向到同一个页面,授予相应的余弦饼干和无密码输入完成该过程的SPNEGO保护的版本。 如果浏览器的JavaScript缺乏,Kerberos支持或适当的凭据中的任何一个,那么用户将看到余弦登录页面如常。

因此,仅在上面也许可以算成一个回答你的问题; 亲自虽然我不认为这远远不够,接下来是更多的是讨论...

以上似乎不能令人满意,因为它坚持认为,任何连接的用户代理既支持JavaScript的(不太可能是基于文本的浏览器和HTTP客户端库的情况下)或者任意路径的认识,这是我们重定向Kerberos的能力的用户(没用任何事情尚未被硬编码为我们的网站)。 我得出的结论是,有可能是一个更好的解决办法,或者如果没有,差距在哪里标准应该是。 最佳实践的建议我是这样的:

该SPNEGO过程的正常部分是,客户端尝试检索其初始响应是HTTP页401 ,但与该插头WWW-Authenticate: Negotiate 。 这是线索用于GSSAPI / Kerberised客户做出适当的反应; “常规”客户端将只显示错误页面。 或许,解决的方法就是修改余弦服务器为客户提供人性化的登录页面,因为这错误响应的一部分吗?

可能与关闭的,现成的Apache和模块技术上的困难,而且可能不利于各种标准(或至少是原则)。 我对所涉及的系统没有专家,所以只能推测,除非(或直到)我有机会尝试一下......



Answer 2:

另外发送WWW-Authenticate: Basic的用户名/密码挑战。



文章来源: Optional SPNEGO Kerberos authentication