陽(yáng)斌 劉青銀
引言:本文在對(duì)計(jì)算機(jī)管理系統(tǒng)進(jìn)行概述的基礎(chǔ)上,對(duì)RBAC模型進(jìn)行簡(jiǎn)要分析,從而對(duì)RBAC模型的權(quán)限管理子系統(tǒng)的設(shè)計(jì)方式進(jìn)行具體研究。
RBAC模型在信息化的權(quán)限管理中具有突出重要的作用,通過(guò)RBAC模型,能夠?qū)ο到y(tǒng)使用者的訪問(wèn)、操作等程序進(jìn)行更加合理、安全的權(quán)限設(shè)定控制工作。
一、 計(jì)算機(jī)管理系統(tǒng)概述
計(jì)算機(jī)管理系統(tǒng)作為人機(jī)交互系統(tǒng)具有特殊復(fù)雜性,每一處系統(tǒng)環(huán)節(jié)均可能遭受安全威脅。因此,建立強(qiáng)化的權(quán)限管理體系,能夠合理保證系統(tǒng)管理的安全性?,F(xiàn)階段,RBAC模型具備相對(duì)完善的理論根基,同時(shí)在權(quán)限管理方面也具有靈活快捷的特點(diǎn),在提出后一直受到業(yè)內(nèi)重視,并在權(quán)限管理中被大范圍使用。RBAC的核心理念即是將權(quán)限對(duì)角色進(jìn)行分配,用戶被賦予身份角色后,即擁有相對(duì)應(yīng)的權(quán)限。
二、 基于RBAC的模型
RBAC在1992年被正式提出,在1996年,喬治麻省大學(xué)的Sandhu教授設(shè)計(jì)出RBAC96模型,并被業(yè)內(nèi)當(dāng)作經(jīng)典模型而廣泛利用。RBAC96作為模型族,其中的RBAC3具有綜合性,主要包括四個(gè)實(shí)體即role、user、permission、session,四種關(guān)系即Permission assignment、User assignment、Role hierarchy、Constraints,和兩種映射即用戶對(duì)用會(huì)話和會(huì)話對(duì)應(yīng)角色[1]。
使用RBAC模型的最大優(yōu)勢(shì)在于能夠?qū)⒂脩襞c用戶擁有的權(quán)限進(jìn)行分離,管理員需要把用戶授權(quán)和用戶權(quán)限進(jìn)行合理劃分從而分別處理,把權(quán)限授予相應(yīng)角色,并將授予的角色交給用戶,從而完成授權(quán)的相應(yīng)操作。如圖1為RBAC訪問(wèn)權(quán)限控制模型[2]。
圖1RBAC訪問(wèn)權(quán)限控制模型
RBAC模型族中的RBAC0定義能夠構(gòu)成RBAC權(quán)限控制系統(tǒng)的最小元素集合。在RBAC模型中,具有users、roles、objects、operations、permissions五個(gè)基本的數(shù)據(jù)元素,權(quán)限賦予在角色部分,而不是直接賦予用戶。而當(dāng)角色制定給對(duì)應(yīng)的使用者是,使用者將擁有角色所具有的權(quán)限。同時(shí),一個(gè)使用者可以對(duì)應(yīng)多個(gè)角色,而一個(gè)角色也可以由多個(gè)使用者共享,類似人類顯示生活中具有的多重身份角色。Sessions為激活角色和使用者集合間的映射,本質(zhì)感念類似傳統(tǒng)意義中訪問(wèn)控制機(jī)制中主體標(biāo)記[3]。一個(gè)主體即為一個(gè)訪問(wèn)控制的單位,相同道理,一個(gè)使用者能夠在同一時(shí)間內(nèi)包含多個(gè)具有不同權(quán)限的主體。RBAC0相比于傳統(tǒng)的訪問(wèn)控制,具有更加優(yōu)異的間接靈活性,每一個(gè)角色至少能夠具有一個(gè)權(quán)限。其后的RBAC1、RBAC2以及RBAC3均是在RBAC0的基礎(chǔ)上擴(kuò)展形成的。
RBAC模型中,使用者、角色與控制對(duì)象三個(gè)要素的關(guān)系能夠抽象出來(lái),單個(gè)用戶和角色可以統(tǒng)一看待為主體,而所有資源則能夠統(tǒng)一看作為客體,同時(shí)再算上操作,這樣三種元素下,主體對(duì)客體就具有了相應(yīng)的操作權(quán)限。這樣能夠相對(duì)容易地對(duì)許多問(wèn)題進(jìn)行解決,授權(quán)進(jìn)程中,需要將使用者、角色等權(quán)限進(jìn)行清晰的表述[4]。
三、 RBAC模型的權(quán)限管理子系統(tǒng)設(shè)計(jì)
1. 系統(tǒng)需求
權(quán)限管理旨在對(duì)使用者進(jìn)行身份識(shí)別和相關(guān)權(quán)限的維護(hù),也能夠完成使用者對(duì)資源操作的控制。此外,當(dāng)用戶以某一個(gè)角色登陸系統(tǒng)時(shí),系統(tǒng)需要對(duì)他在每個(gè)資源中的操作進(jìn)行監(jiān)控,從而判斷該使用者是否具備對(duì)應(yīng)權(quán)限,如果使用者確實(shí)具備,那么允許施行,否則對(duì)其操作進(jìn)行阻止。依據(jù)RBAC模型相關(guān)理論,權(quán)限管理子系統(tǒng)具有需求有:第一,權(quán)限管理的子系統(tǒng)需要對(duì)進(jìn)行非系統(tǒng)資源訪問(wèn)的使用者進(jìn)行身份識(shí)別認(rèn)證,切實(shí)對(duì)使用者的權(quán)限進(jìn)行判斷,例如密碼輸入方面試行三次錯(cuò)誤鎖定的設(shè)置;第二,權(quán)限管理子系統(tǒng)需要作為資源管理的核心控制系統(tǒng),重點(diǎn)需要強(qiáng)化用戶使用模塊的配置工作;第三,權(quán)限管理的子系統(tǒng)需要保證操作的靈活簡(jiǎn)潔,保證具有不同計(jì)算機(jī)操作水平的使用者均能夠較為熟練地進(jìn)行操作;第四,權(quán)限管理的子系統(tǒng)應(yīng)該具備相應(yīng)的高效和安全性,保證系統(tǒng)資源的安全,防止惡意程序入侵,保證系統(tǒng)資源的完整性。
2. 系統(tǒng)架構(gòu)設(shè)計(jì)
權(quán)限管理的子系統(tǒng)可分為表現(xiàn)層、業(yè)務(wù)層、持續(xù)層、數(shù)據(jù)層。其中表現(xiàn)層選取穩(wěn)定框架,使用穩(wěn)定的框架對(duì)系統(tǒng)進(jìn)行處理工作從而切實(shí)減少工作運(yùn)轉(zhuǎn)的數(shù)量[5]。同時(shí),基于方便擴(kuò)展的原則,需要設(shè)計(jì)工作形式的基礎(chǔ)形式以及工作基類的基礎(chǔ)活動(dòng)?;A(chǔ)形式類繼承工作形式,基礎(chǔ)活動(dòng)類繼承處理活動(dòng)類,與其相關(guān)的活動(dòng)類則要繼承基礎(chǔ)形式類從而完成業(yè)務(wù)相關(guān)功能。
業(yè)務(wù)層使用Fa?ade方式,對(duì)所有的業(yè)務(wù)邏輯相關(guān)操作進(jìn)行封裝,從而為調(diào)用表現(xiàn)層提供便利。持續(xù)層則使用應(yīng)用范圍較廣的ORM框架Hibernate,從而合理將對(duì)象與關(guān)系的一系列數(shù)據(jù)進(jìn)行轉(zhuǎn)換??梢允褂梅庋b所通用的泛用性Dao接口中的Dao形式,保證數(shù)據(jù)操作的持久化。Hibernate可以有效進(jìn)行Dao接口的實(shí)現(xiàn)工作。數(shù)據(jù)層則使用關(guān)系類數(shù)據(jù)庫(kù),并通過(guò)Hibernate框架形成對(duì)象相互管理的映射機(jī)制。
3. 業(yè)務(wù)設(shè)計(jì)
系統(tǒng)業(yè)務(wù)的實(shí)體在內(nèi)存當(dāng)中能夠變現(xiàn)成實(shí)體域的對(duì)象,而在數(shù)據(jù)庫(kù)中則表現(xiàn)成關(guān)系數(shù)據(jù)。業(yè)務(wù)實(shí)體的有效實(shí)現(xiàn)需要做到設(shè)計(jì)、創(chuàng)建與模型的實(shí)體和設(shè)計(jì)關(guān)系的數(shù)據(jù)模型兩大方面的具體內(nèi)容。其中,實(shí)體域模型中實(shí)體間的相應(yīng)關(guān)系如表1所示:
表1實(shí)體域模型中實(shí)體間關(guān)系
實(shí)體 關(guān)系
用戶與角色 雙向多對(duì)多
用戶組與角色 雙向多對(duì)多
角色與權(quán)限 雙向多對(duì)多
權(quán)限與資源 單向多對(duì)一
權(quán)限與操作 單向多對(duì)一
關(guān)系模型中,描述對(duì)象的屬性與方式的JAVA類如表2所示:
描述對(duì)象 JAVA類
詳用戶信息 User
詳細(xì)用戶組信息 User Group
詳細(xì)角色信息 Role
詳細(xì)資源信息 Resources
詳細(xì)操作信息 Operation
詳細(xì)權(quán)限信息 Permissions
4. 功能設(shè)計(jì)
權(quán)限管理子系統(tǒng)中,登錄認(rèn)證與角色管理兩個(gè)模塊具有提出作用。其中,登錄認(rèn)證的模塊能夠允許用戶進(jìn)入管理系統(tǒng)的通道,運(yùn)用頁(yè)面與服務(wù)器交互作用完成健全的認(rèn)證工作。與一般的Web管理系統(tǒng)的設(shè)計(jì)方案類似,前端需要使用HTML等模式,服務(wù)器方賣弄需要控制業(yè)務(wù)的邏輯性,數(shù)據(jù)庫(kù)需要對(duì)使用者以及登錄信息進(jìn)行儲(chǔ)存[6]。
角色管理的模塊主要包括角色信息以及角色信息的相關(guān)操作。針對(duì)RBAC模型的具體特點(diǎn)和權(quán)限管理子系統(tǒng)的具體要求,在角色管理模塊的設(shè)計(jì)中,應(yīng)該重點(diǎn)考慮角色的分層、互斥、繼承等方面。分層方面,將角色依照層級(jí)記性管理,能夠切實(shí)對(duì)應(yīng)實(shí)際的崗位級(jí)別,從而滿足系統(tǒng)的相關(guān)需求;互斥方面,互斥的兩個(gè)角色必須分開授予兩個(gè)使用者,從而抱著個(gè)系統(tǒng)的安全資源的完整;繼承方面,擁有子角色的使用者,在父角色所有權(quán)方面,不支持相應(yīng)的角色繼承。
結(jié)束語(yǔ)
RBAC模型的權(quán)限管理子系統(tǒng)能夠?qū)ο到y(tǒng)內(nèi)的資源數(shù)據(jù)進(jìn)行各家合理高效的權(quán)限管理工作,通過(guò)具體的系統(tǒng)設(shè)計(jì)工作,能夠使權(quán)限管理的子系統(tǒng)更加安全可靠地進(jìn)行數(shù)據(jù)信息的管理工作。
參考文獻(xiàn)
[1]金鑫.RBAC權(quán)限管理模型在營(yíng)業(yè)廳聯(lián)播系統(tǒng)中的應(yīng)用研究[D].北京:北京郵電大學(xué),2012.
[2]張瑞卿,舒堅(jiān),蔡柯等.改進(jìn)的基于組織結(jié)構(gòu)的 RBAC 模型[J].計(jì)算機(jī)工程與設(shè)計(jì), 2011(23).
[3]王振江,劉強(qiáng).基于 RBAC 的擴(kuò)展訪問(wèn)控制模型[J].計(jì)算機(jī)工程與應(yīng)用,2011(07).
[4]周志烽,王晶.基于 RBAC 的安全管理模塊的設(shè)計(jì)和實(shí)現(xiàn)[J].典型工程技術(shù)與標(biāo)準(zhǔn)化. 2011(10).
[5]陳丹丹.基于 RBAC 的權(quán)限管理組件的設(shè)計(jì)與實(shí)現(xiàn)[D].武漢: 武漢理工大學(xué),2013.
[6]任中方,張華,閆明松.MVC 模式研究的綜述[J].計(jì)算機(jī)應(yīng)用研究,2013.