版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、對對 EMS 權(quán)限管理模塊設(shè)計權(quán)限管理模塊設(shè)計1.1. 權(quán)限設(shè)計概述權(quán)限設(shè)計概述1.11.1 引言引言隨著Web服務(wù)的復(fù)雜度增加以及用戶數(shù)量和種類的增多, 安全問題在理論及工程上都是一個必須考慮的問題,而權(quán)限管理是安全問題中一個很重要的方面。因此本文針對權(quán)限做了一個分析。權(quán)限可簡單表述為這樣的邏輯表達式:判斷“Who 對 What(Which)進行 How 的操作”的邏輯表達式是否為真。1.21.2 意義意義用戶管理及權(quán)限管理一直是應(yīng)用系統(tǒng)中不可缺少的一個部分系統(tǒng)用戶很多,系統(tǒng)功能也很多不同用戶對系統(tǒng)功能的需求不同出于安全等考慮,關(guān)鍵的、重要的系統(tǒng)功能需限制部分用戶的使用出于方便性考慮,系統(tǒng)功
2、能需要根據(jù)不同的用戶而定制1.31.3 目標目標直觀,因為系統(tǒng)最終會由最終用戶來維護,權(quán)限分配的直觀和容易理解,顯得比較重要,除了功能的必須,更主要的就是因為它足夠直觀。簡單,包括概念數(shù)量上的簡單和意義上的簡單還有功能上的簡單。想用一個權(quán)限系統(tǒng)解決所有的權(quán)限問題是不現(xiàn)實的。設(shè)計中將變化的“定制”特點比較強的部分判斷為業(yè)務(wù)邏輯,而將相同的“通用”特點比較強的部分判斷為權(quán)限邏輯就是基于這樣的思路。擴展,采用可繼承的方式解決了權(quán)限在擴展上的困難。引進Group概念在支持權(quán)限以組方式定義的同時有效避免了權(quán)限的重復(fù)定義。2.2. 基于角色的權(quán)限管理設(shè)計基于角色的權(quán)限管理設(shè)計( (Role-BasedAc
3、cessControl,RBAC),RBAC)2.12.1 權(quán)限管理用例圖權(quán)限管理用例圖2.22.2 用例圖描述用例圖描述超級管理員超級管理員:系統(tǒng)中默認的角色,它是系統(tǒng)中擁有最高權(quán)限的角色,它不僅能夠管理其他的管理員和用戶,而且還可以對系統(tǒng)中每個模塊的任一功能進行操作、維護。普通管理員普通管理員: 它是由超級管理員創(chuàng)建的, 并授予權(quán)限, 它能夠管理系統(tǒng)中大部分的功能,它可以查看所有普通管理員、普通用戶的信息,它只能對由它自己創(chuàng)建的用戶進行編輯、刪除操作,和管理擁有權(quán)限的模塊。普通用戶普通用戶:它是系統(tǒng)中最低權(quán)限的角色,它只能對自己擁有的權(quán)限進行操作,一般情況下,它的權(quán)限是對信息的瀏覽和對自己
4、信息的錄入,修改。登陸系統(tǒng)登陸系統(tǒng):根據(jù)用戶擁有的權(quán)限不同,用戶所能操作的功能多少就不同,所以在登陸系系統(tǒng)悅覘菅瑚軾它挾規(guī)苦理憂別改迂仙魚幣息.挨予板限增劇改査用戶信息,刖配H1色八菅那二凰鎮(zhèn)營理員垂址捺縱管那用戶菅理登陸乘統(tǒng) 其遅禺塊戡理捋能助能的操件對普通用戶進行謖理A普誡管理員統(tǒng)的時候就要對用戶的權(quán)限進行判斷。用戶管理用戶管理:這里對本系統(tǒng)的登錄用戶進行維護。包括,新建、刪除、編輯、注銷等;系統(tǒng)初始化的時候,用戶管理中默認只有一個擁有超級管理員角色的用戶,因此在初始化登陸的時候,只能用這個用戶登陸,其他的用戶由這個用戶創(chuàng)建并授予角色。角色管理角色管理:角色是賦予系統(tǒng)用戶的職權(quán)名稱。包括,
5、新建、刪除、編輯、注銷等;系統(tǒng)初始化的時候,角色管理中默認只擁有一個超級管理員的角色,其他角色由擁有這個角色的用戶創(chuàng)建并授權(quán)。其他模塊其他模塊:其他模塊的每個功能都擁有一個唯一 Id,根據(jù)用戶登陸的權(quán)限,再確定這些功能是否對用戶開放。3.3. 權(quán)限設(shè)計思路權(quán)限設(shè)計思路3.13.1 基于角色的訪問控制基于角色的訪問控制 RBACRBACRBACRBAC 的主要思想是: :權(quán)限(PermissionsPermissions)是和角色(RolesRoles)相聯(lián)系的,而用戶(UsersUsers)則被指定到相應(yīng)的角色作為其成員。這樣就使權(quán)限的管理大大簡化了。系統(tǒng)的權(quán)限控制主要是采用基于角色的訪問控制
6、,把權(quán)限綁定到角色上,當用戶要操作權(quán)限時,就把角色賦給用戶。而且在需要撤回權(quán)限時,只需把角色上的權(quán)限撤回就行了。3.23.2 思路思路為了設(shè)計一套具有較強可擴展性的權(quán)限管理,需要建立用戶、角色和權(quán)限等數(shù)據(jù)庫表并且建立之間的關(guān)系,具體實現(xiàn)如下3.33.3 用戶用戶僅僅是純粹的用戶用戶用戶僅僅是純粹的用戶,用來記錄用戶相關(guān)信息,如用戶名、密碼等,權(quán)限是被分權(quán)限是被分離離出去了的。用戶出去了的。用戶(User)要擁有對某種資源的權(quán)限,必須通過角色(要擁有對某種資源的權(quán)限,必須通過角色(Role)去關(guān)聯(lián))去關(guān)聯(lián)。用戶通常具有以下屬性:編號,在系統(tǒng)中唯一。名稱,在系統(tǒng)中唯一。用戶口令。注釋,描述用戶或角
7、色的信息。3.43.4 角色角色是使用權(quán)限的基本單位角色角色是使用權(quán)限的基本單位,擁有一定數(shù)量的權(quán)限,通過角色賦予用戶權(quán)限,通常具有以下屬性:編號,在系統(tǒng)中唯一。名稱,在系統(tǒng)中唯一(監(jiān)控人員)注釋,描述角色信息.-(在線監(jiān)控人員)3.53.5 權(quán)限權(quán)限權(quán)限指用戶根據(jù)角色獲得對程序某些功能的操作權(quán)限指用戶根據(jù)角色獲得對程序某些功能的操作,例如對文件的讀、寫、修改和刪除功能,通常具有以下屬性:編號,在系統(tǒng)中唯一。名稱,在系統(tǒng)中唯一-(添柵山改,查)注釋,描述權(quán)限信息-允許增加監(jiān)控對象3.63.6 用戶與角色的關(guān)系用戶與角色的關(guān)系一個用戶一個用戶(User)對應(yīng)一個角色對應(yīng)一個角色(Role),一個
8、角色可以被多個用戶使用一個角色可以被多個用戶使用,用戶角色就是用來描述他們之間隸屬關(guān)系的對象。用戶(User)通過角色(Role)關(guān)聯(lián)所擁有對某種資源的權(quán)限,例如用戶(User):UserIDUserNameUserPwd1張三xxxxxx2李四xxxxxxRoleIDUserRoleNote(用戶角色注釋)02用戶“張三”被分配到角色“監(jiān)控人員”02用戶“李四”被分配到角色“監(jiān)控人員”從該關(guān)系表可以看出, 用戶所擁有的特定資源可以通過用戶角色來關(guān)聯(lián)。3.73.7 權(quán)限與角色的關(guān)系權(quán)限與角色的關(guān)系一個角色一個角色(Role)可以擁有多個權(quán)限可以擁有多個權(quán)限(Permission),同樣一個權(quán)限
9、可分配給多個角同樣一個權(quán)限可分配給多個角色。色。例如:角色(Role):RoleUUID(角色UUID)01020304RoleRemark (角色注釋)角色(Role):RoleID(角色編號)01020304RoleName (角色名稱)系統(tǒng)管理員監(jiān)控人員調(diào)度人員一般工作人員RoleNote(角色注釋)監(jiān)控系統(tǒng)維護管理員在線監(jiān)控人員調(diào)度工作人員工作人員用戶角色(User_Role):UserRoleIDUserID1122RoleName(角色名稱)系統(tǒng)管理員監(jiān)控人員調(diào)度人員一般工作人員監(jiān)控系統(tǒng)維護管理員在線監(jiān)控人員調(diào)度工作人員工作人員權(quán)限(Privilege):PrivilegeUUID
10、 (權(quán)限UUID)PrivilegeName(權(quán)限名稱)PrivilegeRemark(權(quán)限注釋)0001增加監(jiān)控允許增加監(jiān)控對象0002修改監(jiān)控允許修改監(jiān)控對象0003刪除監(jiān)控允許刪除監(jiān)控對象0004察看監(jiān)控信息允許察看監(jiān)控對象角色權(quán)限(Role_Privilege):RolePermissionIDRoleUUIDPrivilegeUUIDRole_PrivilegeRemark (角色權(quán)限注釋)1010001角色“系統(tǒng)管理員”具有權(quán)限“增加監(jiān)控”2010002角色“系統(tǒng)管理員”具有權(quán)限“修改監(jiān)控”3010003角色“系統(tǒng)管理員”具有權(quán)限“刪除監(jiān)控”4010004角色“系統(tǒng)管理員”具有權(quán)限
11、“察看監(jiān)控”5020001角色“監(jiān)控人員”具有權(quán)限“增加監(jiān)控”6020004角色“監(jiān)控人員”具有權(quán)限“察看監(jiān)控”由以上例子中的角色權(quán)限關(guān)系可以看出,角色權(quán)限可以建立角色和權(quán)限之間的對應(yīng)關(guān)系。3.83.8 建立用戶權(quán)限建立用戶權(quán)限用戶權(quán)限系統(tǒng)的核心由以下三部分構(gòu)成:創(chuàng)造權(quán)限、分配權(quán)限和使用權(quán)限創(chuàng)造權(quán)限、分配權(quán)限和使用權(quán)限。第一步由Creator創(chuàng)造權(quán)創(chuàng)造權(quán)限限(Permission),Creator在設(shè)計和實現(xiàn)系統(tǒng)時會劃分,指定系統(tǒng)模塊具有哪些權(quán)限。第二步由系統(tǒng)管理員(Administrator)創(chuàng)建用戶和角色創(chuàng)建用戶和角色,并且指定用戶角色(UserRole)和角色權(quán)限(RolePermiss
12、ion)的關(guān)聯(lián)關(guān)系。第三步用戶(User)登陸系統(tǒng),對自己擁有的權(quán)限進行管理、使用。4.4. 權(quán)限的具體實現(xiàn)模式權(quán)限的具體實現(xiàn)模式模式一:用戶模式一:用戶- -角色角色- -權(quán)限權(quán)限( (最通用的方法最通用的方法) )4.14.1 數(shù)據(jù)庫結(jié)構(gòu)數(shù)據(jù)庫結(jié)構(gòu)4.1.1 用戶表:表名:user_control_tab含義:用戶表字段字段字段是否是是否為字段字段名稱類型長度關(guān)鍵字空含義說明idbigint8是否編號主鍵,自增uuidbinary16否UUID唯一roleuuidbinary16否角色 UUID對應(yīng)角色表的 UUIDusernamevarchar16否用戶名只能是數(shù)字,字母,下劃線組成us
13、erpwdvarchar16否密碼密碼的長度在 6-16 個字符之間realnamevarchar6否真實姓名要求填寫用戶真實姓名sexint2否性別0:男 1:女phonebigint11否移動電話用戶的手機號碼emailvarchar100否郵箱用戶的郵箱remarkvarchar100是備注4.1.2 角色表:表名:role_tab含義:角色表字段名稱字段類型字段長度是否是關(guān)鍵字是否為空字段含義字段說明idbigint8是否編號主鍵,自增uuidbinary16否UUID唯一rolenamevarchar16否角色名稱只能是數(shù)字,字母,下劃線組成remarkvarchar100備注4.1
14、.3 權(quán)限表:表名:privilege_tab含義:權(quán)限表字段名稱字段類型字段長度是否是關(guān)鍵字是否疋否為空字段含義字段說明idbigint8是否編號主鍵,自增uuidbinary16否UUID唯一prinamevarchar16否權(quán)限名稱只能是數(shù)字,字母,下劃線組成extidvarchar100否功能 id頁面功能的 id,唯remarkvarchar100備注4.1.4 角色權(quán)限表:表名:role_privilege_tab含義:角色權(quán)限表表字段名稱字段類型字段長度是否是關(guān)鍵字是否為空字段含義字段說明idbigint8是否編號主鍵,自增roleuuidbinary16否角色 UUID引用角色
15、表的 UUID,唯priuuidbinary16否權(quán)限 UUID引用權(quán)限表的 UUID,唯remarkvarchar100備注4.24.2 在控制層寫在控制層寫 if/elseif/else 判斷條件判斷條件用戶登入系統(tǒng)后,就通過其角色加載所有可以訪問的頁面,保存到Session,一直到用戶退出系統(tǒng)或者session過期。用戶訪問頁面時,添加一個Dispatcher(tapestry5方式),在這個Dispatcher中解析出頁面地址如/cs/deposit, 和用戶保存在Session里的可訪問頁面作比較,如果存在則繼續(xù),不存在則跳到登入頁面。模式二:模式二:RalasafeRalasafe
16、 第三方組件(圖形界面的形式,簡單易用)第三方組件(圖形界面的形式,簡單易用)安裝、配置與使用手冊:http:/ 可以很好地分離權(quán)限與系統(tǒng)本身的功能可以很好地分離權(quán)限與系統(tǒng)本身的功能, 讓開發(fā)過程更加關(guān)注系統(tǒng)讓開發(fā)過程更加關(guān)注系統(tǒng)的核心功能,同時可以很容易做到開發(fā)時的任務(wù)劃分,同時使項目代碼的可讀性大大提升的核心功能,同時可以很容易做到開發(fā)時的任務(wù)劃分,同時使項目代碼的可讀性大大提升。權(quán)限模型的常量定義:一個系統(tǒng)里最常見的需求莫過于權(quán)限、角色,我們需要兩個類,一個表明都有什么權(quán)限(例3、編寫頁面權(quán)限過濾器,例如 PagePermissionFilter,實現(xiàn)對頁面請求的過濾;如:刪除帖子權(quán)限、
17、編輯帖子權(quán)限,等等);另一個類表明,各個角色都有什么權(quán)限。這樣子相當于定義了一個權(quán)限和角色模型。攔截器與注解:攔截器(Invocation)在在流行的開源框架中很常見,依賴的技術(shù)就是Java的動態(tài)代理。許多流行的框架都提供實現(xiàn)攔截器的接口,可以很簡單就實現(xiàn)一個攔截器,此文不表如何實現(xiàn)。注解(Annotations)是JAVA在5.0后引入的特性,它引入的目的是為了替代一些簡單的配置到j(luò)ava代碼里,而不用原來的xml。注解請求示例:一般的框架,都會有一個controller類,以下用偽代碼表示:publicclassThreadsControllerPriCheckRequired(Membe
18、rPrivilegeIdentity.CREATE_THREAD)publicStringcreateThread()returncreateThread;如代碼中所示,一個controller里的一個method對應(yīng)一個URL請求(例中所示為創(chuàng)建帖子)。我們只需要在其方法上標注PriCheckRequired(MemberPrivilegeIdentity.CREATE_THREAD),PriCheckRequired就是注解,其傳遞了一個信息MemberPrivilegeldentity.CREATE_THREAD,這也就是前文說的權(quán)限類中的創(chuàng)建帖子權(quán)限??梢韵胂裨跀r截器里要做的事情:攔截
19、器一般都是實現(xiàn)一個框架提供的接口來實現(xiàn),常用框架都支持。1根據(jù)規(guī)定好的根據(jù)規(guī)定好的request請求的參數(shù),取到用戶屬于哪個角色。請求的參數(shù),取到用戶屬于哪個角色。2.根據(jù)根據(jù)controller中注解,取到當前要判斷的權(quán)限。中注解,取到當前要判斷的權(quán)限。3.對比用戶角色是否有注解中的權(quán)限,如果有,放行,反之攔截。對比用戶角色是否有注解中的權(quán)限,如果有,放行,反之攔截。具體的實現(xiàn)過程:攔截器的代碼實現(xiàn)與框架有關(guān):rose框架如何實現(xiàn)攔截器請看http:/code.google.eom/p/paoding-rose/wiki/Rose_Code_Fragment_Interceptor模式四:基于模式四:基于 webworkwebwork 和過濾器實現(xiàn)無代碼侵入的原子級界面權(quán)限和過濾器實現(xiàn)無代碼侵入的原子級界面權(quán)限修改 webwork 的基類 UIBean 來實現(xiàn)頁面的權(quán)限控制:1、首先將頁面的權(quán)限定義保存到數(shù)據(jù)庫或 xml 的配置文件中;2、編寫一個監(jiān)聽器 LoadPagePermissionListener 來從權(quán)限的描述文件中,加載權(quán)限信息到緩存;4、當用戶請求一個 web 表單時,首先通過.action 去請求,此時.action 被PagePermissionFilter 過濾器攔截到,此過濾器中從用戶所請求的 web 表單對應(yīng)的 XML權(quán)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中國磁選除鐵器項目投資可行性研究報告
- 汽車點火鎖項目可行性研究報告評審方案設(shè)計2025年標準案例范文
- 舞臺租賃合同范本
- 道路亮化工程項目的可行性研究報告
- 鈴聲下載服務(wù)合同書
- 沙石購買合同范本
- 2025外聯(lián)部商家意向合同書
- 清遠市富榮農(nóng)副產(chǎn)品批發(fā)市場-可行性研究報告52p
- 2025福建省商品房買賣合同(示范文本)
- 2025應(yīng)收賬款質(zhì)押合同的范本
- 充電樁項目運營方案
- 退休人員出國探親申請書
- 傷殘撫恤管理辦法實施細則
- 高中物理競賽真題分類匯編 4 光學(xué) (學(xué)生版+解析版50題)
- 西方經(jīng)濟學(xué)-高鴻業(yè)-筆記
- 幼兒園美術(shù)教育研究策略國內(nèi)外
- 高中英語選擇性必修一單詞表
- 物業(yè)公司介紹
- 2024屆河南省五市高三第一次聯(lián)考英語試題及答案
- 【永輝超市公司員工招聘問題及優(yōu)化(12000字論文)】
- 孕婦學(xué)校品管圈課件
評論
0/150
提交評論