摘要:結合某電信知識管理系統中權限管理模塊的實際需求,對RABC模型進行擴展,設計了針對功能和數據的權限管理模型,使權限管理具有更高的靈活性和實用性。
關鍵詞:基于角色的訪問控制;功能權限;數據權限;知識管理
0 引言
為降低客戶服務成本,提高運營效率,構建學習型組織,某電信知識管理系統的實現目標是建立信息規范、分類規整、知識流暢通的先進、統一、高效的企業級知識管理體系。此系統具有功能復雜,用戶眾多的特點。由于電信業務系統相比其他的應用系統,業務更復雜,數據量更龐大,因此合理控制眾多用戶對系統資源的訪問權限,對于保證系統的安全性,明確用戶的責任,有著及其重要的意義。基于角色的訪問控制(Role basedaccess control,RBAC)機制由于具有較高的可擴展性和靈活性,在分布式系統、數據庫系統乃至各種操作系統中都得到了一定程度的應用。本文在RBAC模型的基礎上提出了能夠實現功能權限和數據權限的擴展型的RABC模型,并介紹了基于該模型的權限管理的設計和實現。

1 知識管理系統中權限設計的需求
知識管理系統是企業實現知識管理的平臺,是以人的智能為主導,以信息技術為手段的人機結合的管理系統。它是通過將企業中的各種知識資源(包括顯性知識和隱性知識)整合為動態的知識體系,以促進知識創新,從而最終提高企業的核心競爭力。此系統的功能和程序以功能項的形式(菜單,目錄,窗口,按鈕等)向用戶提供各種操作,但并不是每個用戶都有權力使用系統中的每項功能與操作,需要根據用戶的不同職責對其權限進行控制與管理。權限往往是一個極其復雜的問題,可以簡單地描述為這樣的邏輯表達式:判斷“Who對What(Which)進行How操作”的表達式是否為真。
知識管理系統的權限模塊應滿足如下需求:
(1)不同職責的人員,對于系統的操作權限應該是不同的。例如,知識員工能發布知識,但不能審核知識,而知識專家既能發布知識,又能審核知識;

(2)可以對某一類人進行權限分配。對于多用戶的電信知識管理系統來說,如果要求管理員為每位用戶分配操作權限,將是一件耗時且很不方便的事情。所以,在系統中就提出了對“角色”進行授權的概念,將權限一致的用戶編入同一組,然后為該組進行權限分配;
(3)權限模塊應該是可維護的。例如某位電信員工的職位變化了,可以相應的改變其操作權限;
(4)滿足業務系統中的功能權限;
(5)滿足業務系統中的數據權限,例如某10000號員工只能看到其所在地區的知識,而不能看到其他地區的知識;
(6)權限模塊應該是可擴展的。它應該可以加入到任何帶有權限管理功能的系統中,就像是一個組件一樣可以被不斷地重用,而不是僅僅局限于本知識管理系統。
2 RBAC的優勢
傳統的訪問控制技術主要分為兩大類,即自主訪問控制(Discretionary Access Control,DAC)和強制訪問控制(Manda-tory Access Control,MAC)。DAC將賦予或取消訪問權限的一部分權限留給用戶個人,不利于實現統一的全局訪問控制;MAC在系統連續工作能力、授權的可管理性等方面考慮不足。基于角色的訪問控制(RBAC)是在DAC和MAC的基礎之上發展起來的,有效地克服了傳統訪問控制技術中的不足,用戶借助于角色這個主體訪問系統資源,大大提高了管理的效率,減少了授權管理的復雜性。

RBAC模型主要以員工-角色、角色-權限、角色-角色之間的關系來體現訪問控制策略。它的最大優勢在于對授權管理的支持。通常的訪問控制實現方法將用戶與訪問權限直接相聯系,當組織內人員新增或有人離開或某個用戶的職能發生變化時,需要進行大量的授權更改工作,而RBAC將用戶與其擁有的權限分離開來,管理員可以將用戶的授權和權限的劃分進行分別處理,通過給用戶授予角色來實現用戶的授權操作。RBAC的另一個優勢在于:系統管理員處在一種比較抽象且與企業通常的業務管理相類似的層次上,便于職責分配。在集中式管理中,知識管理通常由一個指定的管理員擔任,而在分布式管理中,可以由多個具有不同管理權限域的管理員來擔任,本文的知識管理系統屬于分布式系統,所以知識管理員可以由不同地區的管理員來擔任。
3 知識管理系統中權限模型的設計
知識管理系統的權限模型根據其需求來看,可以分為兩個層次,即功能層的訪問權限和數據層的訪問權限。
3.1功能權限
功能層的訪問權限主要由RBAC模型實現,如圖1所示,主要由三部分組成,分別是:核心RBAC、層次RBAC、職責隔離。
核心RABC(core RBAC)定義了RBAC模型最基本的五個基本元素:用戶(User)、角色(Role)、操作(Operations)、操作對象(Objects)、權限(Permission)。如圖2所示。
層次RBAC(Hierarchical RBAC)主要是指權限的繼承,在RBAC中通過增加角色的自關聯來實現,即角色可擁有子角色,子角色繼承父角色的權限。
職責隔離(separation of Duty Relations)主要分為靜態職責隔離(Static separation duty,SSD)和動態職責隔離(Dynamicseparation duty.DSD)。SSD比較容易理解,即在系統初始化時,不能把沖突的角色分配給同—個用戶;DSD是指相互沖突的角色可以同時分配給同—個用戶,但在一次Session中不能同時扮演相沖突的角色,即在用戶權限范圍內限制權限的可用性。例如,某員工既是人力資源部的會計又是出納,那么他在行使會計權利的同時就不能享有出納的權利,必須先退出會計角色,再以出納的角色進入系統才能享有出納的權利。
3.2數據權限
在RBAC模型中沒有明確定義數據權限的實現策略,因此需設計數據權限模型來實現數據權限的要求。根據RBAC模型,作者同樣地設計了一個中間對象一數據角色,此角色與數據操作權限為多對多的關系。首先將數據映射為RBAC中的操作對象,對數據的操作映射為對操作對象的操作,然后將對此操作對象以及操作對象的操作構成的權限授予給數據角色;為實現數據權限能夠授予多種對象,需要將RBAC的把角色授予用戶的模型演變為把數據角色授予功能角色、組織機構或具體人員;為了實現數據權限的繼承,需要將數據資源重構為允許自關聯的模型。在經過這些重構之后,數據權限的模型就形成了,如圖3所示。
4 知識管理系統中權限管理的實現
經過以上的分析及設計,在功能權限部份建立了以下的基本表:用戶表(USER TABLE),角色表(ROLE TABLE),模塊表(MODULE TABLE),操作功能表(FERNCTION TALBE),權限表(AUTHTABLE),角色權限關系表(ROLE_AUTHTABLE),用戶角色關系表(USER_ROLE TABLE),角色互斥表(ROLE_CONSTRAINTTABLE),權限互斥表(AUTH.CONSTRAINT TABLE),用戶組表(GROUP TABLE),用戶與用戶組關系表(GROUP_USER TABLE),用戶組與角色關系表(GROUP_ROLE),將以上各表聯合起來就形成了功能權限的數據庫實現模型。授權分為以下幾個步驟:配置操作對象以及對操作對象的操作;授予角色對操作對象的操作權限;分配角色給用戶等。
數據權限的物理模型如圖4所示。授權步驟同功能極限的授權步驟。
用戶登錄系統后,系統首先利用用戶角色關系表(USER_ROLE TABLE)與用戶數據角色關系表(uSER_DATA_ROLE TABLE)或功能角色數據關系表(FUNCTION_ROLE_DATA_ROLE TABLE)找出該用戶所對應的功能角色與數據角色,然后利用功能訪問權限表(AUTH TABLE)和數據訪問權限表(DATA AUTH TABLE)找出該用戶所能進行的操作。系統管理員在進行維護時,只需修改相應表的記錄,而不需要修改表的結構,這就大大簡化了管理工作。
5 結束語
本文提出了能夠實現功能權限和數據權限的RBAC擴展模型,并在某電信知識管理系統中得到了應用,證明了此模型不僅可以滿足權限管理的需求,而且具有可維護性、靈活性、完整性,可移植性等特點。