kinit错误 - 对AD 2008的身份验证

时间:2014-04-26 02:00:22

标签: windows authentication active-directory

我正在尝试使用AD凭据对我的应用程序进行身份验证。我在创建krb5.ini文件后使用kinit进行测试。我相信ini文件中的所有领域信息都是正确的,但在使用kinit进行测试时会继续收到以下错误。

Exception: krb_error 0 Cannot find any provider supporting ARCFOUR No error
KrbException: Cannot find any provider supporting ARCFOUR
    at
 sun.security.krb5.internal.crypto.ArcFourHmacEType.encrypt(ArcFourHm
 cEType.java:68)
    at
  sun.security.krb5.internal.crypto.ArcFourHmacEType.encrypt(ArcFourHm
    cEType.java:60)                                                                                                                                                                                                                        
    at sun.security.krb5.EncryptedData.<init>(EncryptedData.java:122)
    at sun.security.krb5.KrbAsReq.init(KrbAsReq.java:355)
    at sun.security.krb5.KrbAsReq.<init>(KrbAsReq.java:180)
    at sun.security.krb5.internal.tools.Kinit.<init>(Kinit.java:253)
    at sun.security.krb5.internal.tools.Kinit.main(Kinit.java:107)
 Caused by: java.security.NoSuchAlgorithmException: Cannot find any provider
 suporting ARCFOUR
    at javax.crypto.Cipher.getInstance(DashoA13*..)
    at
  sun.security.krb5.internal.crypto.dk.ArcFourCrypto.encrypt(ArcFourCrpto.java:279)

1 个答案:

答案 0 :(得分:0)

您需要在krb5.ini配置和conf / security / java.security中启用RC4-HMAC

我认为RC4与MD5一起在Oracle JDK(> = 1.8.u060)中因已知的不安全因素而被列入黑名单,但是对于MS Active Directory Kerberos实现,密钥交换是严格要求的。 也许您必须通过从JDK conf / security / java.security的jdk.tls.disabledAlgorithms和jdk.certpath.disabledAlgorithms中删除RC4来重新启用它。

有关更多信息,请参见https://www.java.com/en/configure_crypto.html