Kerberos身份验证。检测到令牌有缺陷

时间:2016-11-15 17:12:53

标签: java active-directory kerberos gssapi spring-security-kerberos

我使用 kerberos (v1.0.1)身份验证开发了一个Web应用程序。

我的目标是通过Windows身份验证Active Directory(Windows Server 2008 R2)提供登录。

问题是浏览器发送到后端NTLM票证而不是Kerberos票证。 我使用wireshak来检查通信工作流程:

  1. 我在后端打个电话
  2. 应用程序服务器对我的回应401
  3. 浏览器在活动目录上调用kerberos服务并收到TGS_REP
  4. 现在我希望浏览器使用Kerberos令牌调用我的休息服务,但我收到了NTLM令牌
  5. 我在JAVA中开发的后端服务引发了以下异常:

    GSSException: Defective token detected
    

    编辑1:

    第一个问题是我们使用IP生成SPN和KEYTAB。因此,我们以这种方式创建了keytab:

    ktpass /out c:\keytab\myuser.keytab /mapuser myuser@company.com /princ HTTP/myuser.company.com@WELLD.CH /pass mypassword /ptype KRB5_NT_PRINCIPAL /crypto All
    

    然后我们在DNS上添加了BE服务器

    <ip_server>  myuser.company.com
    

    目前我们可以使用kerberos登录,BE(春季启动)成功验证了kerberos&#39;令牌,但我们无法使用KerberosLdapContextSource下载用户信息,因此我们采用了一种解决方法并使用了DefaultSpringSecurityContextSource Bean。

    有人有任何想法或参考依赖吗?

    由于

0 个答案:

没有答案