国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于RBAC模型的權(quán)限管理改進(jìn)研究與實現(xiàn)

2015-12-23 01:09:06湯文亮
計算機工程與設(shè)計 2015年5期
關(guān)鍵詞:欄目框架動態(tài)

湯文亮,李 科

(華東交通大學(xué) 軟件學(xué)院,江西 南昌330013)

0 引 言

傳統(tǒng)的業(yè)務(wù)審批已無紙化,不再由人充當(dāng)作材料送審者,業(yè)務(wù)審批都由審批系統(tǒng)完成,這就要求審批系統(tǒng)足夠可靠和安全,能實現(xiàn)信息安全中最基本的CIA-(保密性(confidentiality)、完整性(integrity)、可用性(availability))特性[1]。

業(yè)務(wù)審批流程的控制,由審批系統(tǒng)核心模塊——權(quán)限管理負(fù)責(zé)實現(xiàn),這就必須用到訪問控制技術(shù)[2]。許多學(xué)者也做了很多關(guān)于訪問控制技術(shù)的研究,其中基于角色的訪問控制RBAC-(role-based access control)就是一種極具代表性的訪問控制技術(shù)。文獻(xiàn)-[3,4]提出了一種RBAC96模型-(也稱RBAC 參考模型),分為4 種小模型:基本模型、角色分級模型、角色限制模型、統(tǒng)一模型,用戶不直接與權(quán)限關(guān)聯(lián),通過角色來連接二者;文獻(xiàn)-[5,6]中指出RBAC96模型的短處,它是一種強制訪問控制,同時也是一個靜態(tài)概念,用戶、角色和權(quán)限的關(guān)系要事先強制設(shè)定,而且權(quán)限級數(shù)通常是單一級別;文獻(xiàn)-[7]提出了一種RBAC97模型,包括URA97、PRA97、RRA97這3部分,對ARBAC97模型的研究還在繼續(xù)中;文獻(xiàn)-[8]提出了一種DRBAC模型,是在動態(tài)結(jié)盟環(huán)境下的分布式RBAC 模型,擁有3個特性,能夠保證權(quán)限訪問的機密性,不足的是權(quán)限指派方式比較保守,不夠靈活。

目前,業(yè)務(wù)審批系統(tǒng)通常要求權(quán)限可多級、能動態(tài)管理,傳統(tǒng)的RBAC卻無法滿足,所以在現(xiàn)有的RBAC 模型基礎(chǔ)上,提出了一種新型的RBAC 模型-(new role-based access control,NRBAC)。本文做了相關(guān)的研究和詳細(xì)的闡述,并以-“集裝箱碼頭設(shè)備維護(hù)及工務(wù)調(diào)度管理系統(tǒng)-(簡稱DMM 系統(tǒng))”為開發(fā)實例,利用Java主流的SSH 框架和JS腳本語言等相關(guān)技術(shù),對NRBAC 模型做了具體的設(shè)計和實現(xiàn),結(jié)果驗證了NRBAC 模型的可行,最后指出了對NRBAC模型下一步的研究工作。

1 相關(guān)技術(shù)介紹

1.1 JavaScript技術(shù)

JavaScript是一種由解釋器執(zhí)行的面向?qū)ο蟮某绦蛟O(shè)計語言[9],也一種具有相對安全性的客戶端腳本語言。因此,目前許多Web系統(tǒng)都積極地使用JavaScript客戶端腳本語言,以遵循Web 2.0的趨勢,它可以使網(wǎng)頁頻繁重組、友好地與用戶交互[9]。

DMM 系統(tǒng)權(quán)限動態(tài)地創(chuàng)造、分配、撤銷和欄目的生成等就是依靠JavaScript技術(shù)實現(xiàn)的。

1.2 SSH 框架簡介

對一個Web系統(tǒng)而言,良好的系統(tǒng)架構(gòu)可以加快系統(tǒng)整體的開發(fā)速度和保障系統(tǒng)的安全性,并且方便未來的拓展和后期維護(hù)工作。在這種情況下,針對Web開發(fā)的各種框架便應(yīng)運而生了,SSH 框架 (struts2+sping+hibernate)就是其中之一[10]。如圖1所示,一般分為5層架構(gòu):表現(xiàn)層、業(yè)務(wù)邏輯層、數(shù)據(jù)訪問層、持久層和數(shù)據(jù)庫層[11]。

圖1 5層架構(gòu)模型

表現(xiàn)層,主要負(fù)責(zé)與用戶進(jìn)行交互的jsp或html頁面,通過調(diào)用業(yè)務(wù)邏輯層代碼實現(xiàn)判斷、顯示等操作,主要體現(xiàn)在Action層中,由Struts2框架實現(xiàn)。業(yè)務(wù)邏輯層和數(shù)據(jù)庫訪問層基本類似,但數(shù)據(jù)庫訪問層是通過Hibernate來完成數(shù)據(jù)操作的,而業(yè)務(wù)邏輯層中是通過調(diào)用數(shù)據(jù)訪問層來實現(xiàn),在具體項目中,業(yè)務(wù)邏輯層也叫Service層。數(shù)據(jù)訪問層又稱DAO 層,在該層中包含了所有的操作數(shù)據(jù)的方法,如保存數(shù)據(jù)、刪除數(shù)據(jù)、修改數(shù)據(jù)和查詢數(shù)據(jù),它包含3個組成部分,分別是DAO 接口、DAO 實現(xiàn)類和DAO工廠類。持久層主要包含2個部分,一個是Hibernate映射文件 (實體名.hbm.xml),一個是實體類。數(shù)據(jù)訪問層和持久層,都由hibernate框架負(fù)責(zé)。數(shù)據(jù)庫層用來接收數(shù)據(jù)訪問層提交的數(shù)據(jù),也為數(shù)據(jù)訪問層提供數(shù)據(jù)反饋。但數(shù)據(jù)庫層一般由數(shù)據(jù)庫管理系統(tǒng)負(fù)責(zé),與SSH 框架沒有直接聯(lián)系,只需在applicationContext.xml配置文件中配置所連接的數(shù)據(jù)庫參數(shù)即可。

Spring框架是近幾年非常流行的開源的輕量級框架,它的核心是控制反轉(zhuǎn)或依賴注入 (IoC)[12]。Spring框架實際上是整合struts2 框架和hibernate框架的黏合劑,利用spring的IoC可以明確地定義組件接口,方便開發(fā)者獨立地開發(fā)各個組件,然后根據(jù)組件間的依賴關(guān)系組裝運行,很好地把struts2和hibernate結(jié)合起來,而且spring的事務(wù)管理把hibernate對數(shù)據(jù)庫的操作進(jìn)行了事物配置,即SSH框架利用spring容器統(tǒng)一管理數(shù)據(jù)源,極其方便地為DAO組件提供支持。

2 NRBAC模型的基本思想

NRBAC模型是以RBAC96 模型為原型,融入ARBAC97模型的角色管理思想,并引入DRBAC 的前2 種特性,是對RBAC的思想整合和創(chuàng)新,并且對RBAC96模型的權(quán)限/許可權(quán)集 (PRMS)做了具體的細(xì)分和改進(jìn),以此引出 “欄目”的概念。

2.1 NRBAC模型簡介

NRBAC模型首先將權(quán)限管理進(jìn)行了操作上的分離,分解為3個步驟:①權(quán)限的創(chuàng)造;②權(quán)限的分配\撤銷;③權(quán)限的使用。如圖2所示 (實線表示具體操作,虛線表示數(shù)據(jù)關(guān)聯(lián)關(guān)系),重點放在了3個步驟的前兩個,這也是實現(xiàn)權(quán)限可多級、動態(tài)的理論基礎(chǔ)。

然后將操作和 “欄目”進(jìn)行動態(tài)綁定 (通過某些技術(shù),如JS技術(shù)等)形成權(quán)限,來提高角色訪問時的可靠性和安全性,防止各個角色間的權(quán)限混亂,使得用戶進(jìn)行權(quán)限使用時能夠防止非法訪問現(xiàn)象的出現(xiàn)。

2.1.1 NRBAC模型的基本元素

如圖2所示,對該模型的基本元素定義如下:

