在Websphere Application Server上配置Kerberos时出现问题

时间:2014-07-03 10:48:03

标签: single-sign-on kerberos websphere-7

队 我有一个关于使用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

2 个答案:

答案 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

  • 仔细检查主要服务的拼写
  • 服务名称必须全部为大写,即 HTTP 而不是 http
  • Kerberos领域也必须全部为大写,
  • 必须在/ etc / host文件或DNS服务器中找到主机名。

来源: