SPNEGO用Java提示密码多次

时间:2013-12-03 02:08:00

标签: java spnego

我正在使用spnego http://spnego.sourceforge.net在我的系统上进行单点登录,问题是如果输入正确的密码,它会一次又一次地提示。

有时,如果您键入两次,则可以加入系统,有时您需要输入相同用户和密码的10倍以上才能访问系统。

登录系统后,可以在随机时间多次提示输入密码。

提前致谢

2 个答案:

答案 0 :(得分:2)

我还没有尝试过那个特定的spnego模块,但我之前遇到过这个问题。

SPNEGO和两个登录提示的问题通常与以下内容有关:

  1. 应用程序的登录服务配置为允许协商和基本:

    WWW-Authenticate: Negotiate
    WWW-Authenticate: basic
    
  2. 如果在Internet Explorer中启用了Windows本机身份验证,但Windows客户端无法检索该服务的Kerberos票证(由于某种原因),IE将

    • 提示登录,但无论您在此处写什么,它都会使用发送NTMLSSP令牌 授权:谈判

    • 使用NTMLSSP令牌进行身份验证将失败,您将获得一个辅助登录提示,该提示将使用Basic提交 授权:基本

  3. 不确定为什么有时会认证两次以上会让你进入..

    进一步调查问题:

    • 检查服务器日志文件(设置java选项-Dsun.security.krb5.debug = true和web.xml spnego.logger.level = 1)以获取线索。
    • 检查Windows客户端是否已登录到域。
    • 检查是否在Internet Explorer中启用了Windows Native Authentication。
    • 检查网站是否已添加到Internet Explorer中的本地Intranet站点(或在网站名称中不使用点“。”)。
    • 检查是否为您的应用服务器配置了keytab,krb5.conf和login.conf。 (参见spnego docs pre_flight和reference_docs)
    • 检查密钥表中使用的主体名称是DNS A记录,而不是服务的DNS CNAME记录。
    • Fiddler2是调试网络流量的绝佳工具。安装并查看Internet Explorer响应身份验证质询的内容(HTTP 401)。
    • 如果Internet Explorer indeeds提交NTMLSSP令牌,您可能还希望使用Wireshark并过滤“Kerberos”流量,以查看您的域控制器是否响应包含Kerberos票证的TGS-REP以访问您的服务。

    如果您仍然运气不好,如果您能提供全部或部分内容,我们可能会帮助您进一步提供

    • spnego配置
    • 服务器日志(如果有相关内容)
    • Fiddler2 trace
    • Wireshark trace

    的Øyvind

答案 1 :(得分:0)

我发现了问题。

凭据有效,但它来自另一个域(我更改了域但未更新keytab文件)

修复密钥表后,系统再也不会要求输入密码了。

全部谢谢!