戴志強(qiáng)
Research Based on Role Control Model
DAI Zhi-qiang
(Zhangjiajie College,Jishou University,Zhangjiajie 427000,Hunan China)
Abstract: The paper mainly introduces role based access control (RBAC) model, its control access technology and implementation project.
Key Words: User, Role, Operation
摘要:主要介紹基于角色控制模型——RBAC控制訪問(wèn)技術(shù)及其實(shí)現(xiàn)方案。
關(guān)鍵詞:用戶;角色;操作
基于角色控制模型RBAC(Role-Based Access Control)是美國(guó)國(guó)家標(biāo)準(zhǔn)與技術(shù)協(xié)會(huì)NIST于20實(shí)際90年代初提出的一種新的控制訪問(wèn)技術(shù)。RBAC的核心思想就是將訪問(wèn)權(quán)限與角色相聯(lián)系,將用戶劃分為與其在組織結(jié)構(gòu)體系中相一致的角色,權(quán)限管理也就可以根據(jù)需要定義各種角色,并對(duì)角色設(shè)置相應(yīng)的訪問(wèn)權(quán)限。用戶則根據(jù)其崗位和責(zé)任被指派為不同的角色,從而實(shí)現(xiàn)用戶和權(quán)限的邏輯分離。在實(shí)際工作中,由于角色——權(quán)限之間的變化遠(yuǎn)比角色——用戶之間的變化慢得多,其次能夠很好的適應(yīng)企業(yè)級(jí)用戶較多并且有著不同權(quán)限系統(tǒng)的訪問(wèn)控制管理應(yīng)用的要求。
一、相關(guān)技術(shù)
1.RBAC0定義了能構(gòu)成一個(gè)RBAC控制系統(tǒng)的最小的元素集合
在RBAC之中,包含用戶users(USERS)、角色roles(ROLES)、目標(biāo)objects(OBS)、操作operations(OPS)、許可權(quán)permissions(PRMS)五個(gè)基本數(shù)據(jù)元素,權(quán)限被賦予角色,而不是用戶,當(dāng)一個(gè)角色被指定給一個(gè)用戶時(shí),此用戶就擁有了該角色所包含的權(quán)限。會(huì)話sessions是用戶與激活的角色集合之間的映射。RBAC0與傳統(tǒng)訪問(wèn)控制的差別在于增加一層間接性帶來(lái)了靈活性,RBAC1、RBAC2、RBAC3都是先后在RBAC0上的擴(kuò)展。
2.RBAC1引入角色間的繼承關(guān)系
角色間的繼承關(guān)系可分為一般繼承關(guān)系和受限繼承關(guān)系。一般繼承關(guān)系僅要求角色繼承關(guān)系是一個(gè)絕對(duì)偏序關(guān)系,允許角色間的多繼承。而受限繼承關(guān)系則進(jìn)一步要求角色繼承關(guān)系是一個(gè)樹(shù)結(jié)構(gòu)。
3.RBAC2模型中添加了責(zé)任分離關(guān)系
RBAC2的約束規(guī)定了權(quán)限被賦予角色時(shí),或角色被賦予用戶時(shí),以及當(dāng)用戶在某一時(shí)刻激活一個(gè)角色時(shí)所應(yīng)遵循的強(qiáng)制性規(guī)則。責(zé)任分離包括靜態(tài)責(zé)任分離和動(dòng)態(tài)責(zé)任分離。約束與用戶-角色-權(quán)限關(guān)系一起決定了RBAC2模型中用戶的訪問(wèn)許可。
4.RBAC3包含了RBAC1和RBAC2
既提供了角色間的繼承關(guān)系,又提供了責(zé)任分離關(guān)系。
二、實(shí)現(xiàn)方案
核心對(duì)象模型的設(shè)計(jì)與實(shí)現(xiàn)
根據(jù)RBAC模型的權(quán)限設(shè)計(jì)思想,建立權(quán)限管理系統(tǒng)的核心對(duì)象模型.對(duì)象模型中包含的基本元素主要有:用戶(Users)、用戶組(Group)、角色(Role)、目標(biāo)(Objects)、訪問(wèn)模式(Access Mode)、操作(Operator)。主要的關(guān)系有:分配角色權(quán)限PA(Permission Assignment)、分配用戶角色UA(Users Assignmen描述如下:
(一)控制對(duì)象:是系統(tǒng)所要保護(hù)的資源(Resource),可以被訪問(wèn)的對(duì)象。資源的定義需要注意以下兩個(gè)問(wèn)題:
1.資源具有層次關(guān)系和包含關(guān)系。例如,網(wǎng)頁(yè)是資源,網(wǎng)頁(yè)上的按鈕、文本框等對(duì)象也是資源,是網(wǎng)頁(yè)節(jié)點(diǎn)的子節(jié)點(diǎn),如可以訪問(wèn)按鈕,則必須能夠訪問(wèn)頁(yè)面。
2.這里提及的資源概念是指資源的類(lèi)別(Resource Class),不是某個(gè)特定資源的實(shí)例(Resource Instance)。資源的類(lèi)別和資源的實(shí)例的區(qū)分,以及資源的粒度的細(xì)分,有利于確定權(quán)限管理系統(tǒng)和應(yīng)用系統(tǒng)之間的管理邊界,權(quán)限管理系統(tǒng)需要對(duì)于資源的類(lèi)別進(jìn)行權(quán)限管理,而應(yīng)用系統(tǒng)需要對(duì)特定資源的實(shí)例進(jìn)行權(quán)限管理。兩者的區(qū)分主要是基于以下兩點(diǎn)考慮:
一方面,資源實(shí)例的權(quán)限常具有資源的相關(guān)性。即根據(jù)資源實(shí)例和訪問(wèn)資源的主體之間的關(guān)聯(lián)關(guān)系,才可能進(jìn)行資源的實(shí)例權(quán)限判斷。 例如,在管理信息系統(tǒng)中,需要按照營(yíng)業(yè)區(qū)域劃分不同部門(mén)的客戶,A區(qū)和B區(qū)都具有修改客戶資料這一受控的資源,這里“客戶檔案資料”是屬于資源的類(lèi)別的范疇。如果規(guī)定A區(qū)只能修改A區(qū)管理的客戶資料,就必須要區(qū)分出資料的歸屬,這里的資源是屬于資源實(shí)例的范疇??蛻魴n案(資源)本身應(yīng)該有其使用者的信息(客戶資料可能就含有營(yíng)業(yè)區(qū)域這一屬性),才能區(qū)分特定資源的實(shí)例操作,可以修改屬于自己管轄的信息內(nèi)容。
另一方面,資源的實(shí)例權(quán)限常具有相當(dāng)大的業(yè)務(wù)邏輯相關(guān)性。對(duì)不同的業(yè)務(wù)邏輯,常常意味著完全不同的權(quán)限判定原則和策略。
(二)權(quán)限:對(duì)受保護(hù)的資源操作的訪問(wèn)許可(Access Permission),是綁定在特定的資源實(shí)例上的。對(duì)應(yīng)地,訪問(wèn)策略(Access Strategy)和資源類(lèi)別相關(guān),不同的資源類(lèi)別可能采用不同的訪問(wèn)模式(Access Mode)。例如,頁(yè)面具有能打開(kāi)、不能打開(kāi)的訪問(wèn)模式,按鈕具有可用、不可用的訪問(wèn)模式,文本編輯框具有可編輯、不可編輯的訪問(wèn)模式。同一資源的訪問(wèn)策略可能存在排斥和包含關(guān)系。例如,某個(gè)數(shù)據(jù)集的可修改訪問(wèn)模式就包含了可查詢?cè)L問(wèn)模式。
(三)用戶:是權(quán)限的擁有者或主體。用戶和權(quán)限實(shí)現(xiàn)分離,通過(guò)授權(quán)管理進(jìn)行綁定。
(四)用戶組:一組用戶的集合。在業(yè)務(wù)邏輯的判斷中,可以實(shí)現(xiàn)基于個(gè)人身份或組的身份進(jìn)行判斷。系統(tǒng)弱化了用戶組的概念,主要實(shí)現(xiàn)用戶(個(gè)人的身份)的方式。
(五)角色:權(quán)限分配的單位與載體。角色通過(guò)繼承關(guān)系支持分級(jí)的權(quán)限實(shí)現(xiàn)。例如,科長(zhǎng)角色同時(shí)具有科長(zhǎng)角色、科內(nèi)不同業(yè)務(wù)人員角色。
(六)操作:完成資源的類(lèi)別和訪問(wèn)策略之間的綁定。
(七)分配角色權(quán)限PA:實(shí)現(xiàn)操作和角色之間的關(guān)聯(lián)關(guān)系映射。
(八)分配用戶角色UA:實(shí)現(xiàn)用戶和角色之間的關(guān)聯(lián)關(guān)系映射。 該對(duì)象模型最終將訪問(wèn)控制模型轉(zhuǎn)化為訪問(wèn)矩陣形式。訪問(wèn)矩陣中的行對(duì)應(yīng)于用戶,列對(duì)應(yīng)于操作,每個(gè)矩陣元素規(guī)定了相應(yīng)的角色,對(duì)應(yīng)于相應(yīng)的目標(biāo)被準(zhǔn)予的訪問(wèn)許可、實(shí)施行為。按訪問(wèn)矩陣中的行看,是訪問(wèn)能力表CL(Access Capabilities)的內(nèi)容;按訪問(wèn)矩陣中的列看,是訪問(wèn)控制表ACL(Access Control Lists)的內(nèi)容。
三、結(jié)束語(yǔ)
基于角色的訪問(wèn)控制系統(tǒng)要面對(duì)的就是用戶信息、角色信息、權(quán)限信息這三類(lèi)基本的數(shù)據(jù)信息,而且在訪問(wèn)控制服務(wù)器的實(shí)現(xiàn)中對(duì)基本信息和對(duì)應(yīng)關(guān)系的信息進(jìn)行分開(kāi)處理,這樣的實(shí)現(xiàn)方式能夠更好的突出通用性的設(shè)計(jì),因?yàn)獒槍?duì)不同的應(yīng)用,僅僅需要對(duì)基本信息和對(duì)應(yīng)關(guān)系信息的結(jié)構(gòu)進(jìn)行一定的修改就可以完成。
參考文獻(xiàn)
[1] 夏志雄,張曙光.RBAC在基于Web管理信息系統(tǒng)中的應(yīng)用[J]計(jì)算機(jī)應(yīng)用研究.2004.7
[2] 施景超,孫維祥,許滿武.基于角色的存取控制及其實(shí)現(xiàn)[J]計(jì)算機(jī)應(yīng)用研究.2000.6
[3] 陳敏,劉曉強(qiáng).擴(kuò)展RBAC的CRM動(dòng)態(tài)用戶訪問(wèn)控制模型與實(shí)現(xiàn)[J]計(jì)算機(jī)應(yīng)用.2007.10
[4] 楊宗凱,劉宏波,劉琴濤. 基于角色的訪問(wèn)控制在網(wǎng)絡(luò)教育中的應(yīng)用研究[J]計(jì)算機(jī)應(yīng)用研究, 2005,10
[5] 王建軍,李新國(guó).基于分層對(duì)象化RBAC的設(shè)計(jì)與實(shí)現(xiàn)[J]計(jì)算機(jī)工程與設(shè)計(jì).2007.09
[6] 鄭宇,傅鸝.基于角色的訪問(wèn)控制模型在電子政務(wù)系統(tǒng)中的應(yīng)用[J]軟件導(dǎo)刊.2007.23
[7] 范會(huì)聯(lián),李獻(xiàn)禮.基于Struts框架的Web信息系統(tǒng)中RBAC的實(shí)現(xiàn)[J]計(jì)算機(jī)時(shí)代.2005.12
[8] 蔡蘭,郭順生,李益兵.基于角色訪問(wèn)控制的動(dòng)態(tài)權(quán)限配置研究與實(shí)現(xiàn)[J]組合機(jī)床與自動(dòng)化加工技術(shù), 2005,03
[9] 李仲,楊宗凱,劉威.一種基于RBAC的實(shí)現(xiàn)動(dòng)態(tài)權(quán)限管理的方法[J]計(jì)算機(jī)技術(shù)與發(fā)展.2006.10
[10] 李志華.CRM中基于RBAC的改進(jìn)模型的研究與設(shè)計(jì)[J]計(jì)算機(jī)工程與設(shè)計(jì).2007.05