開源RBAC許可權引擎:Anycmd
許可權系統幹了什麼?
給出一套方法,將系統中的所有功能標識出來,組織起來,託管起來,將所有的資料組織起來標識出來託管起來, 然後提供一個簡單的唯一的介面,這個介面的一端是應用系統一端是許可權引擎。許可權引擎所回答的只是:誰是否對某資源具有實施 某個動作(運動、計算)的許可權。返回的結果只有:有、沒有、許可權引擎異常了。
背景
回到頂部介紹
回到頂部 回到頂部 回到頂部 回到頂部 回到頂部贊助
Anycmd簡介
Anycmd是一個.net平臺的完全開源的,完整支援Rbac的(包括核心Rbac、通用角色層次Rbac、靜態職責分離Rbac和動態責任分離Rbac),將會支援xacml的通用的許可權框架、中介軟體、解決方案。完整的Rbac規範所定義的能力只是anycmd所提供的能力集的一個子集。 如果您感興趣的話現在可以先觀察Anycmd的原始碼,期待您為Anycmd提供幫助確保她走在正確的道路上。
框架、中介軟體、解決方案是它的三種使用模式:
框架模式: 引用一兩個必要的dll或者相應的原始碼,它跟您的應用系統執行在一起,您有能力完全控制anycmd,您需要自己提供UI層,但anycmd自帶的UI層也是可用的。通過面向anycmd遍佈各處的擴充套件點程式設計使用者有機會有能力實現自己個性化的需求;
中介軟體模式: 引用一兩個必要的dll和一些資原始檔,它可以跟您的應用系統執行在一起,它提供UI層但您也可以刪除並自主提供,它按照最佳實踐提供預設配置,您可以通過調整配置比如自定義外掛來滿足或接近滿足您的需求。可以把anycmd中介軟體看作是一個獨立的系統,只不過它可以和你的應用系統執行在同一個程序、同一個或不同的AppDomain。
解決方案模式:
如何使用
anycmd不僅提供了來自Rbac國際規範文件的IRbacService介面,還提供了一整套穩定的、功能完備的、風格一致的、流暢的api。框架使用起來非常簡單,限定在AC領域內,基本會做到在許可權方面的每一個需求都剛好有一個流暢的風格一致的api。程式設計的時候只需要通過一套風格一致的流暢的api告訴框架我們希望做什麼,然後框架就去做了。但是如果能夠明白訪問控制系統做事情的邏輯的話會更容易使用那些api。 事實上anycmd很容易地就完整實現了對IRbacService的支援,因為對IRbacService的實現不需要書寫專門的邏輯,因為anycmd的api是比Rbac所定義的能力集更大的,只需直接委託給anycmd的api就完整實現了IRbacService。
執行
找到Web.config的BootDbConnString應用設定項,將這個連線字串的密碼修改成您的密碼。Web.config中只有這一個引導庫連線字串, 其餘資料庫的連線字串在Anycmd引導庫的RDatabase表中,請使用SqlServer管理工具找到Anycmd資料庫的RDatabase表修改其密碼項。
測試賬戶
成功執行後轉到“使用者”模組,所有現有賬戶密碼都是“111111”六個1。
路線圖
- 1,書寫單元測試;
- 2,書寫教程;
- 3,替換掉UI層,去除試用版的miniui框架;考慮使用extjs
- 4,內建資料交換系統,用以各業務系統與中心繫統間的許可權資料交換;
- 5,支援Javascript;
- 6,支援LDAP(輕量目錄訪問協議)。
- 7,優化;釋出1.0版本;
- 8,支援SAML;
- 10,支援Xacml;
感謝
學習資源
授權協議
The MIT license。