2011-11-23 160 views
2

簡單驗證配置Tomcat 6.0,使用身份驗證LDAP身份驗證=「DIGEST-MD5」

當使用LDAP瀏覽器,我可以通過提供登錄到使用明文密碼,公司的LDAP服務器:CN =用戶名,OU =用戶,DC =我,DC =公司,DC = COM。如果我將此字符串複製粘貼到Tomcat的server.xml connectionName標記,並使用簡單身份驗證(使用wireshark顯示純文本密碼),則一切正常。

加密的口令:

進server.xml JNDI境界添加以下

authentication="DIGEST-MD5" 
digest='MD5' 

現在,Tomcat的不能綁定到LDAP。

對於LDAP瀏覽器,我必須在form/domain中提供憑證,然後我可以使用DIGEST-MD5綁定到LDAP。

是否有一種特殊的方式,在server.xml文件中指定connectionName,以便Tomcat可以成功執行綁定?

回答

0

您沒有提及您使用的目錄服務器。這可能是因爲你的服務器根本不支持DIGEST-MD5。您可以通過檢查supportedSASLMechanisms RootDSE值來檢查。

如果您使用Active Directory,請確保1)您已創建SPN(請參閱setspn.exe以獲取詳細信息)2)用於連接到AD的用戶帳戶設置爲「使用可逆加密」用戶帳戶標誌。如果沒有這個選項,它將無法工作,因爲DIGEST-MD5算法需要訪問兩端的明文密碼。

0

根據tomcat文檔JNDIRealm支持兩種不同的身份驗證方法:綁定模式和比較模式。

您正在使用「綁定模式」,並且文檔中提到:「出於安全原因,目錄可能會存儲用戶密碼的摘要而不是明文版本(有關詳細信息,請參閱消化密碼)在這種情況下,作爲簡單綁定操作的一部分,目錄會自動計算用戶提交的明文密碼的正確摘要,然後根據存儲的值對其進行驗證因此,在綁定模式下,領域不涉及摘要處理。沒有使用,並且如果設置將被忽略。「。所以你不能在「綁定模式」下使用散列值。使用「比較模式」你可以做你正在做的事情,但是不建議使用「比較模式」,因爲安全的原因,你可以在這裏看到:「比較模式有一些缺點。 ,必須配置connectionName和connectionPassword屬性,以允許領域讀取目錄中的用戶密碼。出於安全原因,這通常是不受歡迎的;實際上許多目錄實現甚至不允許目錄管理器讀取這些密碼。 realm必須自己處理密碼摘要,包括所使用算法的變化以及在目錄中表示密碼哈希的方式,但是有時需要訪問存儲的密碼,例如爲了支持HTTP Digest Access Authentication(RFC 2069)。請注意,HTTP摘要認證與存儲不同如上面所討論的,用於用戶信息的存儲庫中的密碼摘要)。「

tomcat文檔的鏈接:http://tomcat.apache.org/tomcat-6.0-doc/realm-howto.html#JNDIRealmhttp://tomcat.apache.org/tomcat-7.0-doc/realm-howto.html#JNDIRealm