首页 文章

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

提问于
浏览
1

团队,我有一个关于使用Kerberos身份验证进行单点登录的问题 .

我们为域生成了一个keytab文件,如"POC.MAIL.COM",我们的服务器托管在"SW.MAIL.COM"上 . 当我们的应用程序在Websphere Application Server上运行时,我们尝试设置文档中给出的Kerberos配置(页面编号:167)http://www.redbooks.ibm.com/redbooks/pdfs/sg247771.pdf . 我们正面临着一个错误,即“ Cannot get credential for principal service 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“

UPDATE .

票证缓存:FILE:/ 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 回答

  • 1

    仅在 Global security > SPNEGO web authentication 上指定它,而不是在Kerberos配置页面上指定它 . 如果krb5.conf文件中的keytab路径正确,则只提供conf文件的路径就足够了(keytab是可选的) .

    UPDATE
    在过滤器定义中,您应该:

    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

    用于Java EE安全性的web.xml中的最小配置 . 并且您必须在服务器配置中启用 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

    有点迟到的答案 .

    通过运行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服务器中找到主机名 .


    资料来源:

相关问题