摘要:結(jié)合某電信知識(shí)管理系統(tǒng)中權(quán)限管理模塊的實(shí)際需求,對RABC模型進(jìn)行擴(kuò)展,設(shè)計(jì)了針對功能和數(shù)據(jù)的權(quán)限管理模型,使權(quán)限管理具有更高的靈活性和實(shí)用性。
關(guān)鍵詞:基于角色的訪問控制;功能權(quán)限;數(shù)據(jù)權(quán)限;知識(shí)管理
0 引言
為降低客戶服務(wù)成本,提高運(yùn)營效率,構(gòu)建學(xué)習(xí)型組織,某電信知識(shí)管理系統(tǒng)的實(shí)現(xiàn)目標(biāo)是建立信息規(guī)范、分類規(guī)整、知識(shí)流暢通的先進(jìn)、統(tǒng)一、高效的企業(yè)級(jí)知識(shí)管理體系。此系統(tǒng)具有功能復(fù)雜,用戶眾多的特點(diǎn)。由于電信業(yè)務(wù)系統(tǒng)相比其他的應(yīng)用系統(tǒng),業(yè)務(wù)更復(fù)雜,數(shù)據(jù)量更龐大,因此合理控制眾多用戶對系統(tǒng)資源的訪問權(quán)限,對于保證系統(tǒng)的安全性,明確用戶的責(zé)任,有著及其重要的意義?;诮巧脑L問控制(Role basedaccess control,RBAC)機(jī)制由于具有較高的可擴(kuò)展性和靈活性,在分布式系統(tǒng)、數(shù)據(jù)庫系統(tǒng)乃至各種操作系統(tǒng)中都得到了一定程度的應(yīng)用。本文在RBAC模型的基礎(chǔ)上提出了能夠?qū)崿F(xiàn)功能權(quán)限和數(shù)據(jù)權(quán)限的擴(kuò)展型的RABC模型,并介紹了基于該模型的權(quán)限管理的設(shè)計(jì)和實(shí)現(xiàn)。
1 知識(shí)管理系統(tǒng)中權(quán)限設(shè)計(jì)的需求
知識(shí)管理系統(tǒng)是企業(yè)實(shí)現(xiàn)知識(shí)管理的平臺(tái),是以人的智能為主導(dǎo),以信息技術(shù)為手段的人機(jī)結(jié)合的管理系統(tǒng)。它是通過將企業(yè)中的各種知識(shí)資源(包括顯性知識(shí)和隱性知識(shí))整合為動(dòng)態(tài)的知識(shí)體系,以促進(jìn)知識(shí)創(chuàng)新,從而最終提高企業(yè)的核心競爭力。此系統(tǒng)的功能和程序以功能項(xiàng)的形式(菜單,目錄,窗口,按鈕等)向用戶提供各種操作,但并不是每個(gè)用戶都有權(quán)力使用系統(tǒng)中的每項(xiàng)功能與操作,需要根據(jù)用戶的不同職責(zé)對其權(quán)限進(jìn)行控制與管理。權(quán)限往往是一個(gè)極其復(fù)雜的問題,可以簡單地描述為這樣的邏輯表達(dá)式:判斷“Who對What(Which)進(jìn)行How操作”的表達(dá)式是否為真。
知識(shí)管理系統(tǒng)的權(quán)限模塊應(yīng)滿足如下需求:
(1)不同職責(zé)的人員,對于系統(tǒng)的操作權(quán)限應(yīng)該是不同的。例如,知識(shí)員工能發(fā)布知識(shí),但不能審核知識(shí),而知識(shí)專家既能發(fā)布知識(shí),又能審核知識(shí);
(2)可以對某一類人進(jìn)行權(quán)限分配。對于多用戶的電信知識(shí)管理系統(tǒng)來說,如果要求管理員為每位用戶分配操作權(quán)限,將是一件耗時(shí)且很不方便的事情。所以,在系統(tǒng)中就提出了對“角色”進(jìn)行授權(quán)的概念,將權(quán)限一致的用戶編入同一組,然后為該組進(jìn)行權(quán)限分配;
(3)權(quán)限模塊應(yīng)該是可維護(hù)的。例如某位電信員工的職位變化了,可以相應(yīng)的改變其操作權(quán)限;
(4)滿足業(yè)務(wù)系統(tǒng)中的功能權(quán)限;
(5)滿足業(yè)務(wù)系統(tǒng)中的數(shù)據(jù)權(quán)限,例如某10000號(hào)員工只能看到其所在地區(qū)的知識(shí),而不能看到其他地區(qū)的知識(shí);
(6)權(quán)限模塊應(yīng)該是可擴(kuò)展的。它應(yīng)該可以加入到任何帶有權(quán)限管理功能的系統(tǒng)中,就像是一個(gè)組件一樣可以被不斷地重用,而不是僅僅局限于本知識(shí)管理系統(tǒng)。
2 RBAC的優(yōu)勢
傳統(tǒng)的訪問控制技術(shù)主要分為兩大類,即自主訪問控制(Discretionary Access Control,DAC)和強(qiáng)制訪問控制(Manda-tory Access Control,MAC)。DAC將賦予或取消訪問權(quán)限的一部分權(quán)限留給用戶個(gè)人,不利于實(shí)現(xiàn)統(tǒng)一的全局訪問控制;MAC在系統(tǒng)連續(xù)工作能力、授權(quán)的可管理性等方面考慮不足。基于角色的訪問控制(RBAC)是在DAC和MAC的基礎(chǔ)之上發(fā)展起來的,有效地克服了傳統(tǒng)訪問控制技術(shù)中的不足,用戶借助于角色這個(gè)主體訪問系統(tǒng)資源,大大提高了管理的效率,減少了授權(quán)管理的復(fù)雜性。
RBAC模型主要以員工-角色、角色-權(quán)限、角色-角色之間的關(guān)系來體現(xiàn)訪問控制策略。它的最大優(yōu)勢在于對授權(quán)管理的支持。通常的訪問控制實(shí)現(xiàn)方法將用戶與訪問權(quán)限直接相聯(lián)系,當(dāng)組織內(nèi)人員新增或有人離開或某個(gè)用戶的職能發(fā)生變化時(shí),需要進(jìn)行大量的授權(quán)更改工作,而RBAC將用戶與其擁有的權(quán)限分離開來,管理員可以將用戶的授權(quán)和權(quán)限的劃分進(jìn)行分別處理,通過給用戶授予角色來實(shí)現(xiàn)用戶的授權(quán)操作。RBAC的另一個(gè)優(yōu)勢在于:系統(tǒng)管理員處在一種比較抽象且與企業(yè)通常的業(yè)務(wù)管理相類似的層次上,便于職責(zé)分配。在集中式管理中,知識(shí)管理通常由一個(gè)指定的管理員擔(dān)任,而在分布式管理中,可以由多個(gè)具有不同管理權(quán)限域的管理員來擔(dān)任,本文的知識(shí)管理系統(tǒng)屬于分布式系統(tǒng),所以知識(shí)管理員可以由不同地區(qū)的管理員來擔(dān)任。
3 知識(shí)管理系統(tǒng)中權(quán)限模型的設(shè)計(jì)
知識(shí)管理系統(tǒng)的權(quán)限模型根據(jù)其需求來看,可以分為兩個(gè)層次,即功能層的訪問權(quán)限和數(shù)據(jù)層的訪問權(quán)限。
3.1功能權(quán)限
功能層的訪問權(quán)限主要由RBAC模型實(shí)現(xiàn),如圖1所示,主要由三部分組成,分別是:核心RBAC、層次RBAC、職責(zé)隔離。
核心RABC(core RBAC)定義了RBAC模型最基本的五個(gè)基本元素:用戶(User)、角色(Role)、操作(Operations)、操作對象(Objects)、權(quán)限(Permission)。如圖2所示。
層次RBAC(Hierarchical RBAC)主要是指權(quán)限的繼承,在RBAC中通過增加角色的自關(guān)聯(lián)來實(shí)現(xiàn),即角色可擁有子角色,子角色繼承父角色的權(quán)限。
職責(zé)隔離(separation of Duty Relations)主要分為靜態(tài)職責(zé)隔離(Static separation duty,SSD)和動(dòng)態(tài)職責(zé)隔離(Dynamicseparation duty.DSD)。SSD比較容易理解,即在系統(tǒng)初始化時(shí),不能把沖突的角色分配給同—個(gè)用戶;DSD是指相互沖突的角色可以同時(shí)分配給同—個(gè)用戶,但在一次Session中不能同時(shí)扮演相沖突的角色,即在用戶權(quán)限范圍內(nèi)限制權(quán)限的可用性。例如,某員工既是人力資源部的會(huì)計(jì)又是出納,那么他在行使會(huì)計(jì)權(quán)利的同時(shí)就不能享有出納的權(quán)利,必須先退出會(huì)計(jì)角色,再以出納的角色進(jìn)入系統(tǒng)才能享有出納的權(quán)利。
3.2數(shù)據(jù)權(quán)限
在RBAC模型中沒有明確定義數(shù)據(jù)權(quán)限的實(shí)現(xiàn)策略,因此需設(shè)計(jì)數(shù)據(jù)權(quán)限模型來實(shí)現(xiàn)數(shù)據(jù)權(quán)限的要求。根據(jù)RBAC模型,作者同樣地設(shè)計(jì)了一個(gè)中間對象一數(shù)據(jù)角色,此角色與數(shù)據(jù)操作權(quán)限為多對多的關(guān)系。首先將數(shù)據(jù)映射為RBAC中的操作對象,對數(shù)據(jù)的操作映射為對操作對象的操作,然后將對此操作對象以及操作對象的操作構(gòu)成的權(quán)限授予給數(shù)據(jù)角色;為實(shí)現(xiàn)數(shù)據(jù)權(quán)限能夠授予多種對象,需要將RBAC的把角色授予用戶的模型演變?yōu)榘褦?shù)據(jù)角色授予功能角色、組織機(jī)構(gòu)或具體人員;為了實(shí)現(xiàn)數(shù)據(jù)權(quán)限的繼承,需要將數(shù)據(jù)資源重構(gòu)為允許自關(guān)聯(lián)的模型。在經(jīng)過這些重構(gòu)之后,數(shù)據(jù)權(quán)限的模型就形成了,如圖3所示。
4 知識(shí)管理系統(tǒng)中權(quán)限管理的實(shí)現(xiàn)
經(jīng)過以上的分析及設(shè)計(jì),在功能權(quán)限部份建立了以下的基本表:用戶表(USER TABLE),角色表(ROLE TABLE),模塊表(MODULE TABLE),操作功能表(FERNCTION TALBE),權(quán)限表(AUTHTABLE),角色權(quán)限關(guān)系表(ROLE_AUTHTABLE),用戶角色關(guān)系表(USER_ROLE TABLE),角色互斥表(ROLE_CONSTRAINTTABLE),權(quán)限互斥表(AUTH.CONSTRAINT TABLE),用戶組表(GROUP TABLE),用戶與用戶組關(guān)系表(GROUP_USER TABLE),用戶組與角色關(guān)系表(GROUP_ROLE),將以上各表聯(lián)合起來就形成了功能權(quán)限的數(shù)據(jù)庫實(shí)現(xiàn)模型。授權(quán)分為以下幾個(gè)步驟:配置操作對象以及對操作對象的操作;授予角色對操作對象的操作權(quán)限;分配角色給用戶等。
數(shù)據(jù)權(quán)限的物理模型如圖4所示。授權(quán)步驟同功能極限的授權(quán)步驟。
用戶登錄系統(tǒng)后,系統(tǒng)首先利用用戶角色關(guān)系表(USER_ROLE TABLE)與用戶數(shù)據(jù)角色關(guān)系表(uSER_DATA_ROLE TABLE)或功能角色數(shù)據(jù)關(guān)系表(FUNCTION_ROLE_DATA_ROLE TABLE)找出該用戶所對應(yīng)的功能角色與數(shù)據(jù)角色,然后利用功能訪問權(quán)限表(AUTH TABLE)和數(shù)據(jù)訪問權(quán)限表(DATA AUTH TABLE)找出該用戶所能進(jìn)行的操作。系統(tǒng)管理員在進(jìn)行維護(hù)時(shí),只需修改相應(yīng)表的記錄,而不需要修改表的結(jié)構(gòu),這就大大簡化了管理工作。
5 結(jié)束語
本文提出了能夠?qū)崿F(xiàn)功能權(quán)限和數(shù)據(jù)權(quán)限的RBAC擴(kuò)展模型,并在某電信知識(shí)管理系統(tǒng)中得到了應(yīng)用,證明了此模型不僅可以滿足權(quán)限管理的需求,而且具有可維護(hù)性、靈活性、完整性,可移植性等特點(diǎn)。