身份验证和授权作为开源解决方案服务
通過實(shí)施身份驗(yàn)證和授權(quán)(a&a)機(jī)制為所有用戶數(shù)據(jù)設(shè)計(jì)集中式服務(wù)。 我將分享我的經(jīng)驗(yàn)并最終確定解決方案的結(jié)論。
該設(shè)計(jì)包括客戶端(Web應(yīng)用程序)和服務(wù)器(A&A中心)。
術(shù)語:
1.驗(yàn)證:
認(rèn)證是系統(tǒng)可以安全地標(biāo)識其用戶的機(jī)制。 回答問題“誰是用戶?” 身份驗(yàn)證還包括SSO(單點(diǎn)登錄)。 一種機(jī)制,使用戶能夠一次登錄并獲得所有參與資源的“免費(fèi)通行證”,而無需附加標(biāo)志。
2.授權(quán):
授權(quán)是驗(yàn)證用戶是否具有訪問某些資源或部分的角色/權(quán)限的過程。
回答問題:用戶X是否有權(quán)訪問資源/操作Y?
3.受保護(hù)的客戶:
通常,a&a機(jī)制與受保護(hù)的客戶端框架配合使用:Spring安全性,Apache Shiro,Wicket身份驗(yàn)證等。 我將在稍后的文章中進(jìn)行評論。
要考慮的主要主題:
完整的解決方案提供商:
在我的研究中,我遇到了完整的解決方案提供商:
- Open AM(稱為OpenSSO)–他們聲稱是一個(gè)開源項(xiàng)目。 但是過了一會(huì)兒,您發(fā)現(xiàn)它確實(shí)是一個(gè)開放源代碼,但并非用于商業(yè)用途。 您需要為他們的a&a配套支付大量的錢。
- 人群– Atlassian。 似乎是一種快速,良好且非常便宜的解決方案。 但是,我們?nèi)栽谧呦蛲耆虡I(yè)化的開源解決方案。 這個(gè)也不符合我們的需求。
受保護(hù)的客戶:
- Spring安全性:非常流行并且廣泛使用。 當(dāng)您想要擁有除基本設(shè)置以外的更多功能時(shí),Spring Security需要大量的xml配置。
此外,如果您需要支持權(quán)限(而不僅是角色),Spring安全性不提供現(xiàn)成的支持。
- Apache Shiro:–很棒的產(chǎn)品。 開箱即用的配置和權(quán)限支持非常簡單。
問題在于Shiro的社區(qū)仍然很小,而且該項(xiàng)目還很新。
解:
我遇到了CAS(中央身份驗(yàn)證服務(wù))–偉大且完全開源的項(xiàng)目。 CAS提供SSO解決方案并支持流行的協(xié)議,例如SAML,OPENID,Auth。
因此,如果我們將CAS與LDAP服務(wù)器集成在一起(以保存用戶的信息),我們就可以實(shí)現(xiàn)身份驗(yàn)證模型(并且開箱即用地?fù)碛蠸SO)。
CAS基于Spring,非常容易擴(kuò)展,以防我們要進(jìn)行自定義更改。 您可以輕松下載源代碼,并根據(jù)需要對其進(jìn)行自定義。
CAS配置非常容易并且有據(jù)可查。
我選擇了Spring Security。 三個(gè)原因:
*我提到Spring安全缺乏權(quán)限。 但是有一種解決方法。 可以在此處找到簡短的示例: http : //en.tekstenuitleg.net/blog/spring-security-with-roles-and-rights
到目前為止,我們有Spring Security,Cas和LDAP(OpenLdap)服務(wù)器。
可能有些棘手取決于您的項(xiàng)目要求。 您可以通過兩種方式配置授權(quán)流:
CAS支持屬性。 這意味著您可以向返回的響應(yīng)中添加其他屬性(角色/權(quán)限)(通過SAML,這非常簡單)。
您實(shí)際上可以選擇并配置從哪個(gè)源中提取其他屬性(數(shù)據(jù)庫,Ldap,Active Directory等)。
這是一個(gè)非常簡潔而優(yōu)雅的解決方案–一個(gè)中心,可以按要求提供每個(gè)用戶的身份驗(yàn)證和授權(quán)角色/權(quán)限。
您可以通過擴(kuò)展UserDetails接口來配置Spring Security。 然后,讓每個(gè)應(yīng)用程序在成功通過身份驗(yàn)證后控制授權(quán)邏輯。
*是否存在每個(gè)Web客戶端應(yīng)用程序應(yīng)對其授權(quán)邏輯負(fù)責(zé)還是對其進(jìn)行集中管理的公開辯論(正如我在第一點(diǎn)所述)。
我建議根據(jù)您的項(xiàng)目需求用例來確定正確的態(tài)度。
最后,我們有了一個(gè)完全用于商業(yè)用途的a&a開源解決方案。
翻譯自: https://www.javacodegeeks.com/2013/11/authentication-and-authorization-as-an-open-source-solution-service.html
總結(jié)
以上是生活随笔為你收集整理的身份验证和授权作为开源解决方案服务的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 将社交登录添加到Spring MVC W
- 下一篇: 编写自动调试器以在测试执行期间捕获异常