涂小琴,吳 晟
(1. 云南師范大學文理學院,云南 昆明 650222;2. 昆明理工大學,云南 昆明 650222)
基于細粒度權限質檢管理系統的研究與設計
涂小琴,吳 晟
(1. 云南師范大學文理學院,云南 昆明 650222;2. 昆明理工大學,云南 昆明 650222)
本文首先針對現行RBAC模型的角色管理權限粒度不夠細化的特點,提出了一種改進的細粒度權限模型,并詳細描述了該改進模型的特點和身份驗證的具體過程。并結合實際的質量檢測管理系統,從數據庫設計和角色管理兩個方面,闡述了改進的細粒度權限控制在.NET中的設計與實現的具體過程。
權限粒度;細粒度;身份驗證;訪問控制
數據庫權限設計是管理信息系統的一個重要組成部分。合理的權限設置可以有效地保護數據,方便用戶操作。依據員工的工作崗位及業務操作的不同來設置權限,可以防止無關人員的越權操作,從而保護數據庫安全,防止信息泄露。
本文應云南省信息檢測中心的實際需求,以質量檢測綜合信息管理系統為背景,開發了一個集樣品信息錄入、檢測結果登記、審核、批準、報表生成等為一體的信息管理系統,實現了分析測試管理工作的網絡化無紙化辦公,使分析測試中心的樣品檢測工作更加高效便捷。該系統在權限訪問控制方面,采用細粒度與現行的 RBAC[2],[5](基于角色的訪問控制)相結合,一方面提高了授權工作的靈活性和高效性,另一方面又能根據具體的實際需要分配“最小化”[1,5]的用戶權限集,實現了細粒度權限控制的需求。
訪問控制(Access Control)[3]是從計算機系統的處理功能方面對數據提供保護,其目標是為了防止非法用戶進入系統或合法用戶對系統資源非法使用。
RBAC基于角色的權限訪問控制(Role-Based Access Control),這種方式可以靈活的設置用戶角色,靈活的設置用戶的權限,可以人為的對很多的頁面進行保護,彌補了自主訪問的不足點。同時,用戶并不直接對功能模塊,而是由用戶所賦予的角色來定,角色確定了用戶能夠訪問的權限。這樣就大大的提高了授權的效率。
由于RBAC是基于角色的訪問控制,而“角色”是一系列權限的集合。因此,該訪問方式將權限的集合作為分配的基本單元。管理員授予用戶固定服務器角色或固定數據庫角色,以執行特定的操作,但這些角色的權限通常會遠遠超出簡單任務的需要?!白钌偬貦唷钡脑瓌t,要求用戶只能擁有完成工作所需的最低權限,因此,為達到小目標而分配用戶高級角色就違背了該原則。
這就給更細化的授權問題帶來了不便。因此,需要一種改進的更細分的訪問控制方式來解決實際的問題。
粗粒度:僅在類別層面上關注對象,不關注對象的特定的實例;例如,本系統中,對檢測樣品的查詢,統計等操作,對所有的用戶都一視同仁,并不具體區分用戶的級別,是普通用戶還是特殊用戶。
細粒度:是對粗粒度的進一步補充,是在考慮粗粒度的基礎上,進一步關注具體對象的實例,屬于業務邏輯的一部分。
簡單來說,細粒度權限問題就是判斷操作者在何種情況下對某種資源進行了怎樣的操作。權限控制過程,就是判斷該問題是否滿足的過程。
操作者:權限的所有者和使用者(包括用戶,群組,角色等)。
資源:權限針對的具體對象(資源,模塊等)操作:具體的操作權限[7,8]。
操作環境;權限正常使用的環境和上下文(滿足身份驗證或是滿足操作條件)。
操作者,角色,用戶、資源之間的關系如圖 1所示。
在細粒度權限中,用戶的身份驗證是一個復雜的過程。如圖2所示。在細粒度身份驗證的過程中,根據實際需要,我們把用戶分成不同的角色,或者用戶組,身份驗證的過程,不但要驗證該用戶本身的身份,還要驗證它是屬于哪個角色,屬于哪個具體的群組。而訪問授權是根據角色來設置的,該角色可以訪問哪些資源,不可以訪問哪些資源。因此還要進一步判斷,該角色或是該群組是否具有某種操作權限,針對具體的模塊是否具備某種操作權限。只有當所有的判斷均為真,系統才允許該用戶登陸。這個過程需要適時地查看數據表,只有所有的信息都驗證通過,才允許用戶進行操作。

圖1 細粒度權限模型各概念的關系圖Fig.1 Relation diagrams of fine grained permission model concepts
細粒度的權限控制與業務邏輯具有很大的相關性。針對不同的業務邏輯,常常使用不同的權限控制策略。因此,從這種意義上講,粗粒度的權限控制更有通用性,便于將其形成為一個模型架構,更有重用價值;而將細粒度的權限控制就不行。因此細粒度控制一般與粗粒度相結合,才能更高效地解決權限控制問題。
權限設計的過程主要包括兩個部分:正向授權和負向授權。正向授權,指在開始時,假定主體沒有任何權限,然后根據需求授予權限,適用于權限要求嚴格的系統。負向授權,指在開始時,假定主體有所有權限,然后將某些特殊權限收回。正向授權包括三個步驟:創造權限、分配權限、使用權限[6]。
1. 正向授權
(1)創造權限
在權限設計和實現的過程中,設計者會將整個系統劃分為不同的功能模塊,每個不同的模塊應該分配哪些權限。在本系統中以其它管理中的科室管理為例,該模塊用戶應該具備查看、增加、修改、刪除等某一具體科室的權限,在創造權限時,還沒有將權限與具體的角色用戶綁定,只是邏輯意義上的權限。
(2)配權限
在RBAC模型中,權限是與角色對應起來的。將固定的權限授予某個角色,該角色就擁有了一系列的操作許可。分配權限正是管理員將邏輯意義上權限具體化的過程。本系統中,仍以其他管理中的科室管理為例,管理員將修改某一科室的操作權限授予計量所所長,那么計量所所長就擁有了修改本科室的權限。
(3)使用權限
用戶使用管理者分配的權限可以訪問系統的某個具體模塊。用戶是權限的具體使用者,只有管理員設置過的權限,用戶才可以使用,只有用戶所在的角色擁有的權限才可以使用。本系統例如只有特殊用戶(管理員)才能對某個數據信息進行刪除操作,普通的用戶未經授權是不允許的。

