摘要:對(duì)權(quán)限管理及RBAC模型進(jìn)行簡(jiǎn)要描述,在此基礎(chǔ)上提出了基于角色并具體應(yīng)用于Web開發(fā)模式下的權(quán)限管理體系,文中對(duì)于權(quán)限管理的具體實(shí)現(xiàn)進(jìn)行了較為詳細(xì)的描述。實(shí)踐證明這種權(quán)限管理架構(gòu)使得權(quán)限管理更加靈活、高效,具有一定的普遍適用性。
關(guān)鍵詞:訪問控制;基于角色的訪問控制;權(quán)限管理; 架構(gòu);B/S
中圖分類號(hào):TP311文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2008)35-2329-03
Apply the RBAC strategy to enterprise Information Systems
LI Ting
(Zhenjiang Electrical and Mechanical Higher Vocational Technical School, Zhenjiang 212016, China)
Abstract: This article briefly introduced privilege management and role based access control model. The paper gave a kind of privilege management framework which based on RBAC model, and it can be applied to WEB applications. Through the concrete implementation of the project, it has proved that this method is simple, flexible, efficient and universal applicable.
Key words: access control; RBAC; privilege management; framework; B/S
1 引言
訪問控制是網(wǎng)絡(luò)安全防范和保護(hù)的主要核心策略,它的主要任務(wù)是保證網(wǎng)絡(luò)資源不被非法使用和訪問。訪問控制涉及的領(lǐng)域很廣,方法也很多,通常訪問控制策略可以劃分為自主訪問控制(DAC)、強(qiáng)制訪問控制(MAC)和基于角色的訪問控制(RBAC)三種[1-2],這些策略都有各自適用的領(lǐng)域。
訪問控制的基本概念有:1) 主體(Subject)。主體是指主動(dòng)的實(shí)體,是訪問的發(fā)起者,它造成了信息的流動(dòng)和系統(tǒng)狀態(tài)的改變,主體通常包括人、進(jìn)程和設(shè)備。2) 客體(Object)。客體是指包含或接受信息的被動(dòng)實(shí)體,客體在信息流動(dòng)中的地位是被動(dòng)的,是處于主體的作用之下,對(duì)客體的訪問意味著對(duì)其中所包含信息的訪問。3) 訪問(Access)。訪問(Access)是使信息在主體(Subject)和客體(Object)之間流動(dòng)的一種交互方式。4) 訪問許可(Access Permissions)。訪問控制決定了誰能夠訪問系統(tǒng),能訪問系統(tǒng)的何種資源以及如何使用這些資源。
RBAC模型能妥善的解決權(quán)限管理中的動(dòng)態(tài)分配與回收問題,近年來受到學(xué)術(shù)界和業(yè)界的普遍關(guān)注[1-2],并逐漸成為企業(yè)信息系統(tǒng)應(yīng)用中處理訪問控制的主要方法。本文是在簡(jiǎn)要介紹RBAC模型的基礎(chǔ)上,通過具體企業(yè)信息系統(tǒng)討論了基于RBAC模型的實(shí)現(xiàn)問題。
2 基于角色的訪問控制策略
美國(guó)George Mason大學(xué)信息系統(tǒng)和系統(tǒng)工程的R.Sandhu等人在對(duì)RBAC進(jìn)行深入研究的基礎(chǔ)上,于1996年提出了一個(gè)基于角色的訪問控制參考模型,對(duì)于角色訪問控制產(chǎn)生了重要影響,被稱為RBAC96模型[3-5]。RBAC96模型系統(tǒng)全面的反映了RBAC多個(gè)方面的特點(diǎn),將RBAC的幾個(gè)主要方面全部包括了進(jìn)去。同時(shí)RBAC96模型包含了四個(gè)相互關(guān)聯(lián)的子模型,分別為RBAC0、RBAC1、RBAC2及RBAC3模型,這四種子模型具有較強(qiáng)的層次感,并以此很好的表現(xiàn)出了RBAC本身的多層次性。圖1所示為RBAC3模型,即統(tǒng)一模型,這種模型所涉及的應(yīng)用較廣。
RBAC3模型的核心關(guān)系包括:
1) USERS、ROLES、OPERATIONS和OBJECTS分別表示用戶、角色、操作和對(duì)象的集合;
2) UA#8838;USERS × ROLES為一個(gè)用戶和角色間分配的多對(duì)多關(guān)系;
3) (r:ROLES)→2USERS表示把角色r分配給一組用戶;
4) PERMISSIONS=2(OPERATIONS x OBJECTS)為許可的集合;
5) PA#8838;PERMISSIONS × ROLES為許可到角色的多對(duì)多分配關(guān)系;
6) (r:ROLES)→2PERMISSIONS為分配的許可的集合,即把角色r映射到一組許可上;
7) SESSIONS=the set of sessions;
8) session_users(s:SESSIONS)→USERS為會(huì)話用戶關(guān)系,即把會(huì)話s映射到對(duì)應(yīng)的用戶上;
9) session_roles(s:SESSIONS)→2ROLES為會(huì)話角色關(guān)系,即把會(huì)話s映射到一組角色上。
RBAC3模型的等級(jí)關(guān)系包括:
1) RH #8838; ROLES × ROLES是一個(gè)ROLES上的偏序關(guān)系,叫作繼承關(guān)系,它允許將某些角色定義為另一個(gè)角色的子角色,通過角色之間的繼承關(guān)系,間接的擁有其子角色所定義的權(quán)限,角色層次把角色組織了起來,越底層的角色擁有的權(quán)限越普遍;
2) authorized_ users(r:ROLES)→2USERS即把角色r映射到當(dāng)前角色等級(jí)的用戶中;
3) authorized_permissions(r:ROLES)→ 2PERMISSIONS為角色r映射到角色等級(jí)上的一組許可。
3 控制策略的實(shí)現(xiàn)
在開發(fā)企業(yè)信息系統(tǒng)的過程中,我們通過引入RBAC模型,提出了一套適用于企業(yè)信息管理系統(tǒng)的基于角色的權(quán)限控制應(yīng)用架構(gòu)。應(yīng)用這種架構(gòu),可以直接將企業(yè)的組織結(jié)構(gòu)映射到信息系統(tǒng)中,使得對(duì)用戶的管理更加直觀,較大程度的簡(jiǎn)化了權(quán)限管理工作[6-7]。
3.1 權(quán)限管理架構(gòu)
根據(jù)權(quán)限管理與用戶在使用項(xiàng)目過程中權(quán)限驗(yàn)證的實(shí)際需求,我們將權(quán)限管理分為二大功能塊:管理模塊及WEB應(yīng)用程序調(diào)用模塊。管理模塊針對(duì)于系統(tǒng)管理員,是系統(tǒng)管理員實(shí)際操作的模塊,通過這個(gè)模塊系統(tǒng)管理員可以實(shí)現(xiàn)用戶管理、角色管理、權(quán)限(功能點(diǎn))管理、角色分配管理及角色授權(quán)管理。WEB應(yīng)用程序調(diào)用模塊承載著對(duì)于用戶使用應(yīng)用系統(tǒng)時(shí)權(quán)限的驗(yàn)證工作,這個(gè)工作過程對(duì)于普通用戶是透明的,即用戶不會(huì)看到這些模塊的處理過程。當(dāng)用戶用某個(gè)身份登錄系統(tǒng)后,用戶身份確認(rèn)驗(yàn)證模塊會(huì)根據(jù)數(shù)據(jù)庫(kù)中的用戶信息、用戶角色信息及角色權(quán)限信息進(jìn)行權(quán)限的驗(yàn)證,如為合法用戶,則服務(wù)器端將用戶身份信息以對(duì)象的方式保存在服務(wù)器端的Session中,以保證用戶在隨后的授權(quán)操作過程中不需要重新進(jìn)行登錄,當(dāng)然,驗(yàn)證模塊的其它幾項(xiàng),即主窗口權(quán)限控制模塊、頁(yè)面權(quán)限驗(yàn)證模塊、按鈕權(quán)限驗(yàn)證模塊及數(shù)據(jù)區(qū)域訪問權(quán)限驗(yàn)證模塊在用戶使用應(yīng)用系統(tǒng)過程中隨時(shí)被調(diào)用,用來確認(rèn)用戶在系統(tǒng)使用過程中是否具備某一權(quán)限的處理能力。權(quán)限管理架構(gòu)如圖2所示。
根據(jù)項(xiàng)目開發(fā)經(jīng)驗(yàn),本文將Web應(yīng)用場(chǎng)景下權(quán)限劃分為四個(gè)方面,即菜單權(quán)限、頁(yè)面訪問權(quán)限、按鈕權(quán)限及數(shù)據(jù)區(qū)域訪問權(quán)限。1) 菜單權(quán)限。通過菜單權(quán)限的設(shè)置,系統(tǒng)可以根據(jù)用戶的權(quán)限靈活的組織應(yīng)用程序的菜單組成,從而使得各角色用戶擁有更好的人機(jī)界面。2) 頁(yè)面訪問權(quán)限。為了防止非授權(quán)的頁(yè)面訪問,必須對(duì)每一個(gè)頁(yè)面設(shè)置權(quán)限,讓頁(yè)面加載初始時(shí)就進(jìn)行頁(yè)面訪問權(quán)限的驗(yàn)證,從而允許或禁止該用戶訪問頁(yè)面。3) 按鈕權(quán)限。按鈕操作是承載業(yè)務(wù)處理動(dòng)作的重要操作方式,通過按鈕權(quán)限的控制,應(yīng)用系統(tǒng)可以在同一個(gè)頁(yè)面上實(shí)現(xiàn)多個(gè)用戶針對(duì)于同一事務(wù)不同階段的事務(wù)處理,從而使得企業(yè)信息系統(tǒng)的實(shí)現(xiàn)更加的直觀和高效。4) 數(shù)據(jù)區(qū)域訪問權(quán)限。將頁(yè)面中的數(shù)據(jù)根據(jù)業(yè)務(wù)處理情況進(jìn)行群組劃分,可以讓不同的用戶在相同頁(yè)面上只能處理自己擁有權(quán)限的那部分?jǐn)?shù)據(jù)。對(duì)于其它數(shù)據(jù)區(qū)域,可以根據(jù)系統(tǒng)設(shè)計(jì)的要求選擇不顯示還是不可操作。
3.2 權(quán)限管理數(shù)據(jù)庫(kù)實(shí)現(xiàn)
針對(duì)于上一小節(jié)所提及的權(quán)限管理架構(gòu),分析功能需求,得到如下數(shù)據(jù)庫(kù)模型,見圖3。模型所涉及的數(shù)據(jù)字段都比較容易理解,這里就不再進(jìn)行詳述。
3.3 權(quán)限管理靜態(tài)模型
靜態(tài)模型如圖4所示,包括類、類之間的關(guān)系。基本的實(shí)體是用戶類、角色類、權(quán)限類、約束類及會(huì)話類。角色類和權(quán)限類分別特化出兩種類別:用戶和系統(tǒng)管理員。模型的約束可以有很多種形式,這取決于應(yīng)用系統(tǒng)的具體需求,本文引入的約束分別為用戶約束、權(quán)限約束和會(huì)話約束。
3.4 系統(tǒng)管理員權(quán)限管理程序模塊界面
權(quán)限管理所涉及的操作頁(yè)面較多,本文受篇幅所限不可能一一列出,這里只給出了其中三個(gè)模塊所對(duì)應(yīng)的操作頁(yè)面。用戶管理模塊,見圖5。角色管理模塊,見圖6。權(quán)限管理模塊見圖7。
4 總結(jié)
權(quán)限管理問題歷來是信息系統(tǒng)開發(fā)過程中的一個(gè)重要問題,隨著信息化工作的推進(jìn),這個(gè)問題不是減弱了,而是變得越來越重要。本文描述了訪問控制的基本概念,并對(duì)于現(xiàn)今較為流行的RBAC模型進(jìn)行了簡(jiǎn)要述敘,根據(jù)項(xiàng)目開發(fā)實(shí)際經(jīng)驗(yàn)及功能需求,文中對(duì)于基于RBAC模型并具體應(yīng)用于Web應(yīng)用場(chǎng)景下的權(quán)限管理具體實(shí)現(xiàn)問題進(jìn)行了較為詳細(xì)的討論,并給出了實(shí)現(xiàn)方法。實(shí)踐證明,這種方法對(duì)于一般企業(yè)進(jìn)行權(quán)限管理具有靈活、方便、高效的特點(diǎn),具有一定的普遍適用性。
參考文獻(xiàn):
[1] 林磊,駱建彬,鄧憲,等.管理信息系統(tǒng)中基于角色的權(quán)限控制[J].計(jì)算機(jī)應(yīng)用研究,2002(6):82-84.
[2] 歐陽(yáng)星明,張華哲.大型網(wǎng)絡(luò)MIS系統(tǒng)中基于角色的權(quán)限管理[J].計(jì)算機(jī)工程與應(yīng)用,2000(4):138-140.
[3] Ravi S Sandhu,et al.Role-Based Access Control Models[J].Computer IEEE,1996,29(2):38-47.
[4] SANDHU R S,F(xiàn)ERRAIOLO D,KUHN R.The NIST model for role-based access control:Towards a unified standard[C]//Proceedings of the Fifth ACM Workshop on Role Based Access Control.Berlin,Germany:ACM,2000:47-63.
[5] Mathew J Moyer,Mustaque Ahamad.Generalized Role-Based Access Control[C].Proceedings-International Conference on Distributed Computing Systems,2001(4):391-398.
[6] 喬穎,須德,戴國(guó)忠.一種基于角色訪問控制(RBAC)的新模型及其實(shí)現(xiàn)機(jī)制[J].計(jì)算機(jī)研究與發(fā)展,2000,37(1):37-44.
[7] 蔡昭權(quán).基于業(yè)務(wù)無關(guān)的權(quán)限管理的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2008(5):183-185.