漫談權限系統之結尾篇(開源產品、個人觀點、知識體系)

          一.  開源產品

          對開源的產品了解不多,所以也只能大概的談談,開源的產品中比較知名的有poweraclacegipoweracl從名字就可以看出其是基于ACL模型的,不怎么了解所以在此也不去評價了。

          Acegi作為JAVA界知名的權限系統,從其文檔看來是能滿足上述的權限系統的所有需求,其reference文檔也對權限系統進行了系統的歸納,非常的不錯,建議去看看。

          Acegi中授權模型以及資源權限的校驗仍然是基于RBAC模型,在數據權限方面也就是在reference文檔中它稱為Domain Object Instance的部分,是基于ACL模型的實現,曾經翻閱它此部分的代碼,根據代碼表現它并不支持Domain Object Instance的權限的繼承,并且對于獲取的Domain Object Instance也是沒法采用分頁的方式獲取。

          看了Acegi的代碼覺得其授權應該是比較高效的,但在校驗權限上效率恐怕也會比較的低,因為權限的繼承是在校驗權限通過遞規來實現的,雖然引入了緩存機制但仍然無法從根本上解決此問題,而且此緩存的維護也不是一件容易的事。

          Acegi的優點也不可忽略,作為權限系統有一個很容易產生的問題就是對原有系統產生非常大的侵入,并最終導致原有系統與此權限系統形成了非常強的耦合,Acegi在這點上則做的比較好,通過使用FilterInterceptor以及AOP Weaver技術來盡量保證對原有系統最少的改動。

          二.  個人觀點

          權限系統作為各種系統中都需要的一個子系統,具有很廣的需求面,無論做什么系統,首要重要的仍然是需求,盡管權限系統在各個系統中都有需求,但仍然是不盡相同,所以首先要明確所面對的系統到底是一個什么樣的系統,對于權限有什么樣的需求,根據需求可以根據相應的實現方案來做出自己的設計。

          權限系統主要由授權和校驗權限兩大部分組成,授權效率和校驗權限的效率通常會產生沖突,個人覺得首先要保證校驗權限的效率,畢竟系統需要校驗權限的地方會非常的多,但授權動作相對來講觸發的會比較的少。

          從技術需求上來講,權限系統對外部系統而言最好做到黑盒的效果,為了減少對外部系統的侵入,在根據業務需求分析的基礎上形成權限系統的輸入和輸出需求,從通常的功能需求角度來大致的闡述:

          1.         身份認證

          B/S結構的系統中通常通過增加Filter來達到實現身份認證的功能,這樣不會造成對原有系統的改動。

          2.         授權模型

          授權模型則需外部系統根據此模型建立相應的授權UI以及交互,當然,權限系統本身也可提供默認的實現方式。

          3.         資源權限校驗

          在資源權限的校驗上可通過ProxyBefore Interceptor的方式來做到對資源操作的權限控制。

          4.         數據權限校驗

          在很多時候需要區分好數據權限和業務邏輯,不要將業務邏輯形式的數據控制也借用數據權限來實現,數據權限的引入很容易對現有的系統模塊造成影響,在此塊的設計上要特別注意避免造成對原有系統模塊過多的侵入。

          5.         權限校驗的體現

          在權限校驗的體現上基本主要是表現在菜單、按鈕以及數據的顯示上,菜單、按鈕通常通過標簽的方式來控制,數據的顯示控制則需結合數據權限校驗部分來實現。

          到現在為止也做了幾個權限系統了,目前仍然沒做出讓自己滿意的權限系統,此文作為拋磚引玉的文章,也希望大家能夠給出自己所做的解決方案。

          三.  涉及的知識體系

          根據上面的描述以及結合自己的經驗,形成搭建權限系統所需的知識體系:

          權限系統.jpg
          圖表
          6 權限系統知識體系

          posted on 2005-10-14 20:17 BlueDavy 閱讀(3785) 評論(3)  編輯  收藏 所屬分類: 系統設計

          評論

          # re: 漫談權限系統之結尾篇(開源產品、個人觀點、知識體系) 2005-10-16 10:21 benlueis

          請問在.net框架下有什么比較好的權限安全框架  回復  更多評論   

          # re: 漫談權限系統之結尾篇(開源產品、個人觀點、知識體系) 2005-10-16 20:47

          ads  回復  更多評論   

          # re: 漫談權限系統之結尾篇(開源產品、個人觀點、知識體系) 2005-11-17 22:10 Jesse

          同問,.NET下有什么較好的權限管理系統?  回復  更多評論   

          公告

           









          feedsky
          抓蝦
          google reader
          鮮果

          導航

          <2005年10月>
          2526272829301
          2345678
          9101112131415
          16171819202122
          23242526272829
          303112345

          統計

          隨筆分類

          隨筆檔案

          文章檔案

          Blogger's

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 遂昌县| 靖江市| 开江县| 庆元县| 稷山县| 姚安县| 东莞市| 永丰县| 涟源市| 蓬安县| 湾仔区| 本溪| 星子县| 石门县| 潜江市| 武宣县| 武鸣县| 洞口县| 金湖县| 峨山| 体育| 库尔勒市| 江阴市| 吴旗县| 昭通市| 伊川县| 怀来县| 钟山县| 鄂伦春自治旗| 大田县| 昭通市| 呼伦贝尔市| 巴青县| 五河县| 得荣县| 阿合奇县| 邢台市| 海盐县| 西华县| 信阳市| 景德镇市|