2012-07-27 121 views
5

我目前正致力於在我們的Java Web應用程序(包括單點登錄)中實現企業身份驗證機制。 Windows網絡是我們的主要目標,Kerberos聽起來是一個合理的選擇。旁註:據我所知,Web(HTTP)環境中用於SSO的協議是SPNEGO,它基本上是Kerberos的一個包裝。因此,聽起來Kerberos HTTP SSO庫實際上正在使用SPNEGO - 如果我錯了,請糾正我。爲Web應用程序單點登錄選擇Kerberos(SPNEGO)Java庫

當我開始調查這個話題時,我意識到沒有明顯的選擇。讓我列舉這些:

  1. Spring security Kerberos/SPNEGO extension。這是我第一次看到(因爲我們已經在使用Spring安全性),但它幾年前似乎陷入了v1.0.0第二個里程碑。只有這SO question略微希望它可以用於生產。
  2. WAFFLE - Windows Authentication Functional Framework。似乎是活躍和功能豐富。它可以作爲通用servlet「插入」,也可以作爲Spring security filter
  3. SPNEGO SourceForge。看起來很輕量級,提供HTTP Servlet過濾器,教程很容易遵循。

是否有任何特殊的原因可以選擇其中一個選項?還有其他的選擇嗎?

回答

3

首先,你的假設是正確的。您需要SPNEGO才能使用HTTP執行SSO。

  1. 這隻能在Spring中合理使用。如果你有它,找到它。我們正在使用它兩年以上。做它的工作。
  2. 這僅適用於Windows。
  3. 使用與Spring相同的JGSS,但是與框架無關。這似乎工作得很好。

如果您使用Tomcat 7,則已經有內置支持。我已經捐贈了適當的代碼。你應該清楚你所期望的。如果您沒有期望,但身份驗證在Spring中使用3或1。

+0

對不起,但點「2」是錯誤的。我的Tomcat服務器和SPNEGO在Linux上正常運行。我還測試了在配置Kerberos客戶端堆棧的Linux上運行的Firefox身份驗證。 – 2016-02-29 07:59:30

+0

@YvesMartin,許多舊的答案現在無效,我已經downvote攻擊這一次。我在2012年是真的。 – 2016-02-29 08:03:05

+0

再次對不起,但我首先在2009年部署了Java 6上的Alfresco服務器,並在Linux服務器上使用SPNEGO身份驗證,並在Windows,Linux和Mac客戶端上使用EPFL。總之,只要Java包含Kerberos支持,它就已經是平臺無關的。 – 2016-02-29 10:23:29