我正在尝试在Win 2012 R2上使用JDK 1.7.x在Web Logic 12.1.2上配置 Kerberos SSO 。我正在使用Java ktab java command to create keytab file
。加密包括 DES和rc4-hmac 。我的 kerberos ini文件仅使用 rc4-hmac加密。
但是当我尝试登录我的应用程序时,我在Web Logic日志文件(片段)中收到此错误:
####<Nov 13, 2014 7:24:29 AM PST> <Debug> <SecurityAtn> <ifvm00131> <ICN_ManagedServer_2> <[ACTIVE] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1415892269395> <BEA-000000> <acceptGssInitContextToken failed
com.bea.security.utils.kerberos.KerberosException: Failure unspecified at GSS-API level (Mechanism level: Encryption type AES256 CTS mode with HMAC SHA1-96 is not supported/enabled)
at com.bea.security.utils.kerberos.KerberosTokenHandler.acceptGssInitContextTokenInDoAs(KerberosTokenHandler.java:351)
at com.bea.security.utils.kerberos.KerberosTokenHandler.access$100(KerberosTokenHandler.java:43)
at com.bea.security.utils.kerberos.KerberosTokenHandler$2.run(KerberosTokenHandler.java:239)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAsPrivileged(Subject.java:536)
at com.bea.security.utils.kerberos.KerberosTokenHandler.acceptGssInitContextToken(KerberosTokenHandler.java:237)
at com.bea.security.utils.kerberos.KerberosTokenHandler.acceptGssInitContextToken(KerberosTokenHandler.java:165)
at com.bea.common.security.internal.utils.negotiate.SPNEGONegotiateToken.getUsername(SPNEGONegotiateToken.java:57)
at weblogic.security.providers.authentication.NegotiateIdentityAsserterProviderImpl.assertChallengeIdentity(NegotiateIdentityAsserterProviderImpl.java:210)
at com.bea.common.security.internal.legacy.service.ChallengeIdentityAssertionProviderImpl$ChallengeIdentityAsserterV2Adapter.assertChallengeIdentity(ChallengeIdentityAssertionProviderImpl.java:130)
at com.bea.common.security.internal.service.ChallengeIdentityAssertionTokenServiceImpl.assertChallengeIdentity(ChallengeIdentityAssertionTokenServiceImpl.java:120)
并登录我的应用程序失败。我进入浏览器错误 401 - 未经授权的错误。
当我使用 AES256加密重新配置env时,我收到Checksum失败错误。
我想知道是否有人遇到过类似的问题,并且能够成功解决问题吗?
这是我的krb5.ini文件,位于c:\ windows目录
[libdefaults]
default_realm = MYREALM.LOCAL
kdc_timesync = 1
ccache_type = 4
forwardable = true
proxiable = true
default_tgs_enctypes = rc4-hmac
default_tkt_enctypes = rc4-hmac
ticket_lifetime = 600
[realms]
MYREALM.LOCAL = {
kdc = adhostname.mydomain.local:88
admin_server = adhostname.mydomain.local
default_domain = mydomain.local
}
[domain_realm]
mydomain.local = MYREALM.LOCAL
.mydomain.local = MYREALM.LOCAL
这是我的配置文件
com.sun.security.jgss.krb5.initiate
{
com.sun.security.auth.module.Krb5LoginModule required
principal="account@REALM.LOCAL" useKeyTab=true
keyTab="C:\\sso\\wlker.keytab" storeKey=true debug=true;
};
com.sun.security.jgss.krb5.accept
{
com.sun.security.auth.module.Krb5LoginModule Required
principal="account@REALM.LOCAL" useKeyTab=true
keyTab="C:\\sso\\wlker.keytab" storeKey=true debug=true;
};
Myapp
{
weblogic.security.auth.login.UsernamePasswordLoginModule required authOnLogin=true;
};
答案 0 :(得分:0)
我之前已经回答了这个问题。请搜索,您必须启用/安装无限制的安全策略。