2011-12-21 42 views
0

我的Web應用程序使用Kerberos身份驗證。我設置了NegotiateIdentityAsserter和LDAP身份驗證提供程序。如果sAMAccountName是用戶查找用戶,則一切正常。不幸的是,在tagret環境中,這個屬性不是唯一的。我需要通過他的UPN(用戶主體名稱)來識別用戶。Weblogic NegotiateIdentityAsserter和用戶主體名稱

有沒有辦法實現它?

我的配置是

的Weblogic 10.3.5 的Java 1.6


的login.config:

myrealm { 
weblogic.security.auth.login.UsernamePasswordLoginModule required debug=true; 
}; 

com.sun.security.jgss.initiate { 
    com.sun.security.auth.module.Krb5LoginModule required 
    principal="HTTP/[email protected]" 
    refreshKrb5Config=true 
    useKeyTab=true 
    keyTab="c:/ccaapl/security/ceprwlvyv_ktpass.keytab" 
    storeKey=true 
    debug=true; 
}; 

com.sun.security.jgss.accept { 
    com.sun.security.auth.module.Krb5LoginModule required 
    principal="HTTP/[email protected]" 
    refreshKrb5Config=true 
    useKeyTab=true 
    keyTab="c:/ccaapl/security/ceprwlvyv_ktpass.keytab" 
    storeKey=true 
    debug=true; 

}; 

com.sun.security.jgss.krb5.accept { 
    com.sun.security.auth.module.Krb5LoginModule required 
    principal="HTTP/[email protected]" 
    refreshKrb5Config=true 
    useKeyTab=true 
    keyTab="c:/ccaapl/security/ceprwlvyv_ktpass.keytab" 
    storeKey=true 
    debug=true; 

}; 

krb5.ini:

[libdefaults] 
default_realm = DSMSP.LOCAL 
kdc_timesync = 1 
ccache_type = 4 
ticket_lifetime = 600 
clockskew = 1200 
dns_lookup_kdc = true 

[realms] 
DSMSP.LOCAL = { 
kdc = DSDC.dsmsp.local 
} 

[appdefaults] 
autologin = true 
forward = true 
forwardable = true 
encrypt = true 

在此先感謝!

Petr

回答

0

您的陳述有誤導性。爲什麼混合使用Kerberos認證和LDAP認證?您只需要Kerberos身份驗證。 成功登錄後,您將獲得用戶的UPN。在AD中的字段中搜索:userPrincipalName。 這就是我的做法。 你的問題不夠精確。您正在混合驗證和用戶查找。