2016-08-31 113 views
0

問題陳述:建議/指導實施LDAP(活動目錄)認證

我想建立一個自定義的管理系統,將需要認證和授權兩種。 系統需要具備管理/創建/更新/刪除用戶,角色,權限和組的功能。

我的設計方案

我刨從頭實現這個內部和如下將提供身份驗證和授權。

身份驗證:用戶將提供他們的憑據,系統會驗證用戶是否有效。

授權:一旦用戶通過身份驗證,基於用戶組和權限,他們可以訪問網站上請求的頁面。

問:

現在,我的問題是,假設我有這個應用程序成功地建立並在今後我的應用程序需要LDAP(活動目錄)認證,纔有可能在LDAP相關的功能,堵塞保持我現有的應用程序完好無損或者我將不得不使用LDAP API重新編寫整個或大部分應用程序。

我看了一下Apache shiro和spring security,其中 提供了LDAP功能,它們還提供管理/創建/更新/刪除用戶的功能。

截至目前,我還沒有決定我是否會與他們任何一個去或寫我自己的。

如果能得到關於如何處理事情的詳細反應,我們將不勝感激。

注意: 我是一個LDAP的完整新手,所以請原諒我,如果我已經使用了一些關於LDAP的錯誤術語。

回答

1

安全是一個嚴重的領域,有很多很多隱藏的併發症。我肯定會建議不要自己實施這個。既然你提到了Spring LDAP,我猜你是在一個基於Spring的項目中。這種設置的明顯選擇將是優秀的Spring Security項目。

+0

謝謝,春季安全有能力允許/不允許基於權限和角色訪問某個頁面嗎?我可以在我的表中定義組,並讓Spring使用這些組來允許/禁止訪問某個頁面嗎?我可以在春季安全中定義自定義角色嗎? – user641887

+1

哦,是的,所有這些以及更多:)。 Spring Security默認使用基於角色的安全授權。從你的問題中不清楚你的意思是通過分隔角色,權限和組來實現(你在考慮基於ACL的授權嗎?),但是一切都是完全可插入的,所以你將能夠使用任何你想要的自定義授權方案(也有基於ACL的授權的開箱即用支持)。查看參考文檔,它非常好! – marthursson

+0

我的意思是說,在春季文檔中它說授權是基於角色的。我想覆蓋它並根據權限創建授權。我的架構中會有3個表。用戶,角色和權限,我想授權用戶的權限而不是角色。就像用戶具有特定的權限執行特定的操作或顯示其他特定的頁面一樣。所以它有我自己的用戶,權限和角色表,並使用彈簧安全。此外,我將有一個用戶界面來編輯,更新和創建新的角色,用戶和權限。 – user641887

2

我會建議不實施這個你自己,只是與現有的API集成。

信息披露:我爲Stormpath(正好提供這個)和Apache Shiro工作。另外,如果您的應用程序需要LDAP支持,大多數我看過的LDAP設置僅在與應用程序集成時支持讀取操作,因此您可能想與LDAP管理員聊天並查看您的「管理」 '用戶用例是可行的。

+0

確實spring安全或apache shiro有能力支持自定義角色,權限和組?我可以根據他的權限控制對用戶的特定頁面的訪問權限,而不是在Spring Security或Shiro中的角色? – user641887

+0

是的,關於[Shiro的權限]的總體概述(http://shiro.apache.org/permissions。html),後者又可以配置爲保護給定的[路徑](http://shiro.apache.org/web.html#Web-WebINIconfiguration),或通過基於程序和註解的方法。 –