李光文
(天津市科技統計與發展研究中心 天津300051)
基于RBAC模型用戶訪問控制的研究與實現
李光文
(天津市科技統計與發展研究中心 天津300051)
科技計劃項目管理系統是一套由多個軟件構成的綜合系統,具有系統用戶多、功能點多的特點,用戶訪問控制實現比較困難。基于角色的訪問控制在系統用戶訪問控制中使用比較廣泛,利用基于角色的訪問控制模型,分析了系統中的用戶和功能權限,將用戶與功能權限相關聯,實現了用戶對系統的訪問控制與用戶和訪問權限的邏輯分離,提高了在系統中權限分配和訪問控制的靈活性與安全性。在基于角色的訪問控制的基礎上又引入數據權限控制,實現了用戶對系統數據訪問范圍的控制,完善了基于角色的訪問控制模型。
BRAC 用戶訪問 權限 功能 角色
訪問控制是指系統對用戶身份及其所屬的預先定義的策略組限制其使用數據資源能力的手段。訪問控制是系統完整性、保密性、可用性和合法使用性的重要基礎,是網絡安全防范和資源保護的關鍵策略之一。[1]通常,系統使用訪問控制實現對用戶使用服務器、目錄、文件等網絡資源的控制。訪問控制類型主要有 3種模式,即自主訪問控制(DAC)、強制訪問控制(MAC)和基于角色訪問控制(RBAC)。基于角色訪問控制是介于自主訪問控制和強制訪問控制之間的一種訪問控制技術,用戶在進行授權時只需對角色進行授權,之后將相應的角色分配給用戶即可,授權模型維護簡便、高效。
科技計劃項目管理系統是用于財政經費支持的研究項目管理信息系統,包括項目申報、項目管理及項目驗收結題。系統在開發過程中面臨 2方面挑戰,一是系統功能、用戶比較復雜,二是系統新需求逐年增加。為了解決上述問題,設計一套完善的訪問控制系統尤為重要。
基于角色訪問控制模型如圖1所示,此模型中包括4個基本的要素,即用戶、角色、權限和授權。用戶指使用系統的人。角色指用戶在系統中執行操作的集合,執行這些操作時就代表著系統的一個角色。權限指用戶訪問系統時的認可,權限代表了系統是否允許對用戶進行某種操作。它的基本思想是用戶被授予角色,系統通過用戶所授予的角色決定其權限。模型中用戶可以被授予多個角色,同時一個角色也可以被多個用戶所擁有。[2]

圖1 基于角色的訪問控制模型Fig.1 The role-based access control(RBAC) model
2.1 系統介紹
科技計劃項目管理系統基于 B/S(瀏覽器、服務器)架構模式開發,用戶使用瀏覽器便可以訪問系統。系統程序使用 Java語言編寫,具有可擴展性、跨平臺性與安全性。系統采用內外網物理隔離的方式部署,保證了系統的相對安全。科技計劃項目管理系統由多個模塊構成,包括申報模塊、評審模塊、立項模塊、年檢模塊、結題模塊等,各模塊之間相互獨立。通過統一的訪問控制使系統實現各模塊功能銜接,數據交互(見圖2)。

圖2 系統功能模塊Fig.2 System functional modules
2.2 用戶訪問控制設計
按照基于角色訪問控制的思想,結合科技計劃項目管理系統的實際情況,將用戶訪問控制分為功能授權和數據授權兩個方面。功能授權根據用戶的角色賦予用戶相應的功能權限,使用數據授權控制用戶對系統數據的訪問權限,保護關鍵數據不被泄露,保障系統的安全性。
2.2.1 功能權限
用戶擁有的功能權限決定了用戶進入系統后可以看到哪些菜單項以及可以進行哪些操作。其中,功能點即系統所提供的某項功能,一個功能點通常對應軟件界面上的一個或多個菜單項。基本權限組是功能點的集合,每個基本權限組可以包含一組功能點,完成某些特定的任務。
2.2.2 數據權限
用戶擁有的數據權限決定了用戶可以對系統中的哪些數據進行操作。數據權限根據用戶角色操作某個范圍內數據,由此保障數據安全。系統數據權限分為 8個等級,根據用戶的角色對其授予合適的權限(見表1)。

表1 數據授權等級Tab.1 Authorization level of data
2.2.3 系統角色
系統角色主要包括項目主管領導、綜合管理工程師、經費管理工程師、業務主管工程師、中介服務機構、項目負責人等。各類角色在系統中擁有不同的權限。系統為每個用戶分配角色后,用戶只能看到自己角色權限范圍內的數據(見表2)。

表2 系統主要用戶功能Tab.2 Overview of main users and their functions
2.3 用戶訪問控制實現
系統通過創建基本權限組、分配功能點、角色授權、創建用戶實現用戶訪問控制。
2.3.1 創建基本權限組
基本權限組的創建根據系統組織實施的實際情況合理規劃,按照各個功能模塊進行分解,對于一些需要區分申報用戶和項目管理人員的模塊,應進一步分解為瀏覽、管理等基本權限組。如項目申報模塊,應分成申請書填寫、申請書審核、申請書查詢權限組,申報用戶使用申請書填寫權限組,主管工程師使用申請書審核權限組,主管領導使用申請書查詢權限組。
2.3.2 分配功能點
按照科技計劃項目管理模塊,整理系統功能權限點,選擇適當的功能點分配到基本權限組。
2.3.3 角色授權
角色授權分為兩部分,一部分是功能授權,一部分是數據授權。功能授權即授予角色若干個基本權限組,擁有該角色的用戶所擁有的功能就是所有這些基本權限組包括的功能點的組合。數據授權則是確定擁有該角色的用戶進入系統后能夠看到的數據的范圍。如局級主管單位查看本單位及所管理單位的項目信息,可以授予其申請書查看、合同書查看、年度檢查查看和結項報告書查看權限組。在數據授權中授予其“本單位及下級單位的數據”權限。
2.3.4 創建用戶
創建用戶時,輸入用戶名、密碼等信息,選擇所屬角色后實現用戶與功能權限關聯。
2.4 系統設計
系統采用 MVC(Model-View-Controller)架構模式設計,按照模型、視圖、控制器實現程序分層管理,對應到編碼為表述層、業務邏輯層和數據庫層。表述層是用戶訪問控制的展現層,不同的用戶擁有不同的權限,在表述層顯示出不同的功能。業務邏輯層是系統用戶訪問控制的關鍵層,負責處理表述層提交的請求,業務邏輯層從數據庫層、XML 配置文件中讀取用戶的權限數據,通過計算處理、整合、傳遞到用戶表述層。數據庫層是數據管理層,按照業務邏輯層的請求提取數據。數據庫層使用數據持久化技術,使用ORM(對象/關系映射)實現實體域對象的持久化,將內存中的數據模型與存儲模型實現相互轉化,封裝數據訪問細節,將面向關系的關系數據模型映射為面向對象的域模型。
科技計劃項目管理系統的設計與開發,證明了基于角色訪問控制能很好地完成系統對用戶及用戶權限的管理,保證系統安全、穩定運行,并為系統功能擴展奠定了良好的基礎。但是在實施過程中,基于角色訪問控制也存在一些不足,如權限校驗比較復雜,在進行權限校驗時需要不斷遍歷和遞歸,造成了系統性能的下降。對于數據權限的支持不夠,沒有明確的數據權限模型,科技計劃項目管理系統使用的是經過重構的數據權限模型,已經和 RBAC 模型有一定的出入,造成數據權限的校驗實現起來相對低效。
[1]訪問控制技術[EB/OL].http://baike.baidu.com/view/1836943.htm?fr=Aladdin.
[2]楊光明,李先國.RBAC模型在醫療系統中的研究與應用[J].現代電子技術,2013(24):25-28.
[3]吳姣.基于 RBAC的權限管理研究與設計[J].計算機應用,2014(1):91-94.
[4]周來,趙登科.基于RBAC模型的用戶權限在0A中的研究[J].應用技術與研究,2013(11):47-48.
[5]唐成華,陳新度,陳新.管理信息系統中多用戶權限管理的研究及實現[J].計算機應用研究,2004(3):217-219.
RBAC-based User Access Control:A Study of Science and Technology Planning Project Management System and Its Implementation
LI Guangwen
(Tianjin Science and Technology Research Center for Statistics and Development,Tianjin 300051,China)
As a multiple software constituted system,the science and technology planning project management system features multiple users and numerous function points,which cause difficulties in user access.As RBAC has been widely applied in system user access control,this study,based on the RBAC model,analyzed authorizations of users and system functions and connected users to their function authorizations to realize not only the system access control for users,but also the logical separation of users and their access rights,which enhances both the flexibility and safety of authorization distribution and access control in the system.Moreover,on the basis of RBAC,data authority control was introduced to realize the control of system data by users,which optimizes the RBAC-based access control model.
RBAC(Role-Based Access Control);user access;authorization;function;role
TP315
A
1006-8945(2014)12-0015-03
2014-11-11