Anycmd權(quán)限管理中間件
權(quán)限系統(tǒng)干了什么?
給出一套方法,將系統(tǒng)中的所有功能標識出來,組織起來,托管起來,將所有的數(shù)據(jù)組織起來標識出來托管起來, 然后提供一個簡單的唯一的接口,這個接口的一端是應用系統(tǒng)一端是權(quán)限引擎。權(quán)限引擎所回答的只是:誰是否對某資源具有實施 某個動作(運動、計算)的權(quán)限。返回的結(jié)果只有:有、沒有、權(quán)限引擎異常了。
文檔
背景
介紹
訪問控制元素
訪問控制字段
EntityType和ResourceType和Ontology三者的區(qū)別與聯(lián)系
數(shù)據(jù)交換協(xié)議指南
模擬事務——為SQL和NO SQL統(tǒng)一事務工作
1,視頻介紹《anycmd筑基》 http://www.tudou.com/programs/view/4jXoarZKwCk/
Anycmd簡介
Anycmd是一個.net平臺的完全開源的,完整支持Rbac的(包括核心Rbac、通用角色層次Rbac、靜態(tài)職責分離Rbac和動態(tài)責任分離Rbac),將會支持xacml的通用的權(quán)限框架、中間件、解決方案。完整的Rbac規(guī)范所定義的能力只是anycmd所提供的能力集的一個子集。 如果您感興趣的話現(xiàn)在可以先觀察Anycmd的源碼,期待您為Anycmd提供幫助確保她走在正確的道路上。
框架、中間件、解決方案是它的三種使用模式:
框架模式: 引用一兩個必要的dll或者相應的源碼,它跟您的應用系統(tǒng)運行在一起,您有能力完全控制anycmd,您需要自己提供UI層,但anycmd自帶的UI層也是可用的。通過面向anycmd遍布各處的擴展點編程使用者有機會有能力實現(xiàn)自己個性化的需求;
中間件模式: 引用一兩個必要的dll和一些資源文件,它可以跟您的應用系統(tǒng)運行在一起,它提供UI層但您也可以刪除并自主提供,它按照最佳實踐提供默認配置,您可以通過調(diào)整配置比如自定義插件來滿足或接近滿足您的需求??梢园補nycmd中間件看作是一個獨立的系統(tǒng),只不過它可以和你的應用系統(tǒng)運行在同一個進程、同一個或不同的AppDomain。
解決方案模式: 提供一整套AC最佳實踐、方法論,使用者有走向最佳實踐的意愿。
如何使用
anycmd不僅提供了來自Rbac國際規(guī)范文檔的IRbacService接口 http://git.oschina.net/anycmd/anycmd/blob/master/src/Anycmd/IRbacService.cs 還提供了一整套穩(wěn)定的、功能完備的、風格一致的、流暢的api??蚣苁褂闷饋矸浅:唵危薅ㄔ贏C領(lǐng)域內(nèi),基本會做到在權(quán)限方面的每一個需求都剛好有一個流暢的風格一致的api。編程的時候只需要通過一套風格一致的流暢的api告訴框架我們希望做什么,然后框架就去做了。但是如果能夠明白訪問控制系統(tǒng)做事情的邏輯的話會更容易使用那些api。 事實上anycmd很容易地就完整實現(xiàn)了對IRbacService的支持,因為對IRbacService的實現(xiàn)不需要書寫專門的邏輯,因為anycmd的api是比Rbac所定義的能力集更大的,只需直接委托給anycmd的api就完整實現(xiàn)了IRbacService。
運行
找到Web.config的BootDbConnString應用設置項,將這個連接字符串的密碼修改成您的密碼。Web.config中只有這一個引導庫連接字符串, 其余數(shù)據(jù)庫的連接字符串在Anycmd引導庫的RDatabase表中,請使用SqlServer管理工具找到Anycmd數(shù)據(jù)庫的RDatabase表修改其密碼項。
測試賬戶
成功運行后轉(zhuǎn)到“用戶”模塊,所有現(xiàn)有賬戶密碼都是“111111”六個1。
路線圖
1,書寫單元測試;
2,書寫教程;
3,替換掉UI層,去除試用版的miniui框架;考慮使用extjs
4,內(nèi)置數(shù)據(jù)交換系統(tǒng),用以各業(yè)務系統(tǒng)與中心系統(tǒng)間的權(quán)限數(shù)據(jù)交換;
5,支持Javascript;
6,支持LDAP(輕量目錄訪問協(xié)議)。
7,優(yōu)化;發(fā)布1.0版本;
8,支持SAML;
9,基于slickflow(原名wf5)支持工作流http://slickflow.codeplex.com/
10,支持Xacml;
感謝
學習資源
javacript引擎:https://github.com/sebastienros/jint/
nosql文檔數(shù)據(jù)庫:https://github.com/mbdavid/LiteDB/
授權(quán)協(xié)議
The MIT license。
