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