IBMSOFT

          ibmsoft 努力不一定成功,放棄一定失敗! 堅(jiān)持自己的理想,實(shí)現(xiàn)自己的目標(biāo)! 有好的想法就要出想辦法實(shí)現(xiàn)!

          BlogJava 首頁(yè) 新隨筆 聯(lián)系 聚合 管理
            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初學(xué)筆記

          什么是RBAC

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

          RBAC的關(guān)注點(diǎn)在于RoleuserRoleprivilege的關(guān)系,也就是User AssignmentPermission Assignment的關(guān)系。

          RBAC有以下優(yōu)點(diǎn):

          1減少授權(quán)管理的復(fù)雜性,降低管理開(kāi)銷
            2靈活的支持企業(yè)的安全策略,對(duì)企業(yè)的變化有很大的伸縮性

          ?

          解決復(fù)雜的權(quán)限管理問(wèn)題的過(guò)程可以抽象概括為:判斷【Who是否可以對(duì)What進(jìn)行How的訪問(wèn)操作(Operator】這個(gè)邏輯表達(dá)式的值是否為True的求解過(guò)程。

          RBAC中的幾個(gè)重要概念:

          l???????? Who權(quán)限的擁有者或主體。典型的有PrincipalUserGroupRoleActor等等。跟授權(quán)有關(guān)系的實(shí)體就只有角色(Role)和用戶(User)。譬如:業(yè)務(wù)經(jīng)理(Role),張三(User

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

          User用戶就是一個(gè)可以獨(dú)立訪問(wèn)計(jì)算機(jī)系統(tǒng)中的數(shù)據(jù)或者用數(shù)據(jù)表示的其它資源的主體,我們用USERS表示一個(gè)用戶集合。用戶在一般情況下是指人。

          Group:是一組相關(guān)user的集合。Usergroup繼承出來(lái),也就具有了該group的角色權(quán)限。

          個(gè)人覺(jué)得可以這么認(rèn)為,role是抽象化了的usergroup

          l???????? What權(quán)限針對(duì)的資源(Resource)(包括資源類別(the type of Resource)和資源實(shí)例(the instance of Resource))。譬如:報(bào)表。

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

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

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

          l? Operator操作。表示施加于WhatHow動(dòng)作。是一種Resource Related的概念,單獨(dú)的How動(dòng)作是沒(méi)有實(shí)際意義的,譬如:刪除;只有與具體資源結(jié)合在一起才有意義,譬如:刪除報(bào)表。

          下面的圖展示了user,group,role,how的關(guān)系

          ?

          權(quán)限系統(tǒng)的核心由以下三部分構(gòu)成:

          1.????? 創(chuàng)造權(quán)限

          2.?????? 分配權(quán)限

          3.?????? 使用權(quán)限

          ?

          系統(tǒng)各部分的主要參與者對(duì)照如下:

          1.創(chuàng)造權(quán)限 - Programer創(chuàng)造,

          2.分配權(quán)限 - Administrator 分配,

          3.使用權(quán)限– User

          ?

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

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 巫山县| 乐安县| 利津县| 遵义市| 沂源县| 延庆县| 海宁市| 平利县| 盐山县| 陈巴尔虎旗| 安平县| 浑源县| 阜宁县| 抚州市| 海兴县| 岐山县| 双峰县| 绥棱县| 静海县| 化州市| 南陵县| 育儿| 龙陵县| 浙江省| 杂多县| 崇州市| 张掖市| 怀化市| 乐都县| 南乐县| 教育| 桐城市| 铜梁县| 嵩明县| 天气| 绥棱县| 上思县| 迁安市| 峨边| 涿鹿县| 金平|