谷歌的Chrome和IE等应用程序可以透明地处理Kerberos身份验证; 但是,我无法找到一个"简单"的Java解决方案来匹配这种透明度.我发现的所有解决方案都需要存在krb5.conf文件和login.conf文件,而上述应用程序似乎需要这些文件.
使用Kerberos SSO功能构建Java应用程序的最佳方法是什么?
[更新]:要明确我需要一个CLIENT端解决方案来创建不验证它们的票证.此外,似乎SPNEGO是默认的"包装器"协议,最终将委托给Kerberos,但我也需要能够处理SPNEGO协议.
我必须编写一个程序来检查我们公司的 Kerberos 安全站点。我用 HttpClient 尝试并得到以下错误:
KrbException: Server not found in Kerberos database (7)
at sun.security.krb5.KrbTgsRep.<init>(KrbTgsRep.java:61)
at sun.security.krb5.KrbTgsReq.getReply(KrbTgsReq.java:185)
...
Run Code Online (Sandbox Code Playgroud)
我在 5 个月前写了一个 NTLM 登录,但它不适用于这个 Kerberos 安全站点。我认为 Nego2 已激活,因此如果 Kerberos 失败,它不会回退到 NTLM。
我阅读了 Kerberos 维基百科文章:http : //en.wikipedia.org/wiki/Kerberos_(protocol),我认为问题在于 TGS 在数据库中找不到请求的服务。我认为这是因为我在错误之前得到了一张票(我认为是 TGT)。
Found ticket for userid@EXAMPLE.COM to go to krbtgt/EXAMPLE.COM@EXAMPLE.COM expiring on Thu May 31 01:35:56 CEST 2012
Run Code Online (Sandbox Code Playgroud)
所以错误发生在“客户服务授权”--> 2.(见维基百科文章)
问题是该服务必须在 kerberos 数据库中,因为我可以使用 IE 访问它(无需登录,因此单点登录有效)。
所以我的问题是:为什么 TGS 在 Kerberos 数据库中找不到服务器,但它适用于 IE?
额外信息
我试图在顶部获得必要的信息,但这里是所有信息,因为我不知道我是否获得了所有必要的信息:
操作系统是 Windows 7
Firefox 版本 9.0.1
Chrome 版本 …