【问题标题】:Kerberos SSO exception with apache tomcatapache tomcat 的 Kerberos SSO 异常
【发布时间】:2017-06-19 14:21:47
【问题描述】:

我收到以下异常。尝试使用 Kerberos 进行 SSO 时:

GSSException: Failure unspecified at GSS-API level (Mechanism level:
Invalid argument (400) - Cannot find key of appropriate type to
decrypt AP REP - RC4 with HMAC)

我正在使用 Ktpass 生成密钥。当我使用默认加密选项时,它可以工作。 但是当我在 Ktpass 命令中添加“-crypto AES256-SHA1”时,调用函数 org.ietf.jgss.GSSContext.acceptSecContext 时会引发以下异常

我正在使用 Java 8 在 apache-tomact 上进行开发。

我的 krb5.conf 是

# Configuration snippets may be placed in this directory as well
includedir /etc/krb5.conf.d/

[logging]
 default = FILE:/var/log/krb5libs.log
 kdc = FILE:/var/log/krb5kdc.log
 admin_server = FILE:/var/log/kadmind.log

[libdefaults]
 dns_lookup_realm = false
 ticket_lifetime = 24h
 renew_lifetime = 7d
 forwardable = true
 rdns = false
# default_realm = EXAMPLE.COM
 default_ccache_name = KEYRING:persistent:%{uid}

[realms]
# EXAMPLE.COM = {
#  kdc = kerberos.example.com
#  admin_server = kerberos.example.com
# }

[domain_realm]
# .example.com = EXAMPLE.COM
# example.com = EXAMPLE.COM

【问题讨论】:

  • 你能分享你的 krb5.conf 吗?
  • @fab 感谢您的回复。我编辑了我的问题,您可以在正文中看到 krb5.conf。
  • 我们能看到你完整的 ktpass 命令语法吗?
  • 我想我看到了问题所在。您还有可用于重现的测试系统吗?

标签: tomcat kerberos spring-security-kerberos


【解决方案1】:

你应该在你的 krb5.conf 中的某处有默认的 tkttgs enctypes

由于您的配置似乎有效,但加密选项 = AES256-SHA1 无效,请将以下值添加到您的 krb5.conf(在 [libdefaults] 下):

default_tkt_enctypes = rc4-hmac,aes256-cts-hmac-sha1-96,aes128-cts-hmac-sha1-96
default_tgs_enctypes = rc4-hmac,aes256-cts-hmac-sha1-96,aes128-cts-hmac-sha1-96

【讨论】:

  • 您无需在 krb5.conf 中添加加密选项 - 每个操作系统上的操作系统将相互同意它们之间可能的最强加密算法并进行相应的协商。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-11-11
  • 2012-07-03
  • 1970-01-01
  • 2017-12-25
  • 2016-12-02
  • 2014-10-19
  • 2015-10-07
相关资源
最近更新 更多