IBMSOFT

          ibmsoft 努力不一定成功,放棄一定失敗! 堅持自己的理想,實現自己的目標! 有好的想法就要出想辦法實現!

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            8 Posts :: 2 Stories :: 3 Comments :: 0 Trackbacks
          http://blog.chinaunix.net/u/11262/showart_213703.html
          http://wiki.springside.org.cn/display/springside/Acegi+Reference

          RBAC初學筆記

          什么是RBAC

          RBAC就是Role-Based Access Control,基于角色的訪問控制。角色訪問控制(RBAC)引入了Role的概念,目的是為了隔離User(即動作主體,Subject)Privilege(權限,表示對Resource的一個操作,即Operation+Resource)更符合企業的用戶、組織、數據和應用特征。

          RBAC的關注點在于RoleuserRoleprivilege的關系,也就是User AssignmentPermission Assignment的關系。

          RBAC有以下優點:

          1減少授權管理的復雜性,降低管理開銷
            2靈活的支持企業的安全策略,對企業的變化有很大的伸縮性

          ?

          解決復雜的權限管理問題的過程可以抽象概括為:判斷【Who是否可以對What進行How的訪問操作(Operator】這個邏輯表達式的值是否為True的求解過程。

          RBAC中的幾個重要概念:

          l???????? Who權限的擁有者或主體。典型的有PrincipalUserGroupRoleActor等等。跟授權有關系的實體就只有角色(Role)和用戶(User)。譬如:業務經理(Role),張三(User

          Role作為一個用戶(User)與權限(Privilege)的代理層,解耦了權限和用戶的關系,所有的授權應該給予Role而不是直接給UserGroup。基于角色的訪問控制方法的思想就是把對用戶的授權分成兩部份,用角色來充當用戶行駛權限的中介。角色是一組訪問權限的集合,一個用戶可以是很多角色的成員,一個角色也可以有很多個權限,而一個權限也可以重復配置于多個角色。

          User用戶就是一個可以獨立訪問計算機系統中的數據或者用數據表示的其它資源的主體,我們用USERS表示一個用戶集合。用戶在一般情況下是指人。

          Group:是一組相關user的集合。Usergroup繼承出來,也就具有了該group的角色權限。

          個人覺得可以這么認為,role是抽象化了的usergroup

          l???????? What權限針對的資源(Resource)(包括資源類別(the type of Resource)和資源實例(the instance of Resource))。譬如:報表。

          粗粒度:表示類別級,即僅考慮對象的類別(the type of object),不考慮對象的某個特定實例。比如,用戶管理中,創建、刪除,對所有的用戶都一視同仁,并不區分操作的具體對象實例。

          細粒度:表示實例級,即需要考慮具體對象的實例(the instance of object),當然,細粒度是在考慮粗粒度的對象類別之后才再考慮特定實例。比如,合同管理中,列表、刪除,需要區分該合同實例是否為當前用戶所創建。

          l???????? How亦作action,表示某種訪問方法(亦請參考Operator條目解釋)。譬如:刪除。

          l? Operator操作。表示施加于WhatHow動作。是一種Resource Related的概念,單獨的How動作是沒有實際意義的,譬如:刪除;只有與具體資源結合在一起才有意義,譬如:刪除報表。

          下面的圖展示了user,group,role,how的關系

          ?

          權限系統的核心由以下三部分構成:

          1.????? 創造權限

          2.?????? 分配權限

          3.?????? 使用權限

          ?

          系統各部分的主要參與者對照如下:

          1.創造權限 - Programer創造,

          2.分配權限 - Administrator 分配,

          3.使用權限– User

          ?

          ?
          1. Programer 向權限系統提供 Operator = Privilege + Resource
          2. Administrator 利用 Operator 這個基本元素,來創造他理想中的權限模型。
            如,創建角色,創建用戶組,給用戶組分配用戶,將用戶組與角色關聯等等...
            這些操作都是由 Administrator 來完成的.
          3. User 使用 Administrator 分配給的權限去使用各個系統。
          程序員只要回答一個問題,就是, 什么權限可以訪問什么資源,也就是前面說的 Operator。程序員提供 Operator 就意味著給系統穿上了盔甲。Administrator 就可以按照他的意愿來建立他所希望的權限框架。Operator是這個系統中最關鍵的部分,它是一個紐帶,一個系在ProgrammerAdministratorUser之間的紐帶。
          posted on 2007-03-05 23:10 ibmsoft 閱讀(242) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 台南县| 临洮县| 惠东县| 耿马| 略阳县| 四子王旗| 衢州市| 隆安县| 东乡族自治县| 紫阳县| 晋江市| 鄂托克前旗| 抚松县| 平度市| 吉林省| 鸡东县| 霍州市| 博湖县| 兰州市| 醴陵市| 托克托县| 盐池县| 施秉县| 瑞昌市| 民丰县| 安陆市| 阿克陶县| 靖远县| 洪江市| 五常市| 汝南县| 温泉县| 建平县| 万载县| 九龙城区| 固安县| 南昌市| 荔浦县| 上思县| 当雄县| 北流市|