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