2010-05-08 40 views
0

我需要爲安裝和集成到客戶環境中的應用程序選擇驗證方法。有兩種類型的環境 - windows和linux/unix。應用程序是基於用戶的,沒有網絡資料,純Java。要求是驗證將使用我的應用程序對用戶提供的用戶羣的用戶。意思是,客戶安裝我的應用程序,但使用他自己的用戶授予或拒絕訪問我的應用程序。典型的,對吧?幫助選擇驗證方法

我有三個選擇需要考慮,我需要選擇一個最靈活的以覆蓋大多數常見的現代環境,並且b)在保持健壯和標準的同時將花費最少的努力。

選項(1) - 本地管理某些本地存儲中的用戶憑證(例如,文件。客戶然後將他的用戶添加到我的應用程序,然後它將檢查密碼。簡單,笨拙但會起作用。客戶必須使用我們必須提供的一些用戶界面,將他們想要授予訪問權限的每個用戶都擊打到我的應用程序。對我來說很多工作,令客戶頭疼。

選項(2) - 使用LDAP驗證。客戶會告訴我的應用程序在哪裏尋找用戶,我會將他們的目錄解析名稱放到用戶名中,並嘗試使用找到的密碼進行綁定。這對海事組織來說更好,但更脆弱,因爲我必須走一個未知的目錄結構,誰知道這是否會被允許。由於有很多LDAP實現,所以測試會更加困難,我想要的最後一件事是在這個巫術中溺水。

選項(3) - 使用普通的Kerberos身份驗證。客戶會告訴我的應用程序使用什麼領域(域)和使用哪個KDC(密鑰分發中心)。在理想的情況下,這兩個參數將是我需要設置的,而客戶可以使用他們自己的管理工具來配置域和kdc。我的應用程序只需將用戶憑據委託給第三方(使用JAAS或Spring安全性),並在第三方滿意時考慮成功。

我個人比較喜歡#3,但不確定我可能會遇到什麼樣的驚喜。這將覆蓋Windows和* nix系統嗎?還有其他選擇需要考慮嗎?

回答

0

使用LDAP進行操作。訪問非常簡單,你需要的唯一參數是LDAP服務器(而ActiveDirectory是一個)。如果用戶存在並且密碼正確,他將始終能夠登錄到LDAP服務器。

+0

實際上它不是唯一的參數。我需要指定LDAP服務器的主機和端口,遍歷目錄的憑證,包含用戶名和密碼對應的用戶和字段的位置。我錯過了什麼嗎? – Dima 2010-05-10 20:31:45

+0

只是爲了與普通的Kerberos身份驗證進行比較 - 它只需要KDC和領域的主機端口。 Active Directory可以使用Kerberos進行身份驗證,就像大多數其他LDAP服務器一樣......使用LDAP walkking有什麼好處? – Dima 2010-05-10 20:34:25

+0

身份驗證只是勳章的一面。接下來,當您決定授權時,用戶yue只是經過身份驗證纔有權執行。我將使用LDAP來獲取我將匹配的用戶的組關聯到我自己的訪問控制組。 – Daniel 2010-05-11 05:06:19