U,R (AR,OR),P,S,UI:用戶集 (USERS),角色集 (ROLES),管 理 員 角 色 集 (AR),其 它 角 色 集(OR),權(quán)限集 (PRMS),會話 (SESSIONS),用戶信息(USER INFORMATION)。

{OPS,OBS,RS}εPRMS:權(quán)限操作 (OPS),被操作的對象 (OBS),由對象管理的資源 (RS),三者共同組成了權(quán)限集 (PRMS),其中被操作的對象 (OBS)和由對象管理的資源 (RS),共同組成了 “欄目”這個概念;

ROLES={r|(rεar)∪(rεor)}:管理員角色集 (AR)和其它角色集(OR)統(tǒng)一歸屬于角色集合,方便角色管理;

COMP:create operate manage permissions,由AR 負(fù)責(zé)對PRMS 的控制、操作、管理;

PA:permission assign,由AR 負(fù)責(zé)對OR 的權(quán)限 分配,也包括對自己本身權(quán)限的分配;

UA:user assign,由AR 負(fù)責(zé)對用戶分配角色;

U-UI:每一個用戶 (USER)都對應(yīng)唯一的用戶信息

(USER INFORMATION);

SESSIONS:會話集,是用于初始化和創(chuàng)建多個集合間的映射;

U-S:用戶會話集,S>U,每一個會話s對應(yīng)由AR 指派而成的用戶user(s)映射;

R-S:角色會話集,會話s到角色集合R-S {roles|(rolesε{PA|(PAεPRMS)})},用于初始化和創(chuàng)建角色和角色所持有的權(quán)限集;

圖2 NRBAC模型數(shù)據(jù)關(guān)系

P-S:權(quán)限會話集,S>P,每一個會話s對應(yīng)相應(yīng)的權(quán)限映射。

2.1.2 NRBAC模型的實體分析

NRBAC模型由4個實體組成,分別是用戶信息 (UI),用戶(U)、角色(R)、權(quán)限(P),其中權(quán)限(P)也是一個操作集(就是擁有一種或者某幾種操作\動作屬性的集合)。

用戶擁有唯一的與之對應(yīng)的用戶信息,將用戶信息獨立出來,也是基于對用戶安全性和保密性的考慮,這正是提出UI的原因。在角色集中派生出AR,意味著廢除了角色繼承[3],防止權(quán)限被任意傳遞而影響系統(tǒng)的安全性,方便對項目的管理,也是權(quán)限創(chuàng)造的體現(xiàn)。實際項目中,AR相當(dāng)于一個受信任的第三方,AR 雖然可以管理其他角色,但是又脫離不了角色集的范疇,可以防止AR 不受控制,這也是約束[3]思想的折射。AR 實際上是權(quán)限管理的核心,負(fù)責(zé)模型中最重要的PA 和UA 操作,這兩個操作屬于權(quán)限的分配\撤銷范疇。AR 對USERS 進(jìn)行UA 操作后,USERS也就被賦予了相應(yīng)的ROLES,也可以賦予AR;AR 對PRMS進(jìn)行COMP 操作后,PRMS也就賦予AR 相應(yīng)的權(quán)限操作,這就是AR 作為管理者的權(quán)限由來,然后可以對OR 進(jìn)行PA 操作,也就把PRMS賦給了R。

SESSIONS起激活、記憶的作用,主要體現(xiàn)在權(quán)限的使用方面,SESSIONS的產(chǎn)生是在COMP、PA、UA 操作過程中伴隨而成的,當(dāng)執(zhí)行模型中的U-S、R-S、P-S 時,相應(yīng)的會話會被初始化,直到用戶注銷為止,相應(yīng)的會話才會關(guān)閉。

2.1.3 NRBAC模型的數(shù)據(jù)關(guān)系

如圖3所示,NRBAC 模型是一個關(guān)系模型,U-R 和R-P的關(guān)系都是多對多 (many-to-many)關(guān)系,為了解決多對多的數(shù)據(jù)關(guān)系,通常的做法是增加中間表,將多對多轉(zhuǎn)換為一對多和多對一,其中UA 和PA 就相當(dāng)于中間表。

圖3 NRBAC模型

U-UI是1:1 的關(guān)系,一個用戶只有一個用戶信息。OPS與各級OBS都有一個1:1 的關(guān)系,使得不同角色可以精確控制任意一級的OBS,也控制著操作對每一級OBS的訪問許可權(quán)。對于OBS可以拓展到n 級,特別要注意各級的關(guān)聯(lián)關(guān)系,一級OBS 與二級OBS、二級OBS 對三級OBS都是1:n 的關(guān)系,起直接控制的作用,一級OBS與三級OBS之間也是1:n的關(guān)系,但起的是間接控制作用。從數(shù)據(jù)庫的主外鍵角度看,以上的關(guān)系可以用建外鍵的方式達(dá)到相同的關(guān)系效果,即一級OBS無外鍵數(shù),二級OBS有1個外鍵數(shù),三級OBS有2個外鍵數(shù)。推廣到n 級,也應(yīng)該滿足式 (1),可以幫助確定欄目間的關(guān)系,f(n)函數(shù)指的是當(dāng)前第n級所含的外鍵數(shù)目

2.2 NRBAC模型研究與構(gòu)建

NRBAC模型的關(guān)注核心在于PRMS的形成,也就是對PRMS進(jìn)行細(xì)分,提出了OPS,OBS,RS的概念,這里重新對“權(quán)限”進(jìn)行定義:權(quán)限由操作 (Operation)、對象 (Object)和資源(Resource)組成,表示由操作去控制對象對資源的一個有權(quán)訪問,即“Operation+Object+Resource”。

操作不對資源直接訪問,而是交給了對象去控制,而欄目由 “OBS+RS”組成,也就相當(dāng)于用操作去訪問欄目。將操作和欄目綁定后形成權(quán)限,是為了方便以 “級 (類)”為單位給角色賦權(quán),同時也方便權(quán)限的分配和撤銷,也給OBS和RS增加了一層保護(hù)。這樣的好處在于,防止惡意的非法操作直接控制資源,當(dāng)涉及機密信息或者金融業(yè)務(wù)審批時,防止遭受外部入侵,以保證數(shù)據(jù)的完整性。

在這里,審批內(nèi)容相似的歸為一個類,也稱為一級,一級就相當(dāng)于一個欄目,一個欄目也就包含一個OBS 和RS,可以被無限歸納,也就是多級的概念,這正是本文實現(xiàn)多級動態(tài)權(quán)限的核心。角色通過權(quán)限去操作著每一級欄目,再通過對欄目來間接地操作資源,資源指的是所有由URL關(guān)聯(lián)的報表、數(shù)據(jù)、圖片、文檔等。而把PRMS與角色進(jìn)行關(guān)聯(lián),要通過COMP 中的Operate Permissions,這樣權(quán)限就會被AR 所持有,AR 才真正具備PA 的資格。對于COMP中的Manage Permissions,有待進(jìn)一步研究,初步設(shè)想是引入優(yōu)先級來提高PRMS的靈活性和實用性,而引入優(yōu)先級就必然涉及到數(shù)字屬性[8]。

3 權(quán)限管理設(shè)計與實現(xiàn)

權(quán)限管理是DMM 系統(tǒng)中業(yè)務(wù)審批流程的核心部分,涉及7類角色:總經(jīng)理、設(shè)備管理專員、維護(hù)維修人員、倉庫管理專員、安檢專員、設(shè)備操作人員、管理員,要求權(quán)限是動態(tài)的,不能事先設(shè)定死,而且業(yè)務(wù)流程非常復(fù)雜,就要求欄目是多級。結(jié)合某種技術(shù) (本文選擇JavaScript),NRBAC模型可以解決這些新需求。

3.1 數(shù)據(jù)庫設(shè)計

依據(jù)NRBAC模型,結(jié)合DMM 權(quán)限管理部分的需求,設(shè)計了如圖4 所示的數(shù)據(jù)庫,其中字段is_show、is_opened、is_collapsible、is_collapsed 被JavaScript用于實現(xiàn)PA 功能。

圖4 權(quán)限管理數(shù)據(jù)庫設(shè)計

3.2 JavaScript前臺頁面設(shè)計

JS語言編寫前臺頁面COMP、PA、UA 操作的代碼,實現(xiàn)對權(quán)限動態(tài)地創(chuàng)造、分配、撤銷,JavaScript是起控制作用。

下面的js代碼是對圖5中一級欄目的圖片選擇,當(dāng)遍歷圖片時,圖片只能選擇一張,并且要獲取圖片路徑,最后要保存選中的圖片id 值。

如圖5所示,該DMM 的系統(tǒng)管理實質(zhì)上就是權(quán)限管理,與NRBAC 模型對應(yīng)的一級欄目: “權(quán)限管理”,二級欄目:“欄目管理”、“角色管理”、“用戶管理”,三級欄目:“新增欄目”、“新增角色”、“新增用戶”等,這些欄目全部都是用JS語言編寫的。

圖5 權(quán)限創(chuàng)造界面

3.3 SSH 框架后臺代碼實現(xiàn)

DMM 的系統(tǒng)管理模塊在后臺進(jìn)行了分層,根據(jù)SSH框架分為Action層、Service層、Dao層,每層的類命名都采用駝峰命名法則[13]。如圖6 可以清晰地看出代碼層次,與NRBAC模型的基本元素也是相對應(yīng)的。

重點 介 紹 下Service 層 中UserServiceImpl.java 這 個類,因為初始化用戶所持有的角色及角色對應(yīng)的多級權(quán)限主要是在該類中進(jìn)行,該類有個入口函數(shù)findInitData (),它觸發(fā)NRBAC模型中3個Session 去激活權(quán)限,保證權(quán)限管理正常使用。

初始化用戶所持有的角色及角色對應(yīng)的多級權(quán)限算法描述如下:

圖6 權(quán)限管理后臺分層

(1)首先將用戶的ID 號進(jìn)行查詢,把AR 分配給該用戶所屬的所有角色存儲在一個List中,并將該查詢結(jié)果存放在R-S中;

(2)把上一步中查詢到的角色進(jìn)行遍歷,然后根據(jù)每次迭代的角色I(xiàn)D 進(jìn)行OPS查詢,把結(jié)果存放在P-S 中;

(3)把欄目分級 (DMM 系統(tǒng)分了三級),每級都有直接關(guān)聯(lián)的權(quán)限,這就是在NRBAC 模型中每級的OBS 與OPS都進(jìn)行了1∶1關(guān)聯(lián)的原因;

(4)每個權(quán)限對應(yīng)著一個欄目信息,考慮到有的角色可能有重復(fù)的權(quán)限,所以有時候會存在重復(fù)的欄目,為此,每次迭代的時候都要除去重復(fù)的欄目,這里使用一個Set集合(一種不允許重復(fù)元素的集合)來保存用戶的所有欄目。

如圖7所示,初始化用戶所持有的角色及角色對應(yīng)的多級權(quán)限的處理步驟,具體如下所示。

圖7 初始化流程

如圖8 所示,這是DMM 系統(tǒng)管理的界面跳轉(zhuǎn)流程,也是多級動態(tài)權(quán)限管理邏輯關(guān)系,更是對NRBAC 模型實現(xiàn)的全局概況。

圖8 權(quán)限管理界面跳轉(zhuǎn)流程

4 結(jié)束語

本文在RBAC 模型的基礎(chǔ)上,提出了一種改進(jìn)后的RBAC模型--NRBAC模型,主要解決業(yè)務(wù)審批系統(tǒng)中對多級動態(tài)權(quán)限的新需求,利用角色集派生出的AR 角色來動態(tài)地創(chuàng)造、分配和撤銷權(quán)限,同時將PRMS進(jìn)行了細(xì)化,實現(xiàn)操作與資源分離,從而用欄目去綁定權(quán)限,既保證了業(yè)務(wù)審批過程中數(shù)據(jù)的完整性和保密性,也解決了多級、動態(tài)權(quán)限的問題。然后結(jié)合JavaScript技術(shù)和SSH 框架,以DMM 系統(tǒng)為實例,按照NRBAC 模型實現(xiàn)了多級動態(tài)權(quán)限的要求,驗證了該模型的可行性。下一步的研究工作主要圍繞COMP操作中的Manage Permissions展開,通過引入優(yōu)先級來提高權(quán)限管理的靈活性。

[1]HU Xiangdong,WEI Qinfang,HU Rong.Applied cryptography [M].2nd ed.Beijing:Publishing House of Electronics Industry,2013:16-19 (in Chinese). [胡向東,魏琴芳,胡蓉.應(yīng)用密碼學(xué) [M].2版.北京:電子工業(yè)出版社,2013:16-19.]

[2]Claudio A Ardagna,Sabrina De Capitani di Vimercati,Stefano Paraboschi,et al.Expressive and deployable access control in open Web service applications [J].IEEE Computer Society,2011,4 (2):96-109.

[3]Sandhu R,Conyne EJ,Lfeinstein H,et al.Role based access control model[J].IEEE Computer Society,1996,29 (2):38-47.

[4]Sandhu R,F(xiàn)erraiolo D,Kuhn R.The NIST model for rolebased access control:Towards a unified standard [C]//Proc of the 5th ACM Workshop on Role-Based Access Control.New York:ACM Press,2000:47-63.

[5]Enokido T,Takizawa M.Role based access control in distributed object systems[C]//Proc of 28th International Conference on Distributed Computing Systems Workshops,2008:24-29.

[6]Xie Hui,Zhang Bin,Hu Dianyou.A role-based dynamic authorization model and its implementation in PMI[C]//Proc of International Conference on Computer Science and Software Engineering,2008:661-664.

[7]Sandhu R,Munawer Q.The RRA97 model for role-based administration of role hierarchies [C]//Proc of 14th Annual Computer Security Applications Conference,1998:39-49.

[8]Eric Freudenthal,Tracy Pesin,Lawrence Port,et al.dRBAC:Distributed role-based access control for dynamic coalition environments [C]//Proc of Distributed Computing Systems,2002:411-420.

[9]Seong-Won Lee,Soo-Mook Moon.Selective just-in-time compilation for client-side mobile JavaScript engine [C]//Proc of the Proceedings of the 14th International Conference on Compilers,Architectures and Synthesis for Embedded Systems,2011:5-13.

[10]JIA Bei,ZHEN Mingmin,DU Lei,et al.Java Web integrated development of actual combat[M].Beijing:Tsinghua University Press,2013:586-588(in Chinese).[賈蓓,鎮(zhèn)明敏,杜磊,等.Java Web整合開發(fā)實戰(zhàn)[M].北京:清華大學(xué)出版社,2013:586-588.]

[11]GU Yuesheng,BU Da,DU Lei,et al.Java Web program design and project practice [M].Beijing:Publishing House of Electronics Industry,2011:401-405 (in Chinese).[古樂聲,卜炟,杜磊,等.Java Web程序設(shè)計與項目實踐 [M].北京:電子工業(yè)出版社,2011:401-405.]

[12]Kepa M,Sakowicz B,Nowak P,et al.Application for videoconference based on JEE platform [C]//Proc of CAD Systems in Microelectronics,Lviv-Polyana,2009:431-434.

[13]Wikipedia.CamelCase [EB/OL]. [2014-04-24].http://en.wikipedia.org/wiki/CamelCase.

猜你喜歡
欄目框架動態(tài)
國內(nèi)動態(tài)
國內(nèi)動態(tài)
國內(nèi)動態(tài)
框架
廣義框架的不相交性
關(guān)于欄目的要求
動態(tài)
欄目主持人語
欄目制,為什么這樣紅
傳媒評論(2017年2期)2017-06-01 12:10:16
WTO框架下
法大研究生(2017年1期)2017-04-10 08:55:06
金寨县| 浏阳市| 龙陵县| 南雄市| 抚松县| 易门县| 沙坪坝区| 田林县| 侯马市| 汶上县| 揭东县| 贡觉县| 康保县| 根河市| 科技| 龙胜| 南华县| 类乌齐县| 和平区| 临漳县| 综艺| 香格里拉县| 买车| 青海省| 思茅市| 泽州县| 建始县| 城步| 山东省| 九台市| 营山县| 辉南县| 韶山市| 甘泉县| 时尚| 平潭县| 平度市| 沅陵县| 曲阜市| 桂林市| 浦北县|