圖2 細粒度身份驗證的具體流程Fig.2 The specific process of fine-grained authentication
2. 負向授權:收回權限。
用戶的操作權限(增加、刪除、修改、查找)的控制,主要通過以下幾個方面來實現:數據庫權限設計、角色管理。以下就分兩個方面來具體闡述細粒度權限在.NET中的設計和實現。
根據本系統的實際需求,我們設計了8個數據表來進行數據庫的權限設計:角色權限表、角色表、用戶角色表、用戶表、科室表、角色功能表、功能說明表、功能模塊表。在這幾個數據表中,科室表對應于細粒度模型中的群組表(Group),功能模塊表和功能應用表兩部分對應于模型中的資源(Resource)。各數據表的具體字段及對應關系如圖3。
在設計數據表時,設計特定的字段,通過修改特定字段的值來實現權限控制。比如,角色權限表中的Value字段和角色表中的Power字段,都是一個由0或1組成的字符串。而功能模塊表中的功能ID字段表示該功能在角色表的Value字段中位置,如果該位置對應的數值是0,表示該角色無此權限,如果值為 1,則表示該角色擁有此權限。角色權限表中的 value值顯示了角色是否擁有該操作權限的情況。通過數據表的這種字段設置,在用戶登錄時,系統通過檢測該角色的Power值,便可對用戶進行權限控制。
角色的添加、刪除、修改等是實現權限控制的重要方面。通過角色管理,實現權限的授予,修改,回收等,以此控制用戶的操作。

圖3 數據表具體字段與關聯Fig.3 Specific fields and associations of data tables
在添加新角色時,先將角色值置 0,然后利用.NET類庫中自帶的Replace函數將角色值中的對應的功能編號位的值修改為 1。則該角色就具備了對特定模塊的特定操作權限,角色與用戶對應,當添加新用戶時,為用戶授予相應的角色,該用戶就具備了該角色所有的操作權限。例如,在本系統中,實驗室管理模塊有四個主要功能:增加、修改、刪除、查看。每個功能對應唯一的ID功能代號;建立一個角色(計量所所長),把上面的功能代碼加到這個角色擁有的權限中,并保存到數據庫中;添加一個員工的賬號,并把一種或幾種角色賦給這個員工。這樣他登錄到系統中將會只看到他擁有權限的那些模塊。在刪除角色時,由于角色與用戶對應,角色被刪除后,擁有該角色的用戶的相應權限也被收回。修改角色時,進入該角色的權限列表,根據需要對相應權限進行選擇或修改。
本文從數據訪問控制的現狀出發,分析了現行訪問控制的不足,提出了一種改進的細粒度的角色訪問控制方法。并以現實中的質量檢測信息管理系統為原型,在此基礎上闡述了細粒度權限控制在.NET中的設計與實現。
[1] Offer, J. A. Modern Database Management[M]. Beijing: Publishing House of Electronic Industry: 2014: P165-207.
[2] 王靜宇, 董景楠, 譚躍生. 滿足靜態角色分離約束的角色劃分方法[J]. 計算機工程, 2017-11.
[3] 陳彥竹, 郝天曙. 基于角色信任度動態監控的訪問控制研究[J]. 計算機技術與發展; 2017-7.
[4] 李戰懷等. 對象—關系數據庫管理系統原理與實現[M].北京: 清華大學出版社; 2014.
[5] 孟憲虎. 馬雪英, 鄧緒斌.大型數據庫系統管理、設計與實例分析—基于SQL Server[M]. 北京: 電子工業出版社;2014: P273-397.
Research and Design of Fine Grained Permission Based Quality Inspection Management System
TU Xiao-qin1, WU Sheng2
(1. The college of arts and sciences Yunnan normal university Kunming 650222;2. kunming university of science and technology 650222 Kunming China)
Firstly, an improved fine-grained permissions model is offered in this thesis, in view of that current role model for RBAC permissions granularity is not enough detailed. And the detailed description of the characteristics and the specific procedure of fine-grained authentication to the improved model is also given.Then,based on the actual Quality Detection Management System, the specific process of design and implementation to improved fine-grained permissions control in . NET are described ,from both Database design and roles management.
Granular permission; Fine-grained permission; Verification of identity; Access control
TP319
A
10.3969/j.issn.1003-6970.2017.12.016
本文著錄格式:涂小琴,吳晟. 基于細粒度權限質檢管理系統的研究與設計[J]. 軟件,2017,38(12):87-89
云南省教育廳科學研究基金項目(No:2016ZDX253)
涂小琴(1981-),女,講師,主要研究方向:軟件工程及數據分析。