我試圖在Tomcat上使用SPNEGO實現基於瀏覽器的單點登錄。帶Tomcat的SPNEGO錯誤:GSSException:未在GSS-API級別指定失敗(機制級別:Checksum失敗)
我按照這兩個頁面的所有指令:
當我訪問從Firefox或Chrome hello_spnego.jsp,我被要求輸入用戶名和密碼,然後它完美地顯示我的用戶名;像魅力一樣工作。然而,當我試圖與IE瀏覽器訪問它,我得到這個錯誤:
HTTP Status 500 - GSSException: Failure unspecified at GSS-API level (Mechanism level: Checksum failed)
type Exception report
message GSSException: Failure unspecified at GSS-API level (Mechanism level: Checksum failed)
在試圖尋找一個解決方案,我碰到這個頁面來了:http://www.oracle.com/technetwork/articles/idm/weblogic-sso-kerberos-1619890.html
我跟着客戶端配置說明頁面的後半部分。之後,所有三種瀏覽器(Chrome瀏覽器,Firefox和IE)都顯示相同的錯誤,但他們都不再要求用戶名和密碼。
我已驗證用於與KDC通話的帳戶是否正常工作。另外,我有在web.xml文件中指定的用戶名和密碼,所以我沒有單獨的KeyTab文件。
診斷的目的,這裏有我的krb5.conf和login.conf的文件的內容:
的krb5.conf
[libdefaults]
default_realm = DEVID.LOCAL
default_tkt_enctypes = aes256-cts aes256-cts-hmac-sha1-96 aes128-cts-hmac-sha1-96 aes128-cts rc4-hmac des3-cbc-sha1 des-cbc-md5 des-cbc-crc arcfour-hmac arcfour-hmac-md5
default_tgs_enctypes = aes256-cts aes256-cts-hmac-sha1-96 aes128-cts-hmac-sha1-96 aes128-cts rc4-hmac des3-cbc-sha1 des-cbc-md5 des-cbc-crc arcfour-hmac arcfour-hmac-md5
permitted_enctypes = aes256-cts aes256-cts-hmac-sha1-96 aes128-cts-hmac-sha1-96 aes128-cts rc4-hmac des3-cbc-sha1 des-cbc-md5 des-cbc-crc arcfour-hmac arcfour-hmac-md5
[realms]
DEVID.LOCAL = {
kdc = cdi-prod.devid.local
default_domain = DEVID.LOCAL
}
[domain_realm]
.DEVID.LOCAL = DEVID.LOCAL
login.conf的
spnego-client {
com.sun.security.auth.module.Krb5LoginModule required;
};
spnego-server {
com.sun.security.auth.module.Krb5LoginModule required
storeKey=true
isInitiator=false;
};
因爲我沒有keytab文件,所以在login.conf文件中沒有提到它。
此外,由於我使用的是aes256-cts加密,因此我在jdk的jre/lib/security
文件夾中添加了必需的JCE策略文件(http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html)。
僅供參考,我使用的是Tomcat 8和JDK 1.8。
我真的很感謝這裏發生了什麼。如果您需要更多信息,請告訴我。提前致謝!
你解決了你的問題嗎? – markus 2015-03-25 15:06:09