队 我有一个关于使用Kerberos身份验证进行单点登录的问题。
我们为域名生成了一个keytab文件,如“POC.MAIL.COM”,我们的服务器托管在“SW.MAIL.COM”上。当我们的应用程序在Websphere Application Server上运行时,我们尝试设置文档中给出的Kerberos配置(页面编号:167)http://www.redbooks.ibm.com/redbooks/pdfs/sg247771.pdf。 我们正面临一个错误,即“无法获取主要服务的凭证HTTP /server1.SW.MAIL.COM@SW.MAIL.COM ”。有人可以帮我解决这个问题..?
如果需要任何其他信息,请发表评论..
当我尝试在“Kerberos身份验证机制页面”上设置krb5.conf和keytab文件时,我们收到此错误。
当我根据你的输入运行命令klist时,我得到了如下输出
“密钥表:/etc/krb5/pocsso.keytab
参赛作品数量:1
[1。]校长:HTTP /server1.sw.mail.com@POC.MAIL.COM KVNO:12 “
更新 。
票证缓存:文件:/ tmp / krb5cc_38698 默认负责人:pocsso1@POC.MAIL.COM 有效的起始过期服务主体 01/09/2014 16:15 02/09/2014 02:21 krbtgt/POC.MAIL.COM@POC.MAIL.COM 续约至08/09/2014 16:15
答案 0 :(得分:1)
仅在Global security > SPNEGO web authentication
上指定,而不是在Kerberos配置页面上指定。如果krb5.conf文件中的keytab路径正确,则只提供conf文件的路径就足够了(keytab是可选的)。
<强>更新强>
在过滤器定义中,您应该:
Host name: server1.sw.mail.com
Kerberos realm name: POC.MAIL.COM
Filter criteria: yourFilterCriteria
Trim Kerberos realm from principal name - checked
请在此处查看配置详细信息:Enabling and configuring SPNEGO web authentication using the administrative console
web.xml中用于Java EE安全性的最小配置。您必须在服务器配置中启用Application Security
,并将userRole映射到注册表中的某些用户/组。
<security-constraint>
<display-name>constraint</display-name>
<web-resource-collection>
<web-resource-name>all resources</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>userRole</role-name>
</auth-constraint>
</security-constraint>
答案 1 :(得分:1)
有点迟到了。
通过运行ktpass命令重新生成密钥表文件:
ktpass -out file.keytab -princ HTTP / server1.SW.MAIL.COM @ POC.MAIL.COM -mapuser your-user -pass your-pwd -ptype KRB5_NT_PRINCIPAL
解决错误:
org.ietf.jgss.GSSException, major code: 11, minor code: 0
major string: General failure, unspecified at GSSAPI level
minor string: Cannot get credential for principal HTTP/appserver.example.com@EXAMPLE.COM
生成密钥表文件时归结为以下规则:
<service name>/<fully qualified hostname>@KerberosRealm
来源: