2013-03-12 54 views
0

我在使用PAM時遇到了一些麻煩。我有一個使用PAM進行身份驗證的tomcat webapp。在安裝過程中,我們在/etc/pam.d/sshd文件中將/etc/pam.d中的符號鏈接。這一直工作。PAM「pam_unix.so」身份驗證有時會失敗

最近我添加了一種方式讓用戶驗證每個請求(而不是使用JSESSIONID cookie)。這是因爲我們需要定期將一些數據批量加載到監控應用程序中,並且使用Basic Auth很容易。

如果我反覆碾壓web服務(如每秒10次),那麼每隔一段時間PAM就會失敗。這種情況大約每500次發生一次,儘管我的客戶聲稱它每隔幾次發生一次(請注意,它們正在遠程運行,但我不明白爲什麼這很重要)。

我已經取代我的符號鏈接PAM配置用最小配置:

#%PAM-1.0 
auth  sufficient pam_unix.so audit 
auth  required  pam_deny.so 

我也添加到了我的/etc/syslog.conf

*.debug /var/log/debug.log 

唯一適用的日誌消息可以在來的debug.log發現:

Mar 12 09:49:32 arques java: pam_unix(foo:auth): unable to obtain a password 
Mar 12 09:49:32 arques java: pam_unix(foo:auth): auth could not identify password for [root] 

如何調試這個furthe R'我試過了:

  1. 使用不同的主機。其中之一是一個全新的安裝
  2. 我已經關掉了NSCD服務

回答

0

我有與使用PAM進行驗證的Java應用程序類似的問題。目前,我猜測問題出在CentOS 6.4上的分佈式Java PAM綁定實現中。我不再有權訪問系統(但我仍然試圖解決這個問題),所以我不能提供細節如JDK版本等

我的解決辦法,最終是要嚴厲雜牌PAM:

#%PAM- 
auth sufficient pam_debug.so 

爲了更明確地說明,您可以使用「pam_permit.so」來代替。 就是這樣,基本上。任何有效的用戶都將被認證,使用或不使用密碼。啊。

我正在繼續研究更好的答案。

+0

最終我得出結論說我的PAM配置很好。我發現的解決方案是通過核心身份驗證系統(這是一個Seam應用程序,因此存在一個奇怪的間接尋址)而不是直接調用身份驗證功能(即直接調用libpam.jar)的身份驗證路由。我不確定這是爲什麼起作用,但它確實如此。 – mlathe 2013-06-12 18:07:24