李光文
(天津市科技統(tǒng)計與發(fā)展研究中心 天津300051)
基于RBAC模型用戶訪問控制的研究與實現(xiàn)
李光文
(天津市科技統(tǒng)計與發(fā)展研究中心 天津300051)
科技計劃項目管理系統(tǒng)是一套由多個軟件構成的綜合系統(tǒng),具有系統(tǒng)用戶多、功能點多的特點,用戶訪問控制實現(xiàn)比較困難?;诮巧脑L問控制在系統(tǒng)用戶訪問控制中使用比較廣泛,利用基于角色的訪問控制模型,分析了系統(tǒng)中的用戶和功能權限,將用戶與功能權限相關聯(lián),實現(xiàn)了用戶對系統(tǒng)的訪問控制與用戶和訪問權限的邏輯分離,提高了在系統(tǒng)中權限分配和訪問控制的靈活性與安全性。在基于角色的訪問控制的基礎上又引入數據權限控制,實現(xiàn)了用戶對系統(tǒng)數據訪問范圍的控制,完善了基于角色的訪問控制模型。
BRAC 用戶訪問 權限 功能 角色
訪問控制是指系統(tǒng)對用戶身份及其所屬的預先定義的策略組限制其使用數據資源能力的手段。訪問控制是系統(tǒng)完整性、保密性、可用性和合法使用性的重要基礎,是網絡安全防范和資源保護的關鍵策略之一。[1]通常,系統(tǒng)使用訪問控制實現(xiàn)對用戶使用服務器、目錄、文件等網絡資源的控制。訪問控制類型主要有 3種模式,即自主訪問控制(DAC)、強制訪問控制(MAC)和基于角色訪問控制(RBAC)。基于角色訪問控制是介于自主訪問控制和強制訪問控制之間的一種訪問控制技術,用戶在進行授權時只需對角色進行授權,之后將相應的角色分配給用戶即可,授權模型維護簡便、高效。
科技計劃項目管理系統(tǒng)是用于財政經費支持的研究項目管理信息系統(tǒng),包括項目申報、項目管理及項目驗收結題。系統(tǒng)在開發(fā)過程中面臨 2方面挑戰(zhàn),一是系統(tǒng)功能、用戶比較復雜,二是系統(tǒng)新需求逐年增加。為了解決上述問題,設計一套完善的訪問控制系統(tǒng)尤為重要。
基于角色訪問控制模型如圖1所示,此模型中包括4個基本的要素,即用戶、角色、權限和授權。用戶指使用系統(tǒng)的人。角色指用戶在系統(tǒng)中執(zhí)行操作的集合,執(zhí)行這些操作時就代表著系統(tǒng)的一個角色。權限指用戶訪問系統(tǒng)時的認可,權限代表了系統(tǒng)是否允許對用戶進行某種操作。它的基本思想是用戶被授予角色,系統(tǒng)通過用戶所授予的角色決定其權限。模型中用戶可以被授予多個角色,同時一個角色也可以被多個用戶所擁有。[2]
圖1 基于角色的訪問控制模型Fig.1 The role-based access control(RBAC) model
2.1 系統(tǒng)介紹
科技計劃項目管理系統(tǒng)基于 B/S(瀏覽器、服務器)架構模式開發(fā),用戶使用瀏覽器便可以訪問系統(tǒng)。系統(tǒng)程序使用 Java語言編寫,具有可擴展性、跨平臺性與安全性。系統(tǒng)采用內外網物理隔離的方式部署,保證了系統(tǒng)的相對安全。科技計劃項目管理系統(tǒng)由多個模塊構成,包括申報模塊、評審模塊、立項模塊、年檢模塊、結題模塊等,各模塊之間相互獨立。通過統(tǒng)一的訪問控制使系統(tǒng)實現(xiàn)各模塊功能銜接,數據交互(見圖2)。
圖2 系統(tǒng)功能模塊Fig.2 System functional modules
2.2 用戶訪問控制設計
按照基于角色訪問控制的思想,結合科技計劃項目管理系統(tǒng)的實際情況,將用戶訪問控制分為功能授權和數據授權兩個方面。功能授權根據用戶的角色賦予用戶相應的功能權限,使用數據授權控制用戶對系統(tǒng)數據的訪問權限,保護關鍵數據不被泄露,保障系統(tǒng)的安全性。
2.2.1 功能權限
用戶擁有的功能權限決定了用戶進入系統(tǒng)后可以看到哪些菜單項以及可以進行哪些操作。其中,功能點即系統(tǒng)所提供的某項功能,一個功能點通常對應軟件界面上的一個或多個菜單項?;緳嘞藿M是功能點的集合,每個基本權限組可以包含一組功能點,完成某些特定的任務。
2.2.2 數據權限
用戶擁有的數據權限決定了用戶可以對系統(tǒng)中的哪些數據進行操作。數據權限根據用戶角色操作某個范圍內數據,由此保障數據安全。系統(tǒng)數據權限分為 8個等級,根據用戶的角色對其授予合適的權限(見表1)。
表1 數據授權等級Tab.1 Authorization level of data
2.2.3 系統(tǒng)角色
系統(tǒng)角色主要包括項目主管領導、綜合管理工程師、經費管理工程師、業(yè)務主管工程師、中介服務機構、項目負責人等。各類角色在系統(tǒng)中擁有不同的權限。系統(tǒng)為每個用戶分配角色后,用戶只能看到自己角色權限范圍內的數據(見表2)。
表2 系統(tǒng)主要用戶功能Tab.2 Overview of main users and their functions
2.3 用戶訪問控制實現(xiàn)
系統(tǒng)通過創(chuàng)建基本權限組、分配功能點、角色授權、創(chuàng)建用戶實現(xiàn)用戶訪問控制。
2.3.1 創(chuàng)建基本權限組
基本權限組的創(chuàng)建根據系統(tǒng)組織實施的實際情況合理規(guī)劃,按照各個功能模塊進行分解,對于一些需要區(qū)分申報用戶和項目管理人員的模塊,應進一步分解為瀏覽、管理等基本權限組。如項目申報模塊,應分成申請書填寫、申請書審核、申請書查詢權限組,申報用戶使用申請書填寫權限組,主管工程師使用申請書審核權限組,主管領導使用申請書查詢權限組。
2.3.2 分配功能點
按照科技計劃項目管理模塊,整理系統(tǒng)功能權限點,選擇適當的功能點分配到基本權限組。
2.3.3 角色授權
角色授權分為兩部分,一部分是功能授權,一部分是數據授權。功能授權即授予角色若干個基本權限組,擁有該角色的用戶所擁有的功能就是所有這些基本權限組包括的功能點的組合。數據授權則是確定擁有該角色的用戶進入系統(tǒng)后能夠看到的數據的范圍。如局級主管單位查看本單位及所管理單位的項目信息,可以授予其申請書查看、合同書查看、年度檢查查看和結項報告書查看權限組。在數據授權中授予其“本單位及下級單位的數據”權限。
2.3.4 創(chuàng)建用戶
創(chuàng)建用戶時,輸入用戶名、密碼等信息,選擇所屬角色后實現(xiàn)用戶與功能權限關聯(lián)。
2.4 系統(tǒng)設計
系統(tǒng)采用 MVC(Model-View-Controller)架構模式設計,按照模型、視圖、控制器實現(xiàn)程序分層管理,對應到編碼為表述層、業(yè)務邏輯層和數據庫層。表述層是用戶訪問控制的展現(xiàn)層,不同的用戶擁有不同的權限,在表述層顯示出不同的功能。業(yè)務邏輯層是系統(tǒng)用戶訪問控制的關鍵層,負責處理表述層提交的請求,業(yè)務邏輯層從數據庫層、XML 配置文件中讀取用戶的權限數據,通過計算處理、整合、傳遞到用戶表述層。數據庫層是數據管理層,按照業(yè)務邏輯層的請求提取數據。數據庫層使用數據持久化技術,使用ORM(對象/關系映射)實現(xiàn)實體域對象的持久化,將內存中的數據模型與存儲模型實現(xiàn)相互轉化,封裝數據訪問細節(jié),將面向關系的關系數據模型映射為面向對象的域模型。
科技計劃項目管理系統(tǒng)的設計與開發(fā),證明了基于角色訪問控制能很好地完成系統(tǒng)對用戶及用戶權限的管理,保證系統(tǒng)安全、穩(wěn)定運行,并為系統(tǒng)功能擴展奠定了良好的基礎。但是在實施過程中,基于角色訪問控制也存在一些不足,如權限校驗比較復雜,在進行權限校驗時需要不斷遍歷和遞歸,造成了系統(tǒng)性能的下降。對于數據權限的支持不夠,沒有明確的數據權限模型,科技計劃項目管理系統(tǒng)使用的是經過重構的數據權限模型,已經和 RBAC 模型有一定的出入,造成數據權限的校驗實現(xiàn)起來相對低效。
[1]訪問控制技術[EB/OL].http://baike.baidu.com/view/1836943.htm?fr=Aladdin.
[2]楊光明,李先國.RBAC模型在醫(yī)療系統(tǒng)中的研究與應用[J].現(xiàn)代電子技術,2013(24):25-28.
[3]吳姣.基于 RBAC的權限管理研究與設計[J].計算機應用,2014(1):91-94.
[4]周來,趙登科.基于RBAC模型的用戶權限在0A中的研究[J].應用技術與研究,2013(11):47-48.
[5]唐成華,陳新度,陳新.管理信息系統(tǒng)中多用戶權限管理的研究及實現(xiàn)[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