我正在尝试使用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)发布于 2020-10-27 16:11:25
您需要在krb5.ini配置和conf/security/java.security中启用RC4-HMAC
我认为RC4在Oracle JDK (>= 1.8.u060)中与MD5一起因为已知的不安全性而被列入黑名单,但MS Active Directory Kerberos实现对密钥交换是严格要求的。也许您必须通过从JDKs conf/ jdk.certpath.disabledAlgorithms /java.security的jdk.tls.disabledAlgorithms和jdk.certpath.disabledAlgorithms中删除RC4来重新启用它。
https://stackoverflow.com/questions/23305736
复制相似问题