0 引言 管理信息系統是一個復雜的人機交互系統,其中每個具體環節都可能受到安全威脅。構建強健的權限管理系統,保證管理信息系統的安全性是十分重要的。權限管理系統是管理信息系統中可代碼重用性最高的模塊之一。任何多用戶的系統都不可避免的涉及到相同的權限需求,都需要解決實體鑒別、數據保密性、數據完整性、防抵賴和訪問控制等安全服務(據ISO7498-2)。例如,訪問控制服務要求系統根據操作者已經設定的操作權限,控制操作者可以訪問哪些資源,以及確定對資源如何進行操作。 目前,權限管理系統也是重復開發率最高的模塊之一。在企業中,不同的應用系統都擁有一套獨立的權限管理系統。每套權限管理系統只滿足自身系統的權限管理需要,無論在數據存儲、權限訪問和權限控制機制等方面都可能不一樣,這種不一致性存在如下弊端: a.系統管理員需要維護多套權限管理系統,重復勞動。 b.用戶管理、組織機構等數據重復維護,數據一致性、完整性得不到保證。 c.由于權限管理系統的設計不同,概念解釋不同,采用的技術有差異,權限管理系統之間的集成存在問題,實現單點登錄難度十分大,也給企業構建企業門戶帶來困難。 采用統一的安全管理設計思想,規范化設計和先進的技術架構體系,構建一個通用的、完善的、安全的、易于管理的、有良好的可移植性和擴展性的權限管理系統,使得權限管理系統真正成為權限控制的核心,在維護系統安全方面發揮重要的作用,是十分必要的。 本文介紹一種基于角色的訪問控制RBAC(Role-Based policies Access Control)模型的權限管理系統的設計和實現,系統采用基于J2EE架構技術實現。并以討論了應用系統如何進行權限的訪問和控制。 1 采用J2EE架構設計 采用J2EE企業平臺架構構建權限管理系統。J2EE架構集成了先進的軟件體系架構思想,具有采用多層分布式應用模型、基于組件并能重用組件、統一完全模型和靈活的事務處理控制等特點。 系統邏輯上分為四層:客戶層、Web層、業務層和資源層。 a. 客戶層主要負責人機交互。可以使系統管理員通過Web瀏覽器訪問,也可以提供不同業務系統的API、Web Service調用。 b. Web層封裝了用來提供通過Web訪問本系統的客戶端的表示層邏輯的服務。 c. 業務層提供業務服務,包括業務數據和業務邏輯,集中了系統業務處理。主要的業務管理模塊包括組織機構管理、用戶管理、資源管理、權限管理和訪問控制幾個部分。 d. 資源層主要負責數據的存儲、組織和管理等。資源層提供了兩種實現方式:大型關系型數據庫(如ORACLE)和LDAP(Light Directory Access Protocol,輕量級目錄訪問協議)目錄服務器(如微軟的活動目錄)。 2 RBAC模型 訪問控制是針對越權使用資源的防御措施。基本目標是為了限制訪問主體(用戶、進程、服務等)對訪問客體(文件、系統等)的訪問權限,從而使計算機系統在合法范圍內使用;決定用戶能做什么,也決定代表一定用戶利益的程序能做什么[1]。 企業環境中的訪問控制策略一般有三種:自主型訪問控制方法、強制型訪問控制方法和基于角色的訪問控制方法(RBAC)。其中,自主式太弱,強制式太強,二者工作量大,不便于管理[1]。基于角色的訪問控制方法是目前公認的解決大型企業的統一資源訪問控制的有效方法。其顯著的兩大特征是:1.減小授權管理的復雜性,降低管理開銷;2.靈活地支持企業的安全策略,并對企業的變化有很大的伸縮性。 NIST(The National Institute of Standards and Technology,美國國家標準與技術研究院)標準RBAC模型由4個部件模型組成,這4個部件模型分別是基本模型RBAC0(Core RBAC)、角色分級模型RBAC1(Hierarchal RBAC)、角色限制模型RBAC2(Constraint RBAC)和統一模型RBAC3(Combines RBAC)[1]。RBAC0模型如圖1所示。 圖1 RBAC0模型 a. RBAC0定義了能構成一個RBAC控制系統的最小的元素集合。在RBAC之中,包含用戶users(USERS)、角色roles(ROLES)、目標 objects(OBS)、操作operations(OPS)、許可權permissions(PRMS)五個基本數據元素,權限被賦予角色,而不是用 戶,當一個角色被指定給一個用戶時,此用戶就擁有了該角色所包含的權限。會話sessions是用戶與激活的角色集合之間的映射。RBAC0與傳統訪問控 制的差別在于增加一層間接性帶來了靈活性,RBAC1、RBAC2、RBAC3都是先后在RBAC0上的擴展。 b. RBAC1引入角色間的繼承關系,角色間的繼承關系可分為一般繼承關系和受限繼承關系。一般繼承關系僅要求角色繼承關系是一個絕對偏序關系,允許角色間的多繼承。而受限繼承關系則進一步要求角色繼承關系是一個樹結構。 c. RBAC2模型中添加了責任分離關系。RBAC2的約束規定了權限被賦予角色時,或角色被賦予用戶時,以及當用戶在某一時刻激活一個角色時所應遵循的強制 性規則。責任分離包括靜態責任分離和動態責任分離。約束與用戶-角色-權限關系一起決定了RBAC2模型中用戶的訪問許可。 d. RBAC3包含了RBAC1和RBAC2,既提供了角色間的繼承關系,又提供了責任分離關系。 3核心對象模型設計 根據RBAC模型的權限設計思想,建立權限管理系統的核心對象模型。如圖2所示。
對象模型中包含的基本元素主要有:用戶(Users)、用戶組(Group)、角色(Role)、目標(Objects)、訪問模式(Access Mode)、操作(Operator)。主要的關系有:分配角色權限PA(Permission Assignment)、分配用戶角色UA(Users Assignmen描述如下: 圖2 權限管理系統核心類圖
|