鄭建華+朱蓉+邱振國(guó)
摘要:為了實(shí)現(xiàn)羅定市特色農(nóng)產(chǎn)品信息服務(wù)平臺(tái)(SAPISP: Special Agriculture Product Information Service Platform)的權(quán)限管理,分析了RBAC96模型應(yīng)用的局限性,隨后提出C_RBAC模型,該模型通過(guò)建立權(quán)限的約束以及權(quán)限與用戶的弱關(guān)聯(lián),實(shí)現(xiàn)了權(quán)限的精細(xì)化和動(dòng)態(tài)化管理。并針對(duì)SAPISP系統(tǒng)特點(diǎn),該文設(shè)計(jì)了基于C_RBAC模型的權(quán)限管理數(shù)據(jù)庫(kù),該設(shè)計(jì)較好的滿足了SAPISP權(quán)限管理需求。
關(guān)鍵詞:權(quán)限管理;RBAC;C_RBAC;角色
中圖分類(lèi)號(hào):TP309.2 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2014)34-8101-03
當(dāng)今各行各業(yè)已經(jīng)進(jìn)入全面信息時(shí)代,農(nóng)業(yè)信息化成為中國(guó)的重大國(guó)策[1]。羅定市特色農(nóng)產(chǎn)品信息服務(wù)平臺(tái)(SAPISP: Special Agriculture Product Information Service Platform)是一個(gè)面向培訓(xùn)企業(yè)或者科研單位、農(nóng)業(yè)技術(shù)專(zhuān)家、農(nóng)產(chǎn)品生產(chǎn)企業(yè)、農(nóng)戶等多用戶的集農(nóng)產(chǎn)品生產(chǎn)、加工、流通、生產(chǎn)技術(shù)培訓(xùn)等多功能一體的綜合性信息服務(wù)平臺(tái)。該平臺(tái)的建設(shè)對(duì)于發(fā)展現(xiàn)代農(nóng)業(yè),優(yōu)化農(nóng)業(yè)產(chǎn)業(yè)結(jié)構(gòu),提升農(nóng)業(yè)整體素質(zhì),創(chuàng)新農(nóng)業(yè)經(jīng)營(yíng)模式,具有重大而積極的意義。
信息服務(wù)平臺(tái)的關(guān)鍵要素之一是信息安全,而訪問(wèn)控制技術(shù)是實(shí)現(xiàn)信息安全的重要基礎(chǔ),即只有經(jīng)過(guò)授權(quán)的用戶才能對(duì)特定數(shù)據(jù)進(jìn)行訪問(wèn)和使用,這樣才能有效的實(shí)現(xiàn)數(shù)據(jù)的保密性、完整性和可用性[2]。SAPISP實(shí)現(xiàn)4個(gè)服務(wù)子系統(tǒng),包括科技培訓(xùn)服務(wù)子系統(tǒng)、特色農(nóng)產(chǎn)品生產(chǎn)服務(wù)子系統(tǒng)、特色農(nóng)產(chǎn)品流通服務(wù)子系統(tǒng)、特色農(nóng)產(chǎn)品行業(yè)資訊子系統(tǒng),其參與成員眾多,不同人員的功能不一樣,因此設(shè)計(jì)合理的權(quán)限控制模型,保證信息安全是實(shí)現(xiàn)該平臺(tái)的重要前提。
基于角色的訪問(wèn)控制[3](RBAC:Role-Based Access Control)在上個(gè)世紀(jì)后期提出后得到廣泛應(yīng)用[4-6],其中最為經(jīng)典的是RBAC96[3]模型。在RBAC中,角色作為橋梁用于溝通用戶和資源,對(duì)用戶的訪問(wèn)授權(quán)轉(zhuǎn)變?yōu)閷?duì)角色的授權(quán),然后再將用戶和特定的角色聯(lián)系起來(lái),從而實(shí)現(xiàn)對(duì)用戶的權(quán)限管理。然而本特色農(nóng)產(chǎn)品信息服務(wù)平臺(tái)的類(lèi)型多種多樣,組織結(jié)構(gòu)、人員的組成和職能分配較為復(fù)雜,這樣RBAC96模型的功能和效率就存在一定的局限性。很多研究者從權(quán)限的繼承性[7]、時(shí)間約束[8; 9]、授權(quán)方式[10]等方面對(duì)RBAC96做了改進(jìn),但并不完全適用SAPISP權(quán)限管理要求,且操作較為復(fù)雜,該文通過(guò)對(duì)權(quán)限添加約束和建立權(quán)限與用戶的弱聯(lián)系來(lái)改進(jìn)RBAC96該模型,新模型簡(jiǎn)單、易理解且可以較便捷的實(shí)現(xiàn)權(quán)限的精細(xì)和動(dòng)態(tài)管理,較好的滿足本系統(tǒng)設(shè)計(jì)要求,隨后本文設(shè)計(jì)基于新模型的數(shù)據(jù)庫(kù)表結(jié)構(gòu)。
1 RBAC模型在SAPISP應(yīng)用局限性分析
本文以羅定市特色農(nóng)產(chǎn)品信息服務(wù)平臺(tái)建設(shè)為目標(biāo),該平臺(tái)主要實(shí)現(xiàn)4個(gè)服務(wù)子系統(tǒng)的集成,包括科技培訓(xùn)服務(wù)子系統(tǒng)、特色農(nóng)產(chǎn)品生產(chǎn)服務(wù)子系統(tǒng)、特色農(nóng)產(chǎn)品流通服務(wù)子系統(tǒng)、特色農(nóng)產(chǎn)品行業(yè)資訊子系統(tǒng)。這四個(gè)子服務(wù)系統(tǒng)的利益相關(guān)者有相同也有不同,除此之外還涉及到系統(tǒng)后臺(tái)管理人員,而這些利益相關(guān)者將是后期角色劃分的重要依據(jù)。表 1列出了本平臺(tái)涉及到的角色。
在以上平臺(tái)建設(shè)中,由于涉及到的利益相關(guān)者眾多,各自對(duì)功能的訴求也不一樣,在權(quán)限管理方面存在以下幾種特殊情況:
第一:同一個(gè)利益相關(guān)者可能與多個(gè)子系統(tǒng)相關(guān)聯(lián),而且有些子系統(tǒng)之間是相互關(guān)聯(lián)的,比如農(nóng)產(chǎn)品生產(chǎn)企業(yè)可能同時(shí)能參與到生產(chǎn)、流通、咨詢子系統(tǒng);
第二:對(duì)于一般農(nóng)戶或者訪問(wèn)者在初期使用平臺(tái)的時(shí)候,由于對(duì)平臺(tái)不了解,但是又很想用里面的功能,因此需要對(duì)該類(lèi)型用戶開(kāi)通部分功能,但是這種功能應(yīng)該有時(shí)限要求,比如24小時(shí)之后功能失效;
第三:比如在科技培訓(xùn)子系統(tǒng)中,對(duì)于開(kāi)設(shè)培訓(xùn)課的企業(yè),在起初應(yīng)該是具有全部功能權(quán)限,但是如果在實(shí)施過(guò)程中,管理員發(fā)現(xiàn)該培訓(xùn)企業(yè)的培訓(xùn)質(zhì)量較差,可能限制其繼續(xù)開(kāi)展培訓(xùn),而還允許該企業(yè)進(jìn)入該子系統(tǒng)去查看所有的信息,因此需要?jiǎng)討B(tài)的刪減該培訓(xùn)企業(yè)的相關(guān)權(quán)限。
綜合以上三點(diǎn),SAPISP系統(tǒng)要求用戶的權(quán)限在使用過(guò)程中能夠?qū)崿F(xiàn)精細(xì)化和動(dòng)態(tài)配置管理,即擁有同樣角色的用戶,可能權(quán)限不一樣,且該權(quán)限能夠被動(dòng)態(tài)管理;另外要保證角色的穩(wěn)定性,即用戶的角色不能隨意的添加或者減少。
RBAC96模型中使用了角色作為橋梁,通過(guò)對(duì)用戶的訪問(wèn)授權(quán)轉(zhuǎn)變?yōu)閷?duì)角色的授權(quán),角色擁有權(quán)限的變化可以導(dǎo)致用戶的權(quán)限發(fā)生變化,然而這種模式特別強(qiáng)調(diào)用戶的角色的依賴性,很難實(shí)現(xiàn)權(quán)限的精細(xì)化和動(dòng)態(tài)管理。
圖 1和圖 2展示了一個(gè)用戶權(quán)限變更的實(shí)例,圖 1中表示用戶[u1]的角色是[r1,r2],而用戶[u2]的角色是[r2,r3],由于不同的角色擁有不同的權(quán)限,使得用戶[u1]的權(quán)限(可以訪問(wèn)的資源)是[ob1,ob2,ob3,ob5],,而用戶[u2]的權(quán)限(可以訪問(wèn)的資源)是[ob2,ob3,ob4,ob6]。即兩個(gè)用戶同時(shí)可以訪問(wèn)資源[ob2]和[ob3]。如果此時(shí)希望刪除用戶[u1]對(duì)[ob2]的訪問(wèn)權(quán)限,在不影響用戶[u2]的使用情況下,RBAC96處理方法比較麻煩,此時(shí)只能先刪除[u1]與角色[r2]關(guān)聯(lián),然后建立一個(gè)新的角色[r4],同時(shí)將[ob3]的訪問(wèn)權(quán)限賦給[r4],然后在建立[u1]與角色[r4]的關(guān)聯(lián),如圖 2所示。顯然這樣做的操作過(guò)程麻煩,更重要的是需要額外創(chuàng)造一個(gè)新角色,這個(gè)新的角色與之前的某個(gè)角色存在相同之處。另一方面在實(shí)際生產(chǎn)環(huán)節(jié)中,一個(gè)系統(tǒng)的角色相對(duì)而言應(yīng)該是固定的,其存在類(lèi)似于企業(yè)的組織和部門(mén),這種情況下不方便隨意增加角色,因此RBAC96模型難以直接應(yīng)用于在本系統(tǒng)的權(quán)限管理應(yīng)用中。
2 C_RBAC模型設(shè)計(jì)endprint
RBAC96模型的包括5個(gè)基本要素:使用者、角色、資源對(duì)象、操作、權(quán)限,其基本思想是將系統(tǒng)權(quán)限和用戶解耦,在用戶和權(quán)限之間加入角色,不再直接將權(quán)限與用戶相連,而是通過(guò)將權(quán)限賦予角色,再將角色分配給用戶這一過(guò)程來(lái)對(duì)用戶進(jìn)行訪問(wèn)控制,但是這不便于實(shí)現(xiàn)權(quán)限的精細(xì)管理和動(dòng)態(tài)管理。為此本文為權(quán)限增加新的約束,以滿足權(quán)限精細(xì)管理和動(dòng)態(tài)管理要求,并命名為C_RBAC模型,其結(jié)構(gòu)示意如圖 3所示:
與RBAC96模型一致的是角色作為用戶與權(quán)限之間的橋梁,用戶被賦予角色,而角色賦予權(quán)限,因此該用戶獲得相應(yīng)的權(quán)限。C_RBAC與RBAC96模型不同的是兩點(diǎn):第一點(diǎn)是權(quán)限的構(gòu)成,在RBAC96模型中,權(quán)限主要包括資源和操作,而在C_RBAC模型中,權(quán)限還包括約束,該約束可以是時(shí)間約束或者其他操作約束。第二點(diǎn)是C_RBAC模型通過(guò)約束建立了權(quán)限與用戶之間的弱聯(lián)系。
由于約束的構(gòu)建以及權(quán)限與用戶的弱關(guān)聯(lián)的存在,因此每次用戶的訪問(wèn)“會(huì)話”可以用一個(gè)七元組表示。[sessionu=(u,r,ua,pa,sst,qoc)],其中[u]表示用戶,[r]表示角色,[ua]是用戶角色的映射關(guān)系,[pa]表示權(quán)限角色的映射關(guān)系,[sst]表示用戶會(huì)話建立的時(shí)間,[qoc]表示權(quán)限的約束。正是由于[qoc]的存在,因此在C_RBAC模型中,兩個(gè)用戶可能雖然擁有相同的角色,但是二者的權(quán)限不完全一致。
在第二節(jié)的權(quán)限變革實(shí)例中,如果采用C_RBAC模型,只需變更對(duì)應(yīng)資源的約束即可實(shí)現(xiàn)用戶的權(quán)限變更。圖 4中Cons中的1表示有效,0表示無(wú)效,因此在C_RBAC權(quán)限分配模型中,如果如果需要?jiǎng)h除用戶[u1]對(duì)[ob2]的訪問(wèn)權(quán)限,只需要將用戶[u1]的Cons中[ob2]對(duì)應(yīng)的約束改為0即可,在無(wú)需增加角色的情況下,靈活的實(shí)現(xiàn)了權(quán)限的動(dòng)態(tài)管理。需要說(shuō)明的是Cons的約束類(lèi)型可以是多樣的,本實(shí)例主要是為了演示訪問(wèn)對(duì)象的變更管理。
3 基于C_RBAC模型的SAPISP系統(tǒng)權(quán)限管理數(shù)據(jù)庫(kù)設(shè)計(jì)
為實(shí)現(xiàn)SAPISP系統(tǒng)的權(quán)限管理,該文采用頁(yè)面控制權(quán)限的方式,即不再區(qū)分?jǐn)?shù)據(jù)的增刪改查操作,而是通過(guò)控制頁(yè)面的訪問(wèn)實(shí)現(xiàn)角色的權(quán)限控制[11]。另一方面,每個(gè)系統(tǒng)都是多個(gè)頁(yè)面之間相互關(guān)聯(lián)構(gòu)成一個(gè)功能點(diǎn),因此為了方便管理系統(tǒng)功能,本設(shè)計(jì)定義功能點(diǎn)概念,功能點(diǎn)表示包括多個(gè)操作頁(yè)面以便完成某個(gè)確定的系統(tǒng)功能。
為了滿足SAPISP權(quán)限管理系統(tǒng)的特殊要求,基于C_RBAC模型SAPISP的權(quán)限管理系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)的關(guān)鍵是理順用戶、功能點(diǎn)和約束之間的關(guān)系,在C_RBAC模型中功能點(diǎn)是由角色限定,而用戶則屬于某個(gè)角色,從而使得用戶擁有某個(gè)功能點(diǎn),但是該用戶的功能點(diǎn)在使用過(guò)程中可以動(dòng)態(tài)調(diào)整,因此需要用約束條件去調(diào)整,該文用三元關(guān)系來(lái)表示這是三個(gè)實(shí)體之間的關(guān)系,如圖 5所示。
圖 5中所蘊(yùn)含的的語(yǔ)義是:
1) 一個(gè)用戶可以擁有多項(xiàng)功能;
2) 一個(gè)用戶的某一項(xiàng)功能可能有多個(gè)約束(是屬于多個(gè)用戶的);
3) 每個(gè)功能對(duì)應(yīng)的約束只屬于一個(gè)用戶;
有了以上的三元關(guān)系的基礎(chǔ),本系統(tǒng)設(shè)計(jì)的權(quán)限管理系統(tǒng)如圖 6所示的9個(gè)表。
上圖中一共包括9張表,表中蘊(yùn)含以下語(yǔ)義:
語(yǔ)義1:一個(gè)用戶可以擁有多個(gè)角色
語(yǔ)義2:一個(gè)角色可以擁有多個(gè)功能點(diǎn)
語(yǔ)義3:一個(gè)功能點(diǎn)可以分屬多個(gè)角色
語(yǔ)義4:一個(gè)功能點(diǎn)可以擁有多個(gè)資源
語(yǔ)義5:功能點(diǎn)和資源的訪問(wèn)能力表示系統(tǒng)權(quán)限
圖中的user(用戶表)、role(角色表),user_role(用戶角色關(guān)聯(lián)表)、function(功能點(diǎn)表),role _function(角色功能點(diǎn)關(guān)聯(lián)表)、resource(資源表),function_resoucre (功能點(diǎn)資源關(guān)聯(lián)表)表示了這種語(yǔ)義蘊(yùn)含。
基于以上語(yǔ)義,可以得到一個(gè)用戶的所有權(quán)限及可以訪問(wèn)那些資源,由于在本設(shè)計(jì)中用戶和角色也是采用多對(duì)多關(guān)系,其權(quán)限的實(shí)現(xiàn)采用了白名單設(shè)計(jì)方法,及通過(guò)并集的方式取得用戶的最終權(quán)限,形式化表達(dá)如下:
設(shè)有用戶[uA],假設(shè)[r(uA)={r1,r3}]
假設(shè)[p(r1)={p1,p2,p3}],[p(r3)={p3,p4,p5}]
則有[p(uA)={p1,p2,p3,p4,p5}]
以上的語(yǔ)義1-語(yǔ)義5構(gòu)成了標(biāo)準(zhǔn)的RBAC96模型的結(jié)構(gòu)。
而user(用戶表)、function(功能點(diǎn)表)、constrains(約束表)、own_functions(用戶_功能點(diǎn)_約束)關(guān)聯(lián)關(guān)系表則表示了用戶、功能、約束的三元關(guān)系,其蘊(yùn)含的語(yǔ)義則表示了用戶可以通過(guò)約束設(shè)置專(zhuān)有權(quán)限,實(shí)現(xiàn)如前文所描述的用戶權(quán)限的精細(xì)和動(dòng)態(tài)管理功能。以上兩方面的語(yǔ)義綜合形成本文提出的C_RBAC模型。
基于以上數(shù)據(jù)庫(kù)結(jié)構(gòu)的設(shè)計(jì),可以便捷的實(shí)現(xiàn)基于C_RBAC模型的權(quán)限管理系統(tǒng)。
4 結(jié)束語(yǔ)
權(quán)限管理是保障系統(tǒng)信息安全的重要基礎(chǔ),雖然傳統(tǒng)的訪問(wèn)控制技術(shù)方面如RBAC模型取得了廣泛的應(yīng)用,但是其在權(quán)限的精細(xì)化和動(dòng)態(tài)管理方面存在一定不足。結(jié)合羅定市特色農(nóng)產(chǎn)品信息服務(wù)平臺(tái)建設(shè)的需求,該文提出通過(guò)添加約束和建立權(quán)限和用戶的弱關(guān)聯(lián)方式來(lái)改進(jìn)RBAC96模型,形成了C_RBAC模型。并針對(duì)羅定市特色農(nóng)產(chǎn)品信息服務(wù)平臺(tái)的實(shí)際應(yīng)用,設(shè)計(jì)了基于C_RBAC模型的權(quán)限管理系統(tǒng)數(shù)據(jù)庫(kù)表,具有較強(qiáng)的實(shí)用性,較好滿足了系統(tǒng)的需求。
參考文獻(xiàn):
[1] 陳威,郭書(shū)普.中國(guó)農(nóng)業(yè)信息化技術(shù)發(fā)展現(xiàn)狀及存在的問(wèn)題[J].農(nóng)業(yè)工程學(xué)報(bào),2013,29(22):196-208.
[2] 牛奕麟.基于RBAC模型的醫(yī)療體檢系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)[D].大連:大連理工大學(xué),2013.
[3] Sanhu R S,Coyne E J,F(xiàn)einstein H L.Role_Based Access Control Models[J].IEEE Computer,1996,29(2):38-47.
[4] 曹勇剛,金茂忠,劉超.CMS中RBAC模型的改造和應(yīng)用[J].北京航空航天大學(xué)學(xué)報(bào),2005,31(10):108-113.
[5] 揭安全,化志章,薛錦云,等.基于RBAC的高校辦公自動(dòng)化系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)工程與設(shè)計(jì),2009,30 (11):2800-2802,2805.
[6] 信科,楊峰,楊光旭,等.基于RBAC權(quán)限管理系統(tǒng)的優(yōu)化設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2011,21 (7):172-174.
[7] 李鍵,陳杰.RBAC模型權(quán)限管理中三種新的角色繼承機(jī)制和授權(quán)策略[J].四川大學(xué)學(xué)報(bào):自然科學(xué)版,2007,39(3):521-524.
[8] 向華萍,付智輝,陳紅麗.具有時(shí)間約束的動(dòng)態(tài)角色的訪問(wèn)控制策略[J].河北科技大學(xué)學(xué)報(bào),2010,31(6):558-563.
[9] 張冬雯,裴興,仇計(jì)清.帶時(shí)間約束的基于任務(wù)角色委托模型[J].計(jì)算機(jī)應(yīng)用研究,2009,26(10):3906-3910.
[10] 邵奇峰,韓玉民,鄭秋生.一種混合授權(quán)的RBAC模型及其UML建模[J].武漢大學(xué)學(xué)報(bào):理學(xué)版,2014,39(5):419-423.
[11] 龐希愚,王成,仝春玲.基于角色-功能的Web應(yīng)用系統(tǒng)訪問(wèn)控制方法[J].計(jì)算機(jī)工程,2014,40 (5):144-148.endprint
RBAC96模型的包括5個(gè)基本要素:使用者、角色、資源對(duì)象、操作、權(quán)限,其基本思想是將系統(tǒng)權(quán)限和用戶解耦,在用戶和權(quán)限之間加入角色,不再直接將權(quán)限與用戶相連,而是通過(guò)將權(quán)限賦予角色,再將角色分配給用戶這一過(guò)程來(lái)對(duì)用戶進(jìn)行訪問(wèn)控制,但是這不便于實(shí)現(xiàn)權(quán)限的精細(xì)管理和動(dòng)態(tài)管理。為此本文為權(quán)限增加新的約束,以滿足權(quán)限精細(xì)管理和動(dòng)態(tài)管理要求,并命名為C_RBAC模型,其結(jié)構(gòu)示意如圖 3所示:
與RBAC96模型一致的是角色作為用戶與權(quán)限之間的橋梁,用戶被賦予角色,而角色賦予權(quán)限,因此該用戶獲得相應(yīng)的權(quán)限。C_RBAC與RBAC96模型不同的是兩點(diǎn):第一點(diǎn)是權(quán)限的構(gòu)成,在RBAC96模型中,權(quán)限主要包括資源和操作,而在C_RBAC模型中,權(quán)限還包括約束,該約束可以是時(shí)間約束或者其他操作約束。第二點(diǎn)是C_RBAC模型通過(guò)約束建立了權(quán)限與用戶之間的弱聯(lián)系。
由于約束的構(gòu)建以及權(quán)限與用戶的弱關(guān)聯(lián)的存在,因此每次用戶的訪問(wèn)“會(huì)話”可以用一個(gè)七元組表示。[sessionu=(u,r,ua,pa,sst,qoc)],其中[u]表示用戶,[r]表示角色,[ua]是用戶角色的映射關(guān)系,[pa]表示權(quán)限角色的映射關(guān)系,[sst]表示用戶會(huì)話建立的時(shí)間,[qoc]表示權(quán)限的約束。正是由于[qoc]的存在,因此在C_RBAC模型中,兩個(gè)用戶可能雖然擁有相同的角色,但是二者的權(quán)限不完全一致。
在第二節(jié)的權(quán)限變革實(shí)例中,如果采用C_RBAC模型,只需變更對(duì)應(yīng)資源的約束即可實(shí)現(xiàn)用戶的權(quán)限變更。圖 4中Cons中的1表示有效,0表示無(wú)效,因此在C_RBAC權(quán)限分配模型中,如果如果需要?jiǎng)h除用戶[u1]對(duì)[ob2]的訪問(wèn)權(quán)限,只需要將用戶[u1]的Cons中[ob2]對(duì)應(yīng)的約束改為0即可,在無(wú)需增加角色的情況下,靈活的實(shí)現(xiàn)了權(quán)限的動(dòng)態(tài)管理。需要說(shuō)明的是Cons的約束類(lèi)型可以是多樣的,本實(shí)例主要是為了演示訪問(wèn)對(duì)象的變更管理。
3 基于C_RBAC模型的SAPISP系統(tǒng)權(quán)限管理數(shù)據(jù)庫(kù)設(shè)計(jì)
為實(shí)現(xiàn)SAPISP系統(tǒng)的權(quán)限管理,該文采用頁(yè)面控制權(quán)限的方式,即不再區(qū)分?jǐn)?shù)據(jù)的增刪改查操作,而是通過(guò)控制頁(yè)面的訪問(wèn)實(shí)現(xiàn)角色的權(quán)限控制[11]。另一方面,每個(gè)系統(tǒng)都是多個(gè)頁(yè)面之間相互關(guān)聯(lián)構(gòu)成一個(gè)功能點(diǎn),因此為了方便管理系統(tǒng)功能,本設(shè)計(jì)定義功能點(diǎn)概念,功能點(diǎn)表示包括多個(gè)操作頁(yè)面以便完成某個(gè)確定的系統(tǒng)功能。
為了滿足SAPISP權(quán)限管理系統(tǒng)的特殊要求,基于C_RBAC模型SAPISP的權(quán)限管理系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)的關(guān)鍵是理順用戶、功能點(diǎn)和約束之間的關(guān)系,在C_RBAC模型中功能點(diǎn)是由角色限定,而用戶則屬于某個(gè)角色,從而使得用戶擁有某個(gè)功能點(diǎn),但是該用戶的功能點(diǎn)在使用過(guò)程中可以動(dòng)態(tài)調(diào)整,因此需要用約束條件去調(diào)整,該文用三元關(guān)系來(lái)表示這是三個(gè)實(shí)體之間的關(guān)系,如圖 5所示。
圖 5中所蘊(yùn)含的的語(yǔ)義是:
1) 一個(gè)用戶可以擁有多項(xiàng)功能;
2) 一個(gè)用戶的某一項(xiàng)功能可能有多個(gè)約束(是屬于多個(gè)用戶的);
3) 每個(gè)功能對(duì)應(yīng)的約束只屬于一個(gè)用戶;
有了以上的三元關(guān)系的基礎(chǔ),本系統(tǒng)設(shè)計(jì)的權(quán)限管理系統(tǒng)如圖 6所示的9個(gè)表。
上圖中一共包括9張表,表中蘊(yùn)含以下語(yǔ)義:
語(yǔ)義1:一個(gè)用戶可以擁有多個(gè)角色
語(yǔ)義2:一個(gè)角色可以擁有多個(gè)功能點(diǎn)
語(yǔ)義3:一個(gè)功能點(diǎn)可以分屬多個(gè)角色
語(yǔ)義4:一個(gè)功能點(diǎn)可以擁有多個(gè)資源
語(yǔ)義5:功能點(diǎn)和資源的訪問(wèn)能力表示系統(tǒng)權(quán)限
圖中的user(用戶表)、role(角色表),user_role(用戶角色關(guān)聯(lián)表)、function(功能點(diǎn)表),role _function(角色功能點(diǎn)關(guān)聯(lián)表)、resource(資源表),function_resoucre (功能點(diǎn)資源關(guān)聯(lián)表)表示了這種語(yǔ)義蘊(yùn)含。
基于以上語(yǔ)義,可以得到一個(gè)用戶的所有權(quán)限及可以訪問(wèn)那些資源,由于在本設(shè)計(jì)中用戶和角色也是采用多對(duì)多關(guān)系,其權(quán)限的實(shí)現(xiàn)采用了白名單設(shè)計(jì)方法,及通過(guò)并集的方式取得用戶的最終權(quán)限,形式化表達(dá)如下:
設(shè)有用戶[uA],假設(shè)[r(uA)={r1,r3}]
假設(shè)[p(r1)={p1,p2,p3}],[p(r3)={p3,p4,p5}]
則有[p(uA)={p1,p2,p3,p4,p5}]
以上的語(yǔ)義1-語(yǔ)義5構(gòu)成了標(biāo)準(zhǔn)的RBAC96模型的結(jié)構(gòu)。
而user(用戶表)、function(功能點(diǎn)表)、constrains(約束表)、own_functions(用戶_功能點(diǎn)_約束)關(guān)聯(lián)關(guān)系表則表示了用戶、功能、約束的三元關(guān)系,其蘊(yùn)含的語(yǔ)義則表示了用戶可以通過(guò)約束設(shè)置專(zhuān)有權(quán)限,實(shí)現(xiàn)如前文所描述的用戶權(quán)限的精細(xì)和動(dòng)態(tài)管理功能。以上兩方面的語(yǔ)義綜合形成本文提出的C_RBAC模型。
基于以上數(shù)據(jù)庫(kù)結(jié)構(gòu)的設(shè)計(jì),可以便捷的實(shí)現(xiàn)基于C_RBAC模型的權(quán)限管理系統(tǒng)。
4 結(jié)束語(yǔ)
權(quán)限管理是保障系統(tǒng)信息安全的重要基礎(chǔ),雖然傳統(tǒng)的訪問(wèn)控制技術(shù)方面如RBAC模型取得了廣泛的應(yīng)用,但是其在權(quán)限的精細(xì)化和動(dòng)態(tài)管理方面存在一定不足。結(jié)合羅定市特色農(nóng)產(chǎn)品信息服務(wù)平臺(tái)建設(shè)的需求,該文提出通過(guò)添加約束和建立權(quán)限和用戶的弱關(guān)聯(lián)方式來(lái)改進(jìn)RBAC96模型,形成了C_RBAC模型。并針對(duì)羅定市特色農(nóng)產(chǎn)品信息服務(wù)平臺(tái)的實(shí)際應(yīng)用,設(shè)計(jì)了基于C_RBAC模型的權(quán)限管理系統(tǒng)數(shù)據(jù)庫(kù)表,具有較強(qiáng)的實(shí)用性,較好滿足了系統(tǒng)的需求。
參考文獻(xiàn):
[1] 陳威,郭書(shū)普.中國(guó)農(nóng)業(yè)信息化技術(shù)發(fā)展現(xiàn)狀及存在的問(wèn)題[J].農(nóng)業(yè)工程學(xué)報(bào),2013,29(22):196-208.
[2] 牛奕麟.基于RBAC模型的醫(yī)療體檢系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)[D].大連:大連理工大學(xué),2013.
[3] Sanhu R S,Coyne E J,F(xiàn)einstein H L.Role_Based Access Control Models[J].IEEE Computer,1996,29(2):38-47.
[4] 曹勇剛,金茂忠,劉超.CMS中RBAC模型的改造和應(yīng)用[J].北京航空航天大學(xué)學(xué)報(bào),2005,31(10):108-113.
[5] 揭安全,化志章,薛錦云,等.基于RBAC的高校辦公自動(dòng)化系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)工程與設(shè)計(jì),2009,30 (11):2800-2802,2805.
[6] 信科,楊峰,楊光旭,等.基于RBAC權(quán)限管理系統(tǒng)的優(yōu)化設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2011,21 (7):172-174.
[7] 李鍵,陳杰.RBAC模型權(quán)限管理中三種新的角色繼承機(jī)制和授權(quán)策略[J].四川大學(xué)學(xué)報(bào):自然科學(xué)版,2007,39(3):521-524.
[8] 向華萍,付智輝,陳紅麗.具有時(shí)間約束的動(dòng)態(tài)角色的訪問(wèn)控制策略[J].河北科技大學(xué)學(xué)報(bào),2010,31(6):558-563.
[9] 張冬雯,裴興,仇計(jì)清.帶時(shí)間約束的基于任務(wù)角色委托模型[J].計(jì)算機(jī)應(yīng)用研究,2009,26(10):3906-3910.
[10] 邵奇峰,韓玉民,鄭秋生.一種混合授權(quán)的RBAC模型及其UML建模[J].武漢大學(xué)學(xué)報(bào):理學(xué)版,2014,39(5):419-423.
[11] 龐希愚,王成,仝春玲.基于角色-功能的Web應(yīng)用系統(tǒng)訪問(wèn)控制方法[J].計(jì)算機(jī)工程,2014,40 (5):144-148.endprint
RBAC96模型的包括5個(gè)基本要素:使用者、角色、資源對(duì)象、操作、權(quán)限,其基本思想是將系統(tǒng)權(quán)限和用戶解耦,在用戶和權(quán)限之間加入角色,不再直接將權(quán)限與用戶相連,而是通過(guò)將權(quán)限賦予角色,再將角色分配給用戶這一過(guò)程來(lái)對(duì)用戶進(jìn)行訪問(wèn)控制,但是這不便于實(shí)現(xiàn)權(quán)限的精細(xì)管理和動(dòng)態(tài)管理。為此本文為權(quán)限增加新的約束,以滿足權(quán)限精細(xì)管理和動(dòng)態(tài)管理要求,并命名為C_RBAC模型,其結(jié)構(gòu)示意如圖 3所示:
與RBAC96模型一致的是角色作為用戶與權(quán)限之間的橋梁,用戶被賦予角色,而角色賦予權(quán)限,因此該用戶獲得相應(yīng)的權(quán)限。C_RBAC與RBAC96模型不同的是兩點(diǎn):第一點(diǎn)是權(quán)限的構(gòu)成,在RBAC96模型中,權(quán)限主要包括資源和操作,而在C_RBAC模型中,權(quán)限還包括約束,該約束可以是時(shí)間約束或者其他操作約束。第二點(diǎn)是C_RBAC模型通過(guò)約束建立了權(quán)限與用戶之間的弱聯(lián)系。
由于約束的構(gòu)建以及權(quán)限與用戶的弱關(guān)聯(lián)的存在,因此每次用戶的訪問(wèn)“會(huì)話”可以用一個(gè)七元組表示。[sessionu=(u,r,ua,pa,sst,qoc)],其中[u]表示用戶,[r]表示角色,[ua]是用戶角色的映射關(guān)系,[pa]表示權(quán)限角色的映射關(guān)系,[sst]表示用戶會(huì)話建立的時(shí)間,[qoc]表示權(quán)限的約束。正是由于[qoc]的存在,因此在C_RBAC模型中,兩個(gè)用戶可能雖然擁有相同的角色,但是二者的權(quán)限不完全一致。
在第二節(jié)的權(quán)限變革實(shí)例中,如果采用C_RBAC模型,只需變更對(duì)應(yīng)資源的約束即可實(shí)現(xiàn)用戶的權(quán)限變更。圖 4中Cons中的1表示有效,0表示無(wú)效,因此在C_RBAC權(quán)限分配模型中,如果如果需要?jiǎng)h除用戶[u1]對(duì)[ob2]的訪問(wèn)權(quán)限,只需要將用戶[u1]的Cons中[ob2]對(duì)應(yīng)的約束改為0即可,在無(wú)需增加角色的情況下,靈活的實(shí)現(xiàn)了權(quán)限的動(dòng)態(tài)管理。需要說(shuō)明的是Cons的約束類(lèi)型可以是多樣的,本實(shí)例主要是為了演示訪問(wèn)對(duì)象的變更管理。
3 基于C_RBAC模型的SAPISP系統(tǒng)權(quán)限管理數(shù)據(jù)庫(kù)設(shè)計(jì)
為實(shí)現(xiàn)SAPISP系統(tǒng)的權(quán)限管理,該文采用頁(yè)面控制權(quán)限的方式,即不再區(qū)分?jǐn)?shù)據(jù)的增刪改查操作,而是通過(guò)控制頁(yè)面的訪問(wèn)實(shí)現(xiàn)角色的權(quán)限控制[11]。另一方面,每個(gè)系統(tǒng)都是多個(gè)頁(yè)面之間相互關(guān)聯(lián)構(gòu)成一個(gè)功能點(diǎn),因此為了方便管理系統(tǒng)功能,本設(shè)計(jì)定義功能點(diǎn)概念,功能點(diǎn)表示包括多個(gè)操作頁(yè)面以便完成某個(gè)確定的系統(tǒng)功能。
為了滿足SAPISP權(quán)限管理系統(tǒng)的特殊要求,基于C_RBAC模型SAPISP的權(quán)限管理系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)的關(guān)鍵是理順用戶、功能點(diǎn)和約束之間的關(guān)系,在C_RBAC模型中功能點(diǎn)是由角色限定,而用戶則屬于某個(gè)角色,從而使得用戶擁有某個(gè)功能點(diǎn),但是該用戶的功能點(diǎn)在使用過(guò)程中可以動(dòng)態(tài)調(diào)整,因此需要用約束條件去調(diào)整,該文用三元關(guān)系來(lái)表示這是三個(gè)實(shí)體之間的關(guān)系,如圖 5所示。
圖 5中所蘊(yùn)含的的語(yǔ)義是:
1) 一個(gè)用戶可以擁有多項(xiàng)功能;
2) 一個(gè)用戶的某一項(xiàng)功能可能有多個(gè)約束(是屬于多個(gè)用戶的);
3) 每個(gè)功能對(duì)應(yīng)的約束只屬于一個(gè)用戶;
有了以上的三元關(guān)系的基礎(chǔ),本系統(tǒng)設(shè)計(jì)的權(quán)限管理系統(tǒng)如圖 6所示的9個(gè)表。
上圖中一共包括9張表,表中蘊(yùn)含以下語(yǔ)義:
語(yǔ)義1:一個(gè)用戶可以擁有多個(gè)角色
語(yǔ)義2:一個(gè)角色可以擁有多個(gè)功能點(diǎn)
語(yǔ)義3:一個(gè)功能點(diǎn)可以分屬多個(gè)角色
語(yǔ)義4:一個(gè)功能點(diǎn)可以擁有多個(gè)資源
語(yǔ)義5:功能點(diǎn)和資源的訪問(wèn)能力表示系統(tǒng)權(quán)限
圖中的user(用戶表)、role(角色表),user_role(用戶角色關(guān)聯(lián)表)、function(功能點(diǎn)表),role _function(角色功能點(diǎn)關(guān)聯(lián)表)、resource(資源表),function_resoucre (功能點(diǎn)資源關(guān)聯(lián)表)表示了這種語(yǔ)義蘊(yùn)含。
基于以上語(yǔ)義,可以得到一個(gè)用戶的所有權(quán)限及可以訪問(wèn)那些資源,由于在本設(shè)計(jì)中用戶和角色也是采用多對(duì)多關(guān)系,其權(quán)限的實(shí)現(xiàn)采用了白名單設(shè)計(jì)方法,及通過(guò)并集的方式取得用戶的最終權(quán)限,形式化表達(dá)如下:
設(shè)有用戶[uA],假設(shè)[r(uA)={r1,r3}]
假設(shè)[p(r1)={p1,p2,p3}],[p(r3)={p3,p4,p5}]
則有[p(uA)={p1,p2,p3,p4,p5}]
以上的語(yǔ)義1-語(yǔ)義5構(gòu)成了標(biāo)準(zhǔn)的RBAC96模型的結(jié)構(gòu)。
而user(用戶表)、function(功能點(diǎn)表)、constrains(約束表)、own_functions(用戶_功能點(diǎn)_約束)關(guān)聯(lián)關(guān)系表則表示了用戶、功能、約束的三元關(guān)系,其蘊(yùn)含的語(yǔ)義則表示了用戶可以通過(guò)約束設(shè)置專(zhuān)有權(quán)限,實(shí)現(xiàn)如前文所描述的用戶權(quán)限的精細(xì)和動(dòng)態(tài)管理功能。以上兩方面的語(yǔ)義綜合形成本文提出的C_RBAC模型。
基于以上數(shù)據(jù)庫(kù)結(jié)構(gòu)的設(shè)計(jì),可以便捷的實(shí)現(xiàn)基于C_RBAC模型的權(quán)限管理系統(tǒng)。
4 結(jié)束語(yǔ)
權(quán)限管理是保障系統(tǒng)信息安全的重要基礎(chǔ),雖然傳統(tǒng)的訪問(wèn)控制技術(shù)方面如RBAC模型取得了廣泛的應(yīng)用,但是其在權(quán)限的精細(xì)化和動(dòng)態(tài)管理方面存在一定不足。結(jié)合羅定市特色農(nóng)產(chǎn)品信息服務(wù)平臺(tái)建設(shè)的需求,該文提出通過(guò)添加約束和建立權(quán)限和用戶的弱關(guān)聯(lián)方式來(lái)改進(jìn)RBAC96模型,形成了C_RBAC模型。并針對(duì)羅定市特色農(nóng)產(chǎn)品信息服務(wù)平臺(tái)的實(shí)際應(yīng)用,設(shè)計(jì)了基于C_RBAC模型的權(quán)限管理系統(tǒng)數(shù)據(jù)庫(kù)表,具有較強(qiáng)的實(shí)用性,較好滿足了系統(tǒng)的需求。
參考文獻(xiàn):
[1] 陳威,郭書(shū)普.中國(guó)農(nóng)業(yè)信息化技術(shù)發(fā)展現(xiàn)狀及存在的問(wèn)題[J].農(nóng)業(yè)工程學(xué)報(bào),2013,29(22):196-208.
[2] 牛奕麟.基于RBAC模型的醫(yī)療體檢系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)[D].大連:大連理工大學(xué),2013.
[3] Sanhu R S,Coyne E J,F(xiàn)einstein H L.Role_Based Access Control Models[J].IEEE Computer,1996,29(2):38-47.
[4] 曹勇剛,金茂忠,劉超.CMS中RBAC模型的改造和應(yīng)用[J].北京航空航天大學(xué)學(xué)報(bào),2005,31(10):108-113.
[5] 揭安全,化志章,薛錦云,等.基于RBAC的高校辦公自動(dòng)化系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)工程與設(shè)計(jì),2009,30 (11):2800-2802,2805.
[6] 信科,楊峰,楊光旭,等.基于RBAC權(quán)限管理系統(tǒng)的優(yōu)化設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2011,21 (7):172-174.
[7] 李鍵,陳杰.RBAC模型權(quán)限管理中三種新的角色繼承機(jī)制和授權(quán)策略[J].四川大學(xué)學(xué)報(bào):自然科學(xué)版,2007,39(3):521-524.
[8] 向華萍,付智輝,陳紅麗.具有時(shí)間約束的動(dòng)態(tài)角色的訪問(wèn)控制策略[J].河北科技大學(xué)學(xué)報(bào),2010,31(6):558-563.
[9] 張冬雯,裴興,仇計(jì)清.帶時(shí)間約束的基于任務(wù)角色委托模型[J].計(jì)算機(jī)應(yīng)用研究,2009,26(10):3906-3910.
[10] 邵奇峰,韓玉民,鄭秋生.一種混合授權(quán)的RBAC模型及其UML建模[J].武漢大學(xué)學(xué)報(bào):理學(xué)版,2014,39(5):419-423.
[11] 龐希愚,王成,仝春玲.基于角色-功能的Web應(yīng)用系統(tǒng)訪問(wèn)控制方法[J].計(jì)算機(jī)工程,2014,40 (5):144-148.endprint