我正在努力解决这个问题,但没有运气。我正在尝试使用 Kerberos 通过 AD 对我的 java 应用程序用户进行身份验证。我创建了如下 KDC:
[libdefaults]
default_realm = X.LOCAL
default_tkt_enctypes = des-cbc-md5 des-cbc-crc des3-cbc-sha1 rc4-hmac arcfour-hmac arcfour-hmac-md5 aes128-cts-hmac-sha1-96
default_tgs_enctypes = des-cbc-md5 des-cbc-crc des3-cbc-sha1 rc4-hmac arcfour-hmac arcfour-hmac-md5 aes128-cts-hmac-sha1-96
permitted_enctypes = des-cbc-md5 des-cbc-crc des3-cbc-sha1 rc4-hmac arcfour-hmac arcfour-hmac-md5 aes128-cts-hmac-sha1-96
[realms]
X.LOCAL = {
kdc = machine_name.X.LOCAL
default_domain = X.LOCAL
}
[domain_realm]
.X.LOCAL = X.LOCAL
我定义了一个新领域,如下所示: • Global security>JAAS – 应用程序登录 • 创建了一个名为“client”的新登录并分配了 com.ibm.ws.security.auth.kerberos.Krb5LoginModuleWrapperClient 资源。
在代码级别,我正在设置 KDC 的路径:System.setProperty(java.security.krb5.conf, “KDC” path);
尝试登录:
loginContext = new LoginContext(moduleName, getUsernamePasswordHandler(userName, secret));
loginContext.login();
我正进入(状态:
登录错误:com.ibm.security.krb5.KrbException,状态码:14 消息:KDC 不支持加密类型
你会说不支持加密类型:) 我知道。
问:1)我错过了什么?(卡在这里超过 1 周)2)我做错了什么?
感谢您的时间。