亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于RBAC與ACL的權(quán)限控制系統(tǒng)的實現(xiàn)

        2015-05-15 03:19:48洪布金余穩(wěn)定
        現(xiàn)代計算機 2015年7期
        關(guān)鍵詞:用戶模型系統(tǒng)

        洪布金,余穩(wěn)定

        (四川大學計算機學院,成都 610065)

        基于RBAC與ACL的權(quán)限控制系統(tǒng)的實現(xiàn)

        洪布金,余穩(wěn)定

        (四川大學計算機學院,成都 610065)

        實現(xiàn)一個基于RBAC思想與Spring Security ACL模型相結(jié)合的權(quán)限控制系統(tǒng),詳細闡述該系統(tǒng)的實現(xiàn)原理與工作機制。RBAC與傳統(tǒng)的授權(quán)策略相比它更加安全、靈活易維護。該系統(tǒng)將RBAC的思想與ACL模型相結(jié)合,能達到細粒度的數(shù)據(jù)級權(quán)限訪問控制,實踐表明,該系統(tǒng)有良好的擴展性與易用性。

        RBAC;Spring Security ACL;權(quán)限控制;數(shù)據(jù)級訪問控制;細粒度

        0 引言

        隨著互聯(lián)網(wǎng)與計算機的高速發(fā)展,Web系統(tǒng)應用越來越廣泛,在帶來方便的同時也增加了各種各樣的攻擊與信息的竊取,尤其是對一些信息比較敏感的系統(tǒng),信息一旦遭到非法訪問,將造成很大的損失,對資源的訪問控制越來越成為一個系統(tǒng)的核心功能?;诮巧脑L問控制(RBAC)由于其簡單性、易擴展性使其成為業(yè)界廣泛接受和應用的授權(quán)參考模型[1~3]。RBAC在用戶與資源之間增加角色層,由于角色的變更的頻率相對于用戶的變更頻率要低,通過給角色授權(quán)可以降低授權(quán)的復雜度,易于維護。隨著應用的復雜度不同,對資源的訪問控制需求也不相同。RBAC一般能做到URL級別與頁面元素的權(quán)限控制,也就是功能級的權(quán)限制,但是無法做到數(shù)據(jù)級的權(quán)限訪問控制,本文通過將RBAC與訪問控制列表ACL相結(jié)合,實現(xiàn)了一個達到數(shù)據(jù)級權(quán)限控制的系統(tǒng)[4~5],有很好的可擴展性與易維護性。

        1 RBAC模型與ACL簡述

        美國國家標準與技術(shù)研究院(NIST)標準RBAC模型有4個部件模型組成[1],這4個模型組件分別是基本模型(RBAC0)、型(RBAC1)、(RBAC2)和同一模型(RBAC3),其中應用最為廣泛的為RBAC0,本系統(tǒng)就是在RBAC0的基礎上進行擴展,RBAC0的模型如圖1所示。

        圖1 RBAC0模型

        RBAC0主要包括5個元素,即用戶(user)、角色(role)、目標(object)、操作(operation)以及許可權(quán)限(permission)。系統(tǒng)通過給角色授權(quán)而不是給用戶授權(quán),再將角色與用戶關(guān)聯(lián)起來,這樣用戶就獲得了角色被授予的權(quán)限。當用戶登錄系統(tǒng)的時候,通過session會話激活用戶所屬的角色,來獲得對系統(tǒng)的訪問控制。由于角色/權(quán)限之間的變化比角色/用戶關(guān)系之間的變化相對要慢得多,減少了授權(quán)管理的復雜性,降低管理開銷。

        訪問控制列表(ACL)是針對數(shù)據(jù)級的權(quán)限訪問控制而提出來的,由于應用的復雜度不同,某些應用需要對實體對象進行訪問控制,例如在一家公司,業(yè)務員都擁有相同的頁面,但是只有被授權(quán)的用戶才能看到相應的報表。Spring Security提供了對訪問控制列表的實現(xiàn)[6],采用Spring Security的實現(xiàn)可以方便地對系統(tǒng)中的領(lǐng)域?qū)ο笤O置不同的權(quán)限。ACL主要包括4個基本的對象,它們之間的關(guān)系如圖2所示,箭頭指向代表被參照的一方:

        圖2 ACL實體對象之間的關(guān)系

        (1)ACL_SID:標識授權(quán)的主體,一般來說是訪問系統(tǒng)的用戶,是權(quán)限的授予者。

        (2)ACL_OBJECT_IDENTITY:系統(tǒng)中的領(lǐng)域?qū)ο?,也就是被訪問控制的對象。

        (3)ACL_ENTRY:系統(tǒng)中被訪問控制對象的訪問規(guī)則,即一個用戶對一個對象的操作權(quán)限。

        (4)ACL_CLASS:表示系統(tǒng)中訪問控制對象的類的全限定名。

        上述4個實體對象對應著數(shù)據(jù)庫中的4張表,當用戶創(chuàng)建一個實體對象的時候,系統(tǒng)會在上述4張表中插入關(guān)于這個對象的訪問控制信息。用戶訪問一個實體對象的時候會根據(jù)這4張表中的信息做出相應的判斷。

        2 系統(tǒng)的核心對象模型設計

        根據(jù)RBAC與ACL的模型,設計出系統(tǒng)的核心對象模型,如圖3所示。

        為了突出權(quán)限控制的重點部分,此數(shù)據(jù)庫模型簡化了真實數(shù)據(jù)庫中的一些字段,其中箭頭指向的一方代表被參照的一方。下面就模型中的一些重要的對象以及它們之間的關(guān)系進行一些說明:

        部門:部門是企業(yè)實現(xiàn)組織機構(gòu)的一個抽象。部門并非孤立存在,而是和權(quán)限緊密聯(lián)系。此處的部門并非實際業(yè)務系統(tǒng)中的部門,而是為了權(quán)限管理模塊單獨抽象出來的一個概念,將用戶與角色都與之關(guān)聯(lián),根據(jù)權(quán)限的靜態(tài)分離原則[7],只有角色與用戶在同一個部門下才能將角色賦給用戶。

        圖3 數(shù)據(jù)庫模型

        用戶:登錄系統(tǒng)的使用者,這是一個邏輯抽象的概念。在本系統(tǒng)中,人員分為業(yè)務人員與管理人員,人員隸屬于部門。現(xiàn)實中的人可以擁有系統(tǒng)中的一個或者多個用戶。

        角色:角色是現(xiàn)實中某一個職位或者崗位的職責與權(quán)利的抽象,是為了解耦授權(quán)的復雜度而抽象出來的邏輯概念,在本系統(tǒng)中角色分為業(yè)務角色與管理角色,與人員的類型相對應,同一類型的角色與人員才能相互關(guān)聯(lián),角色也隸屬于部門。

        ACL_SID,即安全對象,是系統(tǒng)中的授權(quán)主體,將ACL_SID與用戶表進行關(guān)聯(lián),可以控制用戶對領(lǐng)域?qū)ο蟮脑L問。ACL_CLAS與ACL_OBJECT_IDENTITY唯一標識系統(tǒng)中的實體對象。ACL_ENTRY是實體對象的訪問規(guī)則。

        資源:資源即系統(tǒng)中將被用戶操作與訪問的對象,在本系統(tǒng)中資源主要包括菜單、菜單頁面對應的UI元素以及實體對象。

        權(quán)限即主體擁有的對客體資源進行可進行操作的集合。為了防止權(quán)限的擴散,根據(jù)最小特權(quán)的原則,在本系統(tǒng)中權(quán)限可以分為兩類:業(yè)務權(quán)限與管理權(quán)限,其中業(yè)務權(quán)限即用戶直接通過角色間接擁有的菜單權(quán)限,用戶登錄后便可看到對應的功能菜單并處理相關(guān)的模塊業(yè)務;管理權(quán)限是系統(tǒng)管理人員通過管理角色擁有管理角色后,則管理人員可以給其他的業(yè)務人員授予業(yè)務權(quán)限。

        該模型中的主要關(guān)系有:分配資源操作RA(Resource Assignment)、分配用戶權(quán)限PA(Privilege Assignment)、分配角色到部門RDA(Role Department Assignment)、分配用戶到部門UDA(User Department Assignment),如圖4所示。

        圖4 對象關(guān)系

        分配資源RA,主要涉及到URL資源以及頁面元素資源以及實體對象,分配URL資源到角色,分配頁面元素到相關(guān)的menu,創(chuàng)建實體對象。

        分配權(quán)限PA,將角色關(guān)聯(lián)到用戶,實現(xiàn)用戶與角色映射。UDA,實現(xiàn)用戶與部門的映射,RDA實現(xiàn)角色與部門的映射,這樣可以做到權(quán)限的靜態(tài)分離。只有屬于同一個部門的角色與用戶才能相互映射。

        3 權(quán)限控制的實現(xiàn)

        3.1 功能級權(quán)限訪問控制實現(xiàn)

        權(quán)限的控制主要分為功能級訪問控制以及數(shù)據(jù)級訪問控制,其中功能級的訪問控制主要通過前臺來實現(xiàn),其控制流程如圖5所示。

        圖5 功能級權(quán)限控制流程圖

        每個用戶都擁有一個或者幾個角色,在用戶登錄系統(tǒng)的時候,用戶通過用戶名與密碼的驗證后,激活會話,系統(tǒng)對用戶的角色進行判斷,根據(jù)用戶的角色信息去后臺加載用戶所擁有的URL信息,返回前臺生成功能樹的樹形接口入口點。當用戶通過功能樹訪問系統(tǒng)中頁面的時候,系統(tǒng)會根據(jù)用戶的角色生成對應的UI元素控制表,用戶進入界面后,根據(jù)UI元素控制表能夠控制該用戶所對應的各個界面存在的UI元素,達到對用戶訪問系統(tǒng)資源的控制。采用上述管理方式,可以比較好地解決功能級權(quán)限的訪問控制,在滿足安全性要求前提下,簡化了人員角色指派和管理工作。但是在系統(tǒng)演化階段可能需要對實體對象進行相應的訪問控制,該模型無法滿足要求,下面將分析數(shù)據(jù)級權(quán)限的控制實現(xiàn)。

        3.2 數(shù)據(jù)級權(quán)限訪問控制實現(xiàn)

        對于數(shù)據(jù)級的訪問控制是通過ACL來實現(xiàn)的,ACL定義了用戶對實體對象的訪問規(guī)則,當用戶訪問實體對象的時候是通過方法來調(diào)用的,所以要對實體對象進行訪問控制,必須要在訪問的調(diào)用前根據(jù)ACL里的規(guī)則進行邏輯判斷,判斷用戶時候擁有對實體對象的權(quán)限,但是這種設計對于簡單的系統(tǒng)還是可以接受的,對于復雜的系統(tǒng),用戶的訪問控制策略頻繁地變化,會導致用戶權(quán)限的判斷邏輯不停地改變,而且容易導致方法內(nèi)的邏輯混亂。

        (1)AOP簡介

        對于這種橫切關(guān)注點問題,可以使用AOP(Aspect Oriented Programming)技術(shù)很好地解決這個問題[9~10]。在面向?qū)ο蟮某绦蜷_發(fā)與設計中,人們發(fā)現(xiàn)在模塊化單元中,某些邏輯總是共有的,而且這些業(yè)務邏輯與系統(tǒng)的核心業(yè)務邏輯的關(guān)聯(lián)性很弱,它們留在模塊中是因為外部需求強加給核心模塊的,例如:日志、權(quán)限、事物等。那么,把這些共有的邏輯從模塊中剝離出來,再在適當?shù)臅r候注入回去,將會明顯地改善模塊的可讀性與重用性。

        (2)AOP實現(xiàn)的權(quán)限管理

        通過ACL定義了實體對象的訪問控制規(guī)則,將對這些規(guī)則的判斷邏輯從方法的業(yè)務邏輯代碼里分離出來,定義成一個一個切面,而當對這些切面進行修改的時候,也不會改變方法內(nèi)的業(yè)務邏輯。下面給出一個簡單的切面流程圖,如圖6所示。

        圖6 切面流程圖

        AspectJ是目前應用最廣泛的AOP語言[10],它既是AOP的語言規(guī)范也是AOP的實現(xiàn)。把系統(tǒng)中所有對實體對象的訪問方法都集中到一個包下,然后利用AspectJ定義對這個包下的方法訪問的切面的Pointcut,就可以達到對實體對象的訪問控制,例如:我們把對工資對象訪問的方法都放在com.mycompany.service包中,這樣可以為這些訪問工資的方法,定義Pointcut了:

        最后引入AspectJ代碼;利用around()的Advice,而Advice就是通過讀取ACL里的規(guī)則來判斷用戶的訪問權(quán)限。

        這樣修改工資的方法,判斷用戶的權(quán)限的代碼全部分離出來,所有的關(guān)于權(quán)限判斷的代碼通過Aspect來定義,將修改工資的方法完全與權(quán)限的判斷解耦了,當系統(tǒng)中的訪問控制策略發(fā)生變化時,只需要修改Aspect中的代碼,而具體的業(yè)務邏輯代碼無需修改。

        4 結(jié)語

        本文論述了一種基于RBAC與ACL相結(jié)合的模型,通過AOP來實現(xiàn)數(shù)據(jù)級訪問控制的系統(tǒng)。實踐表明,采用基于RBAC模型的權(quán)限管理具有以下優(yōu)勢:由于角色/權(quán)限之間的變化比角色/用戶之間的變化要緩慢得多,減少了授權(quán)管理的復雜性,降低了管理開銷;而且通過ACL與AOP的結(jié)合,實現(xiàn)了數(shù)據(jù)級的訪問控制,能夠靈活地支持應用系統(tǒng)的安全策略,并對系統(tǒng)的變化有很大的伸縮性,在操作上,權(quán)限的分配直觀,易于理解使用。

        [1] Sandhu R.S.Role-Based Access Control Models[J].IEEE Computer,1996,29(2):38~47

        [2] 徐震,李斕,馮登國.基于角色的受限委托模型[J].軟件學報,2005,16(5):970~978

        [3] 鐘華,馮玉琳,姜洪安.擴充角色層次關(guān)系模型及其應用[J].軟件學報,2000,11(6):779~784

        [4] 唐建,徐罡,許舒人.一種數(shù)據(jù)級安全訪問控制方案[J].計算機系統(tǒng)應用,2013,22(9):81~85

        [5] 馮志亮,譚景信.分級的行列級權(quán)限系統(tǒng)的設計與實現(xiàn)[J].計算機工程與設計,2011,32(10):3274~3277

        [6] Domain Object Security(ACLs).Security(ACLs).http://docs.spring.io/springsecurity/site/docs/3.2.4.RELEASE/reference/htmlsingle

        [7] 肖璐.基于RBAC的責任分離機制的研究與實現(xiàn)[D].北京交通大學,2008

        [8] 胡和平.基于J2EE的權(quán)限管理框架實現(xiàn)[J].計算機工程與科學,2007,29(6):109~112

        [9] 劉天陽.AOP與權(quán)限控制研究[D].大連理工大學,2005

        [10] The Aspect J Developer's Notebook.http://www.eclipse.org/aspectj/doc/released/adknotebook/index.html

        Implementation of Access Control System Based on RBAC and ACL

        HONG Bu-jin,YU Wen-ding
        (Department of Computer Science,Sichuan University,Chengdu 610065)

        Implements an access control system based on the combination of RBAC and Spring Security ACL,describes the principle and mechanism of the system in details.Compares with traditional authorization policy,RBAC ismore secure,flexible and easier tomaintain.Combines the system the ideological of RBAC with AC Lmodel phase,achieves the data level permissions fine-grained access control.Practice shows that,ithas good scalability and ease of use.

        RBAC;Spring Security ACL;Access Control;Data-Level Access Control;Fine-Gained

        1007-1423(2015)07-0045-05

        10.3969/j.issn.1007-1423.2015.07.013

        洪布金(1989-),男,安徽蕪湖人,碩士研究生,研究方向為網(wǎng)絡與信息安全

        余穩(wěn)定(1989-),男,安徽六安人,碩士研究生,研究方向為網(wǎng)絡與信息安全

        2014-12-30

        2015-02-01

        猜你喜歡
        用戶模型系統(tǒng)
        一半模型
        Smartflower POP 一體式光伏系統(tǒng)
        WJ-700無人機系統(tǒng)
        ZC系列無人機遙感系統(tǒng)
        北京測繪(2020年12期)2020-12-29 01:33:58
        重要模型『一線三等角』
        重尾非線性自回歸模型自加權(quán)M-估計的漸近分布
        連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
        關(guān)注用戶
        商用汽車(2016年11期)2016-12-19 01:20:16
        3D打印中的模型分割與打包
        關(guān)注用戶
        商用汽車(2016年6期)2016-06-29 09:18:54
        爆操丝袜美女在线观看| 国产在线欧美日韩精品一区二区| 一本色道av久久精品+网站| 国产人成精品综合欧美成人| 西西人体大胆视频无码| 国产一级av理论手机在线| 青青草视频在线观看精品在线| 亚洲乱码av乱码国产精品| 免费观看羞羞视频网站| 国产微拍精品一区二区| 国产福利97精品一区二区| 国产在线一区二区三区四区乱码| 97人伦影院a级毛片| 蜜臀aⅴ国产精品久久久国产老师| 婷婷一区二区三区在线| 在线免费观看亚洲毛片| 丝袜美腿制服诱惑一区二区| 国产乱人对白| 黑人大荫道bbwbbb高潮潮喷| 宅男噜噜噜| 日韩av中文字幕亚洲天| 中文字幕人妻饥渴浪妇| 老熟女重囗味hdxx70星空| 中文字幕久久久精品无码| 亚洲无码图| 蜜桃视频一区二区三区四| 中文亚洲av片不卡在线观看| 少妇人妻偷人精品视频| 偷拍区亚洲区一区二区 | 人妻1024手机看片你懂的| 体验区试看120秒啪啪免费| 免费a级毛片无码| 亚洲国产精品一区二区第四页| 精品无吗国产一区二区三区av| 国产人妖av在线观看| 亚洲av色香蕉一区二区三区老师| 一本色综合亚洲精品蜜桃冫| 国产精品无码久久久久久久久作品| 一区二区精品天堂亚洲av| 国产亚av手机在线观看| 91精品手机国产在线能|