【摘要】本文涉及應(yīng)用系統(tǒng)授權(quán)訪問(wèn)控制領(lǐng)域,特別是涉及一種基于角色的訪問(wèn)控制(RBAC,Role-Based Access Control)與面向業(yè)務(wù)相結(jié)合的方法。
【關(guān)鍵詞】RBAC;設(shè)計(jì)時(shí);分配時(shí);運(yùn)行時(shí)
1.引言
應(yīng)用系統(tǒng)的安全一般包括五個(gè)范疇,分別是身份驗(yàn)證、授權(quán)訪問(wèn)控制、安全審計(jì)、數(shù)據(jù)私密性和完整性。其中的授權(quán)訪問(wèn)控制是指一旦特定用戶的身份通過(guò)認(rèn)證后,確定哪些資源該用戶可以訪問(wèn)、可以進(jìn)行何種方式的訪問(wèn)操作。在授權(quán)訪問(wèn)控制方面,基于角色的訪問(wèn)控制(RBAC,Role-Based Access Control)模型是目前應(yīng)用系統(tǒng)中被廣泛接受的一種授權(quán)訪問(wèn)控制模型。
在RBAC模型中,操作(OPS,operations)和受控對(duì)象(OBS,objects)是相互獨(dú)立的兩個(gè)元素,操作施加于受控對(duì)象從而產(chǎn)生授權(quán)許可(PRMS,permissions)。然而在應(yīng)用系統(tǒng)中,應(yīng)用是以業(yè)務(wù)為核心的,業(yè)務(wù)處理過(guò)程往往以高內(nèi)聚、松耦合特征劃分為多個(gè)業(yè)務(wù)處理單元,每個(gè)業(yè)務(wù)處理單元包含其業(yè)務(wù)操作和業(yè)務(wù)數(shù)據(jù),業(yè)務(wù)操作脫離開(kāi)相應(yīng)的業(yè)務(wù)單元及業(yè)務(wù)數(shù)據(jù)也就沒(méi)有實(shí)質(zhì)的意義,業(yè)務(wù)操作和業(yè)務(wù)數(shù)據(jù)之間形成一個(gè)有機(jī)的整體。
基于以上的分析,針對(duì)應(yīng)用系統(tǒng)的這種特征,如果在RBAC模型中的授權(quán)許可部分加入面向業(yè)務(wù)的特征,將相關(guān)的操作和數(shù)據(jù)按照業(yè)務(wù)內(nèi)聚度進(jìn)行分化、整理,以業(yè)務(wù)處理單元為邊界進(jìn)行劃分,使包含操作和數(shù)據(jù)的業(yè)務(wù)單元成為授權(quán)許可的基本單位,將會(huì)使應(yīng)用系統(tǒng)的授權(quán)分配體現(xiàn)出清晰的業(yè)務(wù)內(nèi)聚度特征,符合業(yè)務(wù)關(guān)系的內(nèi)在規(guī)律性。
2.控制方法
本文提供了一種基于RBAC模型擴(kuò)展的面向業(yè)務(wù)的授權(quán)訪問(wèn)控制方法,將RBAC模型中授權(quán)許可(PRMS,permissons)的操作和數(shù)據(jù),按照業(yè)務(wù)內(nèi)聚度,劃分成業(yè)務(wù)單元,使操作和數(shù)據(jù)包含在業(yè)務(wù)單元中,形成一個(gè)有機(jī)整體,使授權(quán)許可以面向業(yè)務(wù)的業(yè)務(wù)單元為分配的單位,并以此為基礎(chǔ)提供一種應(yīng)用系統(tǒng)的授權(quán)訪問(wèn)控制的方法。
針對(duì)以上的問(wèn)題解決方案,本文公開(kāi)的方法,提供了一種基于RBAC授權(quán)訪問(wèn)控制模型擴(kuò)展的面向業(yè)務(wù)的授權(quán)訪問(wèn)控制方法,包括設(shè)計(jì)時(shí)、分配時(shí)和運(yùn)行時(shí)三個(gè)階段。
2.1 設(shè)計(jì)時(shí)
設(shè)計(jì)時(shí)階段。基于RBAC基本模型,對(duì)授權(quán)許可(PRMS)部分結(jié)合面向業(yè)務(wù)的特征進(jìn)行擴(kuò)展,主要新添加了業(yè)務(wù)單元(Business Unit)定義,并將原模型中的操作(OPS)及數(shù)據(jù)(OBS)以業(yè)務(wù)單元為單位進(jìn)行重新劃分,將操作和數(shù)據(jù)按照業(yè)務(wù)內(nèi)聚度歸集到業(yè)務(wù)單元下,使應(yīng)用本文定義的授權(quán)訪問(wèn)控制模型的應(yīng)用系統(tǒng)中,不再存在獨(dú)立的操作和數(shù)據(jù)。設(shè)計(jì)時(shí)的具體內(nèi)容包括:
業(yè)務(wù)單元實(shí)體作為授權(quán)許可(PRMS)的基本單位,包含業(yè)務(wù)數(shù)據(jù)結(jié)構(gòu)實(shí)體和業(yè)務(wù)操作實(shí)體(組合關(guān)系),其中業(yè)務(wù)數(shù)據(jù)結(jié)構(gòu)實(shí)體用于描述業(yè)務(wù)單元下的業(yè)務(wù)實(shí)體數(shù)據(jù)結(jié)構(gòu),業(yè)務(wù)操作實(shí)體用于識(shí)別業(yè)務(wù)單元下需要進(jìn)行授權(quán)訪問(wèn)控制的操作,數(shù)據(jù)權(quán)限實(shí)體用于定義業(yè)務(wù)單元數(shù)據(jù)權(quán)限控制的數(shù)據(jù)范圍的劃分依據(jù),由于數(shù)據(jù)權(quán)限實(shí)體定義可在多個(gè)業(yè)務(wù)單元間復(fù)用,因此它與業(yè)務(wù)單元實(shí)體之間是一種聚合關(guān)系。業(yè)務(wù)操作實(shí)體和數(shù)據(jù)權(quán)限實(shí)體的關(guān)聯(lián)關(guān)系是一種多對(duì)多關(guān)系,該關(guān)系表示一個(gè)業(yè)務(wù)操作在執(zhí)行時(shí)受到哪些數(shù)據(jù)權(quán)限的約束。業(yè)務(wù)數(shù)據(jù)結(jié)構(gòu)實(shí)體和數(shù)據(jù)授權(quán)實(shí)體之間是一種多對(duì)多關(guān)系,該關(guān)系表示一個(gè)數(shù)據(jù)權(quán)限在作用于業(yè)務(wù)實(shí)體數(shù)據(jù)時(shí),具體和該業(yè)務(wù)實(shí)體數(shù)據(jù)的哪個(gè)數(shù)據(jù)域(字段或字段組合)相關(guān)。
業(yè)務(wù)數(shù)據(jù)結(jié)構(gòu)實(shí)體定義,采用數(shù)據(jù)模型來(lái)描述業(yè)務(wù)數(shù)據(jù)結(jié)構(gòu)。業(yè)務(wù)數(shù)據(jù)定義映射到關(guān)系型數(shù)據(jù)庫(kù)中是一組具有主從關(guān)系或關(guān)聯(lián)關(guān)系的表或視圖的集合,因此,業(yè)務(wù)數(shù)據(jù)是一組數(shù)據(jù)集,每個(gè)數(shù)據(jù)集是一個(gè)二維表結(jié)構(gòu),包括列集和行集。
數(shù)據(jù)權(quán)限實(shí)體定義,用于定義數(shù)據(jù)權(quán)限控制的數(shù)據(jù)范圍的劃分依據(jù)。其中數(shù)據(jù)范圍是指業(yè)務(wù)單元中的業(yè)務(wù)數(shù)據(jù)的取值范圍。根據(jù)上文所述,業(yè)務(wù)數(shù)據(jù)的取值范圍的劃分,就是對(duì)業(yè)務(wù)數(shù)據(jù)對(duì)應(yīng)的每一個(gè)二維表的列集和行集兩個(gè)維度進(jìn)行劃分,數(shù)據(jù)權(quán)限實(shí)體用于定義對(duì)此數(shù)據(jù)范圍的劃分的依據(jù)。
2.2 分配時(shí)
分配時(shí)階段。角色的授權(quán)以業(yè)務(wù)單元為單位進(jìn)行授權(quán)分配。分配時(shí)的具體內(nèi)容包括:
角色實(shí)體和業(yè)務(wù)單元實(shí)體之間是一種多對(duì)多關(guān)聯(lián)關(guān)系,該關(guān)系表示一個(gè)角色可以分配多個(gè)業(yè)務(wù)單元的授權(quán),一個(gè)業(yè)務(wù)單元的授權(quán)可以分配給多個(gè)角色,角色和業(yè)務(wù)單元之間的一個(gè)分配關(guān)系,產(chǎn)生一個(gè)關(guān)聯(lián)的角色的授權(quán)分配實(shí)體。在一個(gè)業(yè)務(wù)單元的角色授權(quán)中,一個(gè)角色實(shí)體可選擇分配一個(gè)業(yè)務(wù)單元實(shí)體下的一個(gè)或多個(gè)業(yè)務(wù)操作實(shí)體,表示該角色在當(dāng)前業(yè)務(wù)單元下可執(zhí)行哪些業(yè)務(wù)操作。如果該業(yè)務(wù)操作在業(yè)務(wù)單元授權(quán)定義時(shí)定義了數(shù)據(jù)權(quán)限約束,則應(yīng)根據(jù)數(shù)據(jù)權(quán)限的定義為角色分配執(zhí)行該操作時(shí)可訪問(wèn)的數(shù)據(jù)范圍,從而產(chǎn)生角色的數(shù)據(jù)授權(quán)分配實(shí)體數(shù)據(jù)。
2.3 運(yùn)行時(shí)
運(yùn)行時(shí)階段。授權(quán)訪問(wèn)控制運(yùn)行時(shí)服務(wù)對(duì)外提供服務(wù)調(diào)用接口,接收應(yīng)用系統(tǒng)中各程序組件的授權(quán)訪問(wèn)控制的相關(guān)調(diào)用。服務(wù)調(diào)用接口遵循基本的RBAC模型定義的操作接口標(biāo)準(zhǔn),在角色的授權(quán)訪問(wèn)控制部分,采用以業(yè)務(wù)單元為基本單位的訪問(wèn)控制。在運(yùn)行時(shí)服務(wù)的內(nèi)部,根據(jù)輸入的會(huì)話和業(yè)務(wù)單元、業(yè)務(wù)操作等信息,加載業(yè)務(wù)單元定義,根據(jù)分配時(shí)設(shè)置的角色的授權(quán)分配結(jié)果進(jìn)行邏輯運(yùn)算,向調(diào)用返回授權(quán)訪問(wèn)控制的結(jié)果。
3.總結(jié)
本文提供的面向業(yè)務(wù)的授權(quán)訪問(wèn)控制方法,將原RBAC模型中的操作和數(shù)據(jù),按照業(yè)務(wù)內(nèi)聚度,劃分成業(yè)務(wù)單元,使操作和數(shù)據(jù)包含在業(yè)務(wù)單元中,形成一個(gè)有機(jī)整體,使面向業(yè)務(wù)的業(yè)務(wù)單元成為授權(quán)分配和授權(quán)訪問(wèn)的基本單位。通過(guò)這種面向業(yè)務(wù)的劃分,使應(yīng)用系統(tǒng)的授權(quán)的分配和訪問(wèn)控制體現(xiàn)出清晰的業(yè)務(wù)內(nèi)聚度特征,符合業(yè)務(wù)關(guān)系的內(nèi)在規(guī)律性,業(yè)務(wù)單元具有業(yè)務(wù)完整性的特點(diǎn),具有明確的邊界。當(dāng)授權(quán)訪問(wèn)控制需求變化時(shí),業(yè)務(wù)單元作為授權(quán)訪問(wèn)控制的變化基本單位,與以往孤立的操作和數(shù)據(jù)作為變化的基本單位相比,業(yè)務(wù)單元可對(duì)變化進(jìn)行有效封裝,使變化分解并限制在局部,從而使變化更加可控。
作者簡(jiǎn)介:佘九華(1982-),男,山東蒼山人,碩士,研究方向:煤礦企業(yè)信息化集成與業(yè)務(wù)應(yīng)用。