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

?

基于RBAC訪問控制策略通用基礎架構的設計與實現(xiàn)

2018-02-26 12:23張曉寧
電子技術與軟件工程 2018年17期
關鍵詞:角色

張曉寧

摘要

設計并實現(xiàn)了一種基于RBAC訪問控制策略的通用基礎架構和三層安全認證體系。闡述了基于角色的訪問控制RBAC模型的設計思想和Strutsl的基本架構體系,通過幾個重要的概念、系統(tǒng)訪問控制架構以及訪問控制的核心數(shù)據(jù)庫模型完整的展現(xiàn)了系統(tǒng)的設計理念,給出了系統(tǒng)實現(xiàn)的核心實現(xiàn)代碼和功能圖。

【關鍵詞】Strtusl 角色 三層訪問控 制RBAC模型 UI

訪問控制是管理信息系統(tǒng)中代碼重用性最高的模塊之一,任何多用戶的系統(tǒng)都離不開對系統(tǒng)訪問控制的需求,都需要解決實體鑒別、數(shù)據(jù)保密性、數(shù)據(jù)完整性等訪問控制安全服務。目前,大部分管理信息系統(tǒng)都是使用基于角色的訪問控制RBAC(Role-Based policies AccessControl),這種策略在一定程度上實現(xiàn)了對系統(tǒng)資源的訪問控制,但存在兩點不足:

(1)控制粒度較大,不能控制用戶在權限范圍內的原子操作,

(2)沒有將與資源控制密切相關的組織架構、角色等融入到策略中。

將組織架構、角色等基本元素插接的到業(yè)務邏輯中不但能夠有效減少控制代碼,在業(yè)務邏輯訪問控制發(fā)生變化時,用戶只需修改配置,具有很高靈活性。本文設計并實現(xiàn)了一種基于RBAC通用訪問控制策略架構,同時實現(xiàn)了對訪問控制的三層認證體系,極大地增強了安全性。

1 系統(tǒng)應用技術相關

1.1 RBAC模型

標準RBAC模型分為四部分,分別是基本模型RBACO(Core RBAC)、角色分級模型RBACI(Hierarchal RBAC)、角色限制模型RBAC2(Constraint RBAC)和統(tǒng)一模型RBAC3(Combines RBAC)。

(1)RBACO定義了能構成一個RBAC控制系統(tǒng)的最小的元素集合。在RBAC之中包含角色(ROLES)、用戶(USERS)、資源(RESOURCES)、操作(OPERATIONS)、許可(PERMISSION)等五個基本的元素。角色是對一組用戶的抽象,這組用戶具有對系統(tǒng)相同的操作,權限被賦予角色而不是用戶。一個用戶被賦予某一角色后,他便擁有了該角色對應的所有權限。

(2)RBAC1在RBAC0的基礎上引入了角色之間的繼承關系。繼承關系又分為一般繼承和限制繼承。一般繼承是一種圖,而限制繼承是一種反向樹。

(3)RBAC2模型中添加了責任分離關系。RBAC2的這個約束是為了避免兩個或多個角色之間的沖突。責任分離包括靜態(tài)責任分離和動態(tài)責任分離。約束與用戶一角色一權限關系一起決定了RBAC2模型中用戶的訪問許可。

(4)RBAC3包含了RBAC1和RBAC2,既提供了角色間的繼承關系,又提供了責任分離關系。

1.2 Struts MVC

MVC即Model View Controlle,是模型(model)-視圖(view)-控制器(controller)的縮寫,它是一種軟件設計典范,用一種業(yè)務邏輯、數(shù)據(jù)、界面顯示分離的方法組織代碼,將業(yè)務邏輯聚集到一個部件里面,在改進和個性化定制界面及用戶交互的同時,不需要重新編寫業(yè)務邏輯。MVC被獨特的發(fā)展起來用于映射傳統(tǒng)的輸入、處理和輸出功能在一個邏輯的圖形化用戶界面的結構中。

Struts是MVC模式中應用最為廣泛并且最為穩(wěn)定的設計框架模式,主要分為Struts1以及Struts2兩個版本,Struts1與Struts2有著本質的區(qū)別。Struts2是以Web Work為核心,采用攔截器的機制來處理用戶的請求。Struts1有一組相互協(xié)作的類(組件)、Servlet以及jsp tag lib組成,在這種模式框架中M指的是業(yè)務邏輯以及數(shù)據(jù)持久層模型;V指的是前臺頁面展示部分,主要是Struts的自定義標簽;C指的是框架中的ActionServelt。工作流程描述如下。

(1)Web服務器啟動時,會將Struts的配置文件加載為運行時類。

(2)瀏覽器向服務器發(fā)送請求被Struts的ActionServlet捕獲。

(3)ActionServlet根據(jù)配置文件信息對數(shù)據(jù)做一系列處理后,派發(fā)該請求至相應Action。

(4)在Action中執(zhí)行業(yè)務邏輯處理。

(5)根據(jù)配置文件信息查找返回頁面,響應用戶瀏覽器。

2 系統(tǒng)設計與實現(xiàn)

2.1 總體設計

系統(tǒng)基于Strutsl MVC架構進行設計,使用JQuery構建UI并實施統(tǒng)一權限訪問控制。完整的訪問控制架構包括以下三方面的內容。

2.1.1 UI端用戶功能操作區(qū)

操作區(qū)是用戶與服務器交互的橋梁,所有的交互都要通過操作區(qū)來實現(xiàn)。操作區(qū)分為基本區(qū)和擴展區(qū),對基本區(qū)和擴展區(qū)的每一個操作都會觸發(fā)相應的事件?;緟^(qū)包括的原子操作:增加、編輯、修改、保存、查詢、打印、導入、導出、刷新等;擴展區(qū)是為滿足特殊業(yè)務需求所定義的固定操作組,開發(fā)者在使用擴展操作時必須要將自定義的具體操作與擴展操作——對應。

2.1.2 組織架構

組織架構分為實體組織架構和虛擬組織架構,實體組織架構是實際存在的組織架構。虛擬組織架構是專為系統(tǒng)訪問控制所定義而對用戶不可見的,主要包括本組織架構、本組織及其所有子孫組織架構、本組織及其所有兄弟組織架構、本組織及其所有兄弟及其它們的子孫組織架構、本組織及其所有的父輩組織架構、所有組織架構等等。當業(yè)務功能的訪問控制必須與組織架構建立聯(lián)系時,系統(tǒng)會根據(jù)其具體含義與實體組織架構建立關聯(lián)。

2.1.3 三層訪問控制體系

訪問控制是整個架構的核心,它負責收集用戶權限、接收用戶請求、驗證用戶操作。權限分配時,對每一種角色設置其相應資源的原子操作。

三層訪問控制體系的第一層為賬號控制,系統(tǒng)認證用戶身份后,收集與該用戶相關的權限操作集合和資源信息,同時回寫UI和后臺生成權限控制集合;第二層為UI操作區(qū)控制,用戶對某一個資源進行原子操作時,UI認證中心對其操作權限進行檢測,檢測通過后將用戶請求發(fā)送至后臺。第三層為后臺權限匹配控制,通過UI認證中心發(fā)送過來的請求會再次經過后臺認證中心的權限校驗,焦山通過后后臺調取對應的業(yè)務邏輯代碼進行處理。圖1是系統(tǒng)三層訪問控制基本架構圖。

2.2 詳細設計及實現(xiàn)

2.2.1 訪問控制基礎設計與實現(xiàn)

訪問控制的基礎是設計用戶與資源之間的關聯(lián)關系,根據(jù)RBAC3模型,后臺數(shù)據(jù)庫設計用戶、角色、資源、用戶角色、組織架構以及權限共六個數(shù)據(jù)表,模型如圖2所示。

權限表是整個訪問控制的基礎數(shù)據(jù)來源,它記錄了某種角色的人員對資源可進行的操作以及業(yè)務涉及組織架構時對組織架構的操作權限。與之相對應的前臺控制頁面如圖3所示。

在某些根具角色不同獲取不同內容的業(yè)務中,在權限管理頁面中設置相應的組織架構,在后臺可以直接調用系統(tǒng)方法getDepartIdsById獲取其操作的部門權限,而不用在業(yè)務中判斷當前登錄者的角色將組織架構寫死在業(yè)務邏輯中。

2.2.2 三層控制體系架構實現(xiàn)

Struts本身架構體系并不能完成對系統(tǒng)的訪問控制,需要對其進行二次開發(fā),在原有模型中添加rule、op、depends三個原子操作,rule定義了業(yè)務處理類,與path一同替代原有模型中的type操作;op定義了請求所對應的操作,即為操作區(qū)交互按鈕所對應的操作;depends定義了請求所依賴的主操作。一個典型的配置代碼如下所示。

用戶登錄并認證通過后完成在服務器端的第一層認證,系統(tǒng)會將其權限分別以兩種不同的形式存放于Session會話中。其中一種為長字符串形式回寫前臺控制頁面,控制頁面再經過處理形成前臺HashMap格式的控制數(shù)據(jù),這樣用戶每操作一次工具欄上的按鈕都會觸發(fā)權限控制策略,完成在用戶端的第二層認證。如下為點擊“查詢”按鈕時控制頁面所做的判斷。

if(null!=authJS&&'√'==authJS.get(method).charAt(4)){

iframe.doQuery();

}

另一種形式為HashMap格式的控制數(shù)據(jù),在第二層認證通過后,請求被服務器接收,服務器會對每一個請求加以權限認證。認證分為主認證和子操作認證,主認證與權限控制頁面內的功能菜單對應,子認證是打開功能菜單后在頁面內所有操作的認證。

3 總結

基于RBAC訪問控制策略的通用基礎架構很好的解決了現(xiàn)有管理信息系統(tǒng)開發(fā)中訪問控制所存在的問題。將訪問控制與底層架構完美的融合在一起,減少了重復開發(fā),提高了開發(fā)效率,在尤其注重安全的空管體系中其獨創(chuàng)的三層控制架構很大的增強了系統(tǒng)的安全性。此架構已經大量應用于山東空管分局自主研發(fā)的多個管理信息系統(tǒng)中。系統(tǒng)需要改進的是訪問控制的進一步細化,實現(xiàn)對頁面字段屬性的

參考文獻

[1]李蘭崇.基于角色的權限管理訪問控制系統(tǒng)平臺研究與實踐[D].蘭州:蘭州大學,2009.

[2]基于RBAC的權限設計模型.ht印s://www.cnblogs.com/lhyqzx/p/5962826.html.

猜你喜歡
角色
小學語文教師在實施新課程中的角色定位
教師和學生角色的轉變是實現(xiàn)有效教學的關鍵
生態(tài)系統(tǒng)理論視角下醫(yī)院志愿者角色和功能的研究
辦公室行政管理工作的“角色”與效率分析
普通高等學校思想政治教育輔導員角色問題研究
404 Not Found

404 Not Found


nginx
金山区| 永城市| 镇安县| 眉山市| 绥中县| 得荣县| 云霄县| 定结县| 黑河市| 潢川县| 原阳县| 株洲市| 沙坪坝区| 岑巩县| 马关县| 马龙县| 凌云县| 渝北区| 随州市| 江油市| 根河市| 博湖县| 甘谷县| 那曲县| 三台县| 乐至县| 新巴尔虎左旗| 剑阁县| 甘南县| 洛扎县| 肇州县| 梁平县| 搜索| 大港区| 淮安市| 冷水江市| 泸水县| 大同县| 大同市| 元朗区| 崇信县|