瞿華(北京林業(yè)大學(xué) 經(jīng)濟(jì)管理學(xué)院,北京 100083)
領(lǐng)域驅(qū)動的EIS訪問控制系統(tǒng)研究
瞿華
(北京林業(yè)大學(xué)經(jīng)濟(jì)管理學(xué)院,北京 100083)
訪問控制是保證EIS(企業(yè)信息系統(tǒng))安全的主要方法之一。目前主流的EIS系統(tǒng)多采用基于RBAC的訪問控制機(jī)制。其功能的充分發(fā)揮依賴于良好的權(quán)限分配設(shè)計(jì),而一般的企業(yè)用戶不具備相關(guān)的知識和能力,難以長期持續(xù)保持系統(tǒng)用戶權(quán)限和企業(yè)實(shí)際工作需要的有效對應(yīng),使其往往達(dá)不到應(yīng)有的安全效果。針對這一問題,本文基于領(lǐng)域驅(qū)動設(shè)計(jì)思想,使用企業(yè)管理者熟悉的概念,設(shè)計(jì)了一種新的企業(yè)信息系統(tǒng)訪問控制模型,與基于RBAC的訪問控制模型相比,其更容易被一般企業(yè)管理者理解和使用。在該模型的基礎(chǔ)上,進(jìn)一步使用Java語言實(shí)現(xiàn)了權(quán)限管理系統(tǒng)的demo,證明了該模型的可行性。
軟件工程;企業(yè)信息系統(tǒng);領(lǐng)域驅(qū)動設(shè)計(jì);系統(tǒng)安全
訪問控制(Access Control)是通過某種途徑顯式地準(zhǔn)許或限制主體對客體訪問能力及范圍的一種方法,是保證企業(yè)信息系統(tǒng)(Enterprise Information Systems,EIS)信息安全的主要方法之一。目前主流EIS多采用基于RBAC模型的訪問控制機(jī)制,其具有靈活性強(qiáng)等特點(diǎn),被廣泛應(yīng)用于各類信息系統(tǒng)中。
但基于RBAC模型的訪問控制機(jī)制也存在一些問題,主要表現(xiàn)在:①為了保證控制的效果,在系統(tǒng)實(shí)施時需要對權(quán)限和角色進(jìn)行精心的設(shè)計(jì),即所謂的角色工程,成本較高;②訪問控制機(jī)制與企業(yè)人力資源管理機(jī)制脫節(jié),隨著系統(tǒng)的運(yùn)行,企業(yè)出現(xiàn)大量的人員和崗位變動后,系統(tǒng)中用戶的權(quán)限往往未能得到及時和正確的更新。
為了解決上述問題,本文提出了一種基于領(lǐng)域驅(qū)動設(shè)計(jì)思想的EIS訪問控制模型,并討論了其具體的實(shí)現(xiàn)方法。
RBAC模型(Role-Based Access Control,基于角色的權(quán)限管理模型)是目前各類軟件和信息系統(tǒng)實(shí)現(xiàn)訪問控制的主流模型。2004年,美國國際信息技術(shù)標(biāo)準(zhǔn)委員會(International Committee for Information Technology Standards)頒布了INCITS 359-2004,是目前最權(quán)威、最規(guī)范的RBAC參考模型。
INCITS 359-2004中的 RBAC參考模型由 4大構(gòu)件(Component)組成,分別是RBAC核心(Core RBAC)、層次RBAC (Hierarchical RBAC)、靜態(tài)職責(zé)分離關(guān)系(Static SoD relations)和動態(tài)職責(zé)分離關(guān)系(Dynamic SoD relations)。其中,核心RBAC 是RBAC參考模型最基本的模塊,其組成如圖1所示。
在核心RBAC中,主體(Subject)是使用系統(tǒng)功能的一個實(shí)體,可以是一個現(xiàn)實(shí)中的人,也可以是一個其他的計(jì)算機(jī)程序
圖1 核心RBAC元素示意圖
為了使RBAC模型能夠最大程度的適用于各類系統(tǒng),它本身是一個高度抽象的模型,其所采用的概念和術(shù)語也是業(yè)務(wù)領(lǐng)域里中立的。這是它的優(yōu)點(diǎn),但也導(dǎo)致了一般的業(yè)務(wù)人員難于理解和維護(hù)一個良好的權(quán)限系統(tǒng),特別是在企業(yè)信息系統(tǒng)領(lǐng)域。
企業(yè)信息系統(tǒng)為了適應(yīng)業(yè)務(wù)的需要,多具備復(fù)雜的功能;而為了滿足系統(tǒng)安全的要求,在系統(tǒng)實(shí)施時需要復(fù)雜的權(quán)限設(shè)計(jì)。更大的問題在于,隨著企業(yè)本身管理規(guī)則和流程的變化,以及企業(yè)中人員和崗位的不斷變化,權(quán)限和角色的設(shè)計(jì)也應(yīng)該隨之變化。而大多數(shù)企業(yè)管理人員并不具備這一能力,難以充分發(fā)揮訪問控制系統(tǒng)的作用,導(dǎo)致企業(yè)信息系統(tǒng)的安全性無法得到保障。
3.1設(shè)計(jì)思路
領(lǐng)域驅(qū)動設(shè)計(jì)(Domain-Driven Design)以業(yè)務(wù)領(lǐng)域?yàn)楹诵?,將領(lǐng)域模型作為系統(tǒng)分析和設(shè)計(jì)的工具。通過使用業(yè)務(wù)人員熟悉的領(lǐng)域概念和術(shù)語來構(gòu)建領(lǐng)域模型,業(yè)務(wù)人員、分析人員和設(shè)計(jì)人員可以使用領(lǐng)域模型來進(jìn)行有效的溝通,最大程度地保證用戶需求、設(shè)計(jì)和代碼實(shí)現(xiàn)之間的一致性。
如上一節(jié)所述,基于RBAC的訪問控制系統(tǒng)最大的缺陷來自于其業(yè)務(wù)領(lǐng)域的中立性。因此,本文采用領(lǐng)域設(shè)計(jì)思想,重新設(shè)計(jì)適用于企業(yè)信息系統(tǒng)的訪問控制模型。其核心思路是,從企業(yè)信息系統(tǒng)的主要用戶—企業(yè)管理者—熟悉的業(yè)務(wù)領(lǐng)域出發(fā),采用他們熟悉的領(lǐng)域概念,如崗位、職責(zé)等,來進(jìn)行訪問控制模型的設(shè)計(jì),從而降低使用的門檻,更好地發(fā)揮其安全控制的作用。
3.2基礎(chǔ)訪問控制領(lǐng)域模型
在企業(yè)信息系統(tǒng)中,用戶的權(quán)限本質(zhì)上來源于在企業(yè)中擔(dān)負(fù)的職責(zé)。因此,我們可以采用企業(yè)管理者熟悉的人力資源管理的相關(guān)概念來構(gòu)建訪問控制的領(lǐng)域模型,用簡化的UML類圖表示如圖2所示。
圖2 基礎(chǔ)訪問控制領(lǐng)域模型
在該模型中,最細(xì)粒度的訪問權(quán)限控制單位是權(quán)限(Permission),對應(yīng)著企業(yè)信息系統(tǒng)中的一個或多個操作,如訪問庫存管理中的入庫信息錄入表單等。職責(zé)(Responsibility)對應(yīng)著企業(yè)人力資源管理中的職責(zé)概念,是權(quán)限組織的基本單位,可包含多個權(quán)限。同樣的,崗位(Job)也對應(yīng)著是人力資源管理中的崗位概念,每個崗位包含多項(xiàng)職責(zé)。員工(Employee)通過其所處的崗位間接具有了相應(yīng)的職責(zé),從而獲得了相應(yīng)的權(quán)限。
在該模型中,部門(Department)僅僅是員工和崗位的一個屬性,對于訪問控制沒有直接的作用。
對于任何一個已經(jīng)實(shí)行了崗位管理的企業(yè),都可以直接將現(xiàn)實(shí)中的崗位設(shè)置映射為系統(tǒng)的訪問控制權(quán)限設(shè)置。與基于RBAC模型的系統(tǒng)相比,更易于理解和使用。
3.3帶分權(quán)和授權(quán)的訪問控制領(lǐng)域模型
上節(jié)中所述的基礎(chǔ)訪問控制領(lǐng)域模型初步解決了訪問控制系統(tǒng)不易理解和使用的問題。但對于組織結(jié)構(gòu)復(fù)雜、功能繁多的大中型企業(yè)信息系統(tǒng)而言,還需要進(jìn)一步改進(jìn),加入分權(quán)和授權(quán)的功能后,才能滿足要求,如圖3所示。
圖3 帶分權(quán)和授權(quán)的訪問控制領(lǐng)域模型
該模型的改進(jìn)主要有兩點(diǎn):
(1)分權(quán)功能:部門不再僅僅是員工和崗位的屬性,而是員工、崗位和職責(zé)的基本組織和管理單位。系統(tǒng)管理員按照現(xiàn)實(shí)企業(yè)中的人力資源設(shè)置,將職責(zé)、員工和崗位分配給各個部門,然后在部門內(nèi)部進(jìn)行分配和設(shè)置。企業(yè)可以根據(jù)實(shí)際需要,將部門內(nèi)部的崗位職責(zé)分配權(quán)限交由部門管理者負(fù)責(zé)。
(2)授權(quán)功能:部門的管理者可以根據(jù)實(shí)際需要,將某項(xiàng)職責(zé)臨時授予該部門的特定員工。
通過引入分權(quán)功能,企業(yè)可以讓部門自行管理部門內(nèi)部的系統(tǒng)使用權(quán)限,既方便了系統(tǒng)的使用,也減少了部門管理者的隱性權(quán)力丟失,降低了系統(tǒng)實(shí)施的阻力;通過引入授權(quán)功能,系統(tǒng)具備了更多的靈活性,可以更好地滿足企業(yè)的需求。
基于上節(jié)中所述的領(lǐng)域驅(qū)動的帶分權(quán)和授權(quán)的訪問控制領(lǐng)域模型,筆者使用Java語言實(shí)現(xiàn)了訪問控制系統(tǒng)權(quán)限設(shè)置的演示程序①https://github.com/royqh1979/PrivilegesEditorDemo。由于篇幅所限,本文未直接展示系統(tǒng)的相關(guān)操作界面,讀者可以直接到相關(guān)網(wǎng)址下載程序源代碼。
本文基于領(lǐng)域驅(qū)動設(shè)計(jì)思想,提出了一種帶分權(quán)和授權(quán)功能的企業(yè)信息系統(tǒng)訪問控制模型。該模型與傳統(tǒng)的基于RBAC的訪問控制模型相比,更容易被企業(yè)的管理者理解和掌握,從而真正得到良好的使用,起到應(yīng)有的安全作用。通過Java語言實(shí)現(xiàn)的演示程序,該模型的可行性得到了證明。
主要參考文獻(xiàn)
[1]韓道軍,高潔,等.訪問控制模型研究進(jìn)展[J].計(jì)算機(jī)科學(xué),2010 (11).
[2]陳琛,陳學(xué)廣,等.一種基于改進(jìn)RBAC模型的EIS權(quán)限管理框架的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用研究,2010(10):3855-3858.
[3]李鳳華,蘇铓,等.訪問控制模型研究進(jìn)展及發(fā)展趨勢[J].電子學(xué)報(bào),2012(4):805-813.
[4]強(qiáng)振平,何麗波,等.基于RBAC的復(fù)雜信息系統(tǒng)中訪問控制模型的設(shè)計(jì)[J].計(jì)算機(jī)科學(xué),2014(z1):429-432.
[5]馬曉普,李瑞軒,等.訪問控制中的角色工程[J].小型微型計(jì)算機(jī)系統(tǒng),2013(6):1301-1306.
[6]王忠,程磊.基于領(lǐng)域驅(qū)動設(shè)計(jì)的軟件開發(fā)[J].軟件導(dǎo)刊,2008 (2):37-39.
10.3969/j.issn.1673-0194.2016.17.037
TP315
A
1673-0194(2016)17-0077-03
2016-06-30
中央高?;究蒲袠I(yè)務(wù)費(fèi)專項(xiàng)資金暨北京林業(yè)大學(xué)科技創(chuàng)新計(jì)劃項(xiàng)目(No.BLX2012007);國家自然科學(xué)基金資助項(xiàng)目(71402006)。
瞿華(1979-),男,北京林業(yè)大學(xué)經(jīng)濟(jì)管理學(xué)院講師,博士,主要研究方向:信息系統(tǒng)與商務(wù)智能。等。每個角色(Role)對應(yīng)多個具體的權(quán)限(Permissions),每個用戶(User)可以具有多個不同的角色。當(dāng)某個主體需要執(zhí)行某項(xiàng)操作時,其首先被映射為系統(tǒng)中的特定用戶,然后根據(jù)該用戶具有的角色被分配相應(yīng)的權(quán)限。系統(tǒng)通過實(shí)時檢查主體被分配的權(quán)限來決定是否允許其進(jìn)行執(zhí)行的操作。