【问题标题】:Java Kerberos Preauthentication ErrorJava Kerberos 预认证错误
【发布时间】:2012-10-01 02:38:57
【问题描述】:

我们的网络中有两个不同的应用程序,它们都使用 Kerberos 对用户进行身份验证。其中一个在最大时会出现问题。票证有效期已过。

应用程序 x 成功请求:

AS-REQ =>
    <= KRB5KDC_ERR_PREAUTH_REQUIRED
AS-REQ => 
    <= AS-REP

对应用程序 y 的请求不成功:

AS-REQ =>
    <= KRB5KDC_ERR_PREAUTH_REQUIRED
AS-REQ =>
    <= KRB5KDC_ERR_PREAUTH_FAILED

我们可以在网络捕获中看到的唯一区别是应用 x 使用 NT-PRINCIPAL,而应用 y 使用 NT-ENTERPRISE。 App y 在 Java 1.6 上运行,因此不应出现早期版本的 preauth 错误。

高度赞赏任何想法。

【问题讨论】:

  • 它可能会因为用于预身份验证消息的加密算法不受支持而失败。
  • 这很有趣,我注意到 AD 似乎使用 des-cbc-md5,但我们只使用 rc4-hmac 进行配置。我们是否必须在 keytab 加密生成选项或 krb5.conf 中包含该算法?
  • 最好清楚 AD 实际支持什么,然后相应地配置 krb5.conf。首先,如果您知道可以使用 des-cbc-md5,请配置为使用它。按照今天的标准,DES 很弱,所以你应该避免它。另请注意,可以将 AD 用户帐户专门配置为仅使用 DES 以便与过时的客户端进行互操作。
  • 我们为我们的 keytab 和 krb5 配置配置了 RC4-HMAC,它似乎工作正常。只有当票到期时,我们才会遇到问题。这对你有意义吗?
  • 您是否进行初始预认证?据我所知,预授权有自己的配置。

标签: java kerberos pre-authentication


【解决方案1】:

认为这个问题的解决方案是使用“/crypto All”选项重新生成我们的密钥表,但我不能 100% 确定。至少在那之后我们没有更多的抱怨了。

【讨论】:

    猜你喜欢
    • 2022-06-23
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 2013-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多