Dan*_*ova 8 authentication kerberos spring-boot
面临 JDK 17 升级和支持的新 Kerberos 身份验证的非常烦人的问题。
问题:JDK 17 Kerberos 不再支持 rc4-hmac,因为它被标记为不安全。信息:Kerberos 弃用 Kerberos 中的 3DES 和 RC4 3DES 和 RC4 Kerberos 加密类型现已默认禁用。3DES 和 RC4 都是弱加密算法,不应使用。RFC 8429 中正式弃用了 Kerberos 3DES 和 RC4 加密类型。
需要做什么:
我们无法摆脱的错误:
Caused by: sun.security.krb5.KrbException: KDC has no support for encryption type (14)
at java.security.jgss/sun.security.krb5.KrbTgsRep.<init>(KrbTgsRep.java:69)
at java.security.jgss/sun.security.krb5.KrbTgsReq.getReply(KrbTgsReq.java:224)
at java.security.jgss/sun.security.krb5.KrbTgsReq.sendAndGetCreds(KrbTgsReq.java:235)
at java.security.jgss/sun.security.krb5.internal.CredentialsUtil.serviceCredsSingle(CredentialsUtil.java:482)
at java.security.jgss/sun.security.krb5.internal.CredentialsUtil.serviceCreds(CredentialsUtil.java:34
at java.security.jgss/sun.security.krb5.internal.CredentialsUtil.serviceCreds(CredentialsUtil.java:31
at java.security.jgss/sun.security.krb5.internal.CredentialsUtil.acquireServiceCreds(CredentialsUtil.java:169)
at java.security.jgss/sun.security.krb5.Credentials.acquireServiceCreds(Credentials.java:493)
at java.security.jgss/sun.security.jgss.krb5.Krb5Context.initSecContext(Krb5Context.java:700)
... 39 common frames omitted
Caused by: sun.security.krb5.Asn1Exception: Identifier doesn't match expected value (906)
at java.security.jgss/sun.security.krb5.internal.KDCRep.init(KDCRep.java:140)
at java.security.jgss/sun.security.krb5.internal.TGSRep.init(TGSRep.java:65)
at java.security.jgss/sun.security.krb5.internal.TGSRep.<init>(TGSRep.java:60)
at java.security.jgss/sun.security.krb5.KrbTgsRep.<init>(KrbTgsRep.java:54)
... 47 common frames omitted
Run Code Online (Sandbox Code Playgroud)
我们错过了什么吗?
管道上的所有内容均已更新以支持新的加密类型+ keytab.conf 文件。
谢谢你!
解决方案是使用 gMSA 帐户进行 MSSQL 服务器连接。
JDK 17 应用程序--> JDK17 aes128-cts-hmac-sha256-128 keytab--> 使用用户 ID 调用 MSSQL 服务器--> 通过 gMSA 帐户解析。
所以MSSQL部分首先不接受新的加密类型。
归档时间: |
|
查看次数: |
13443 次 |
最近记录: |