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

Single sign on 在Websphere Application Server上配置Kerberos时出现问题,single-sign-on,kerberos,websphere-7,Single Sign On,Kerberos,Websphere 7,团队, 我对使用Kerberos身份验证进行单点登录有一个问题 我们已经为类似“POC.MAIL.COM”的域生成了一个keytab文件,我们的服务器托管在“SW.MAIL.COM”上。当我们的应用程序在WebSphereApplicationServer上运行时,我们尝试按照文档(第167页)中给出的设置Kerberos配置。 我们面临一个错误,即“无法获取主体服务HTTP/server1.SW.MAIL的凭据。COM@SW.MAIL.COM”。有人能帮我解决这个问题吗 如果需要任何其他信息,

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

我们已经为类似“POC.MAIL.COM”的域生成了一个keytab文件,我们的服务器托管在“SW.MAIL.COM”上。当我们的应用程序在WebSphereApplicationServer上运行时,我们尝试按照文档(第167页)中给出的设置Kerberos配置。 我们面临一个错误,即“无法获取主体服务HTTP/server1.SW.MAIL的凭据。COM@SW.MAIL.COM”。有人能帮我解决这个问题吗

如果需要任何其他信息,请发表评论

当我试图在“Kerberos身份验证机制页面”上设置krb5.conf和keytab文件时,我们遇到了这个错误

当我根据您的输入运行命令klist时,我得到了如下输出

“密钥表:/etc/krb5/pocso.keytab

参赛人数:1

[1.]主体:HTTP/server1.sw.mail。com@POC.MAIL.COM KVNO:12 "

更新 .

票证缓存:文件:/tmp/krb5cc_38698 默认委托人:pocsso1@POC.MAIL.COM 有效的启动过期服务主体 2014年9月1日16:15 2014年9月2日02:21 krbtgt/POC.MAIL。COM@POC.MAIL.COM
续订至2014年9月8日16:15

仅在
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  
请参见此处的配置详细信息:

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

约束
所有资源
/*
用户角色

回答有点晚

通过运行ktpass命令重新生成keytab文件,如下所示:

ktpass-out file.keytab-princ HTTP/server1.SW.MAIL.COM@POC.MAIL.COM-mapuser-your-user-pass-your-pwd-ptype KRB5\n

解决错误:

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
生成keytab文件时归结为以下规则:

  • 主要服务必须遵循以下格式
/@KerberosRealm

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

资料来源:

  • (第477页)

您是如何创建keytab的?检查您的主机名是否不是server1.sw.mail.com(小写)。通常情况下,密钥表中的服务器名和SPN之间可能不匹配。主机名相同。为什么它试图获取SW.MAIL.COM而不是POC.MAIL.COM的主体,因为您生成了错误的keytab/SPN或在WAS中创建了错误的配置。您的keytab应该生成到HTTP/server1.SW.MAIL。COM@POC.MAIL.COM在WAS SPNEGO配置中,您应该将服务器名称设置为server1.SW.MAIL.COM和realm POC.MAIL.COM您如何调用kinit?我写信给您创建新的keytab,因为旧的是错误的。是你干的吗?结果如何?将如何创建keytab和krb5.conf文件的内容附加到问题命令行。如果需要,取决于应用程序或其他内容。你在我附在答覆中的页面上有详细信息。我通常使用:
requesturl%=yourContextRoot;请求url=noSPNEGO
,这意味着对包含您的ContextRoot而不包含noSPNEGO的所有URI使用SPNEGO。如果需要,它允许我通过向url提供&noSPNEGO来绕过SPNEGO访问应用程序。即使使用SPNEGO,我也会遇到同样的错误。您的错误到底是什么?SystemOut.log中是否有任何与之相关的异常/消息?它仍然指向错误的领域,应该是POC.MAIL.COM,因此您的配置中存在一些问题。@Chilukuri您需要提供筛选条件-