權限管理設計說明_第1頁
權限管理設計說明_第2頁
權限管理設計說明_第3頁
權限管理設計說明_第4頁
權限管理設計說明_第5頁
已閱讀5頁,還剩7頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、對EMS權限管理模塊設計1.權限設計概述引言隨著亞6匕服務的復雜度增加以及用戶數量和種類的增多,安全問題在理論及工程上都 是一個必須考慮的問題,而權限管理是安全問題中一個很重要的方面。因此本文針對權限做 了 一個分析。權限可簡單表述為這樣的邏輯表達式:判斷“Who對What(Which)進行How的操作”的 邏輯表達式是否為真。意義用戶管理及權限管理一直是應用系統中不可缺少的一個部分系統用戶很多,系統功能也很多不同用戶對系統功能的需求不同出于安全等考慮,關鍵的、重要的系統功能需限制部分用戶的使用出于方便性考慮,系統功能需要根據不同的用戶而定制目標直觀,因為系統最終會由最終用戶來維護,權限分配的

2、直觀和容易理解,顯得比較重要, 除了功能的必須,更主要的就是因為它足夠直觀。簡單,包括概念數量上的簡單和意義上的簡單還有功能上的簡單。想用一個權限系統解 決所有的權限問題是不現實的。設計中將變化的“定制”特點比較強的部分判斷為業務邏輯, 而將相同的“通用”特點比較強的部分判斷為權限邏輯就是基于這樣的思路。擴展,采用可繼承的方式解決了權限在擴展上的困難。引進Group概念在支持權限以組 方式定義的同時有效避免了權限的重復定義。2.基于角色的權限管理設計(Role-BasedAccessControl ,RBAC)2.1權限管理用例圖拜戶管期泵拚惶映管理前色智理聘用;系比就電箱堪苦理增州段直用戶儲

3、 息,分配刖色噌惻故直角色臉 息.摟于板限睡蝮首理員對搦有枚限附功能進行捧作普述用戶2.2用例圖描述超級管理員:系統中默認的角色,它是系統中擁有最高權限的角色,它不僅能夠管理其 他的管理員和用戶,而且還可以對系統中每個模塊的任一功能進行操作、維護。普通管理員:它是由超級管理員創建的,并授予權限,它能夠管理系統部分的功能,它 可以查看所有普通管理員、普通用戶的信息,它只能對由它自己創建的用戶進行編輯、刪除 操作,和管理擁有權限的模塊。普通用戶:它是系統中最低權限的角色,它只能對自己擁有的權限進行操作,一般情況 下,它的權限是對信息的瀏覽和對自己信息的錄入,修改。登陸系統:根據用戶擁有的權限不同,

4、用戶所能操作的功能多少就不同,所以在登陸系 統的時候就要對用戶的權限進行判斷。用戶管理:這里對本系統的登錄用戶進行維護。包括,新建、刪除、編輯、注銷等;系 統初始化的時候,用戶管理中默認只有一個擁有超級管理員角色的用戶,因此在初始化登陸 的時候,只能用這個用戶登陸,其他的用戶由這個用戶創建并授予角色。角色管理:角色是賦予系統用戶的職權名稱。包括,新建、刪除、編輯、注銷等;系統 初始化的時候,角色管理中默認只擁有一個超級管理員的角色,其他角色由擁有這個角色的 用戶創建并授權。其他模塊:其他模塊的每個功能都擁有一個唯一Id,根據用戶登陸的權限,再確定這 些功能是否對用戶開放。3.權限設計思路基于角

5、色的訪問控制RBACRBAC的主要思想是:權限(Permissions)是和角色(Roles)相聯系的,而用戶(Users) 則被指定到相應的角色作為其成員。這樣就使權限的管理大大簡化了。系統的權限控制主要是采用基于角色的訪問控制,把權限綁定到角色上,當用戶要操作 權限時,就把角色賦給用戶。而且在需要撤回權限時,只需把角色上的權限撤回就行了。思路為了設計一套具有較強可擴展性的權限管理,需要建立用戶、角色和權限等數據庫表, 并且建立之間的關系,具體實現如下用戶用戶僅僅是純粹的用戶,用來記錄用戶相關信息,如用戶名、密碼等,權限是被分離 出去了的。用戶(User)要擁有對某種資源的權限,必須通過角色

6、(Role)去關聯。用戶 通常具有以下屬性:編號,在系統中唯一。名稱,在系統中唯一。用戶口令。注釋,描述用戶或角色的信息。角色角色是使用權限的基本單位,擁有一定數量的權限,通過角色賦予用戶權限,通常具有 以下屬性:編號,在系統中唯一。名稱,在系統中唯一 (監控人員 )注釋,描述角色信息.3(在線監控人員)權限權限指用戶根據角色獲得對程序某些功能的操作,例如對文件的讀、寫、修改和刪除功能,通常具有以下屬性:編號,在系統中唯一。名稱,在系統中唯一3(添,刪,改,查)注釋,描述權限信息 .3允許增加監控對象用戶與角色的關系一個用戶(User)對應一個角色(Role),一j角色可以被多個用戶使用,用戶

7、角色 就是用來描述他們之間隸屬關系的對象。用戶(User)通過角色80良)關聯所擁有對某種 資源的權限,例如用戶(User):UserIDUserNameUserPwdxxxxxx1三xxx2四xxx角色小。):RoleID(角色編號)RoleName(角色名稱)RoleNote(角色注釋)01員監控系統維護管理員02員在線監控人員03員調度工作人員04工作人員系統管理監控人調度人一般工作人員用戶角色(User_Role):UserRoleIDUserIDUserRoleNote(用戶角色注釋)102202員”RoleID1用戶“三”被分配到角色“監控人員”2用戶“四”被分配到角色“監控人從該

8、關系表可以看出,用戶所擁有的特定資源可以通過用戶角色來關聯。3.7 權限與角色的關系一個角色(Role)可以擁有多個權限(Permission),同樣一個權限可分配給多個角 色。例如:角色(Role):RoleUUID (角色 UUID)RoleName (角色名稱)01 員02員03員04 工作人員RoleRemark(角色注釋)監控系統維護管理員在線監控人員調度工作人員系統管理監控人調度人一般工作人員權限(Privilege):PrivilegeUUID (權限 UUID)PrivilegeName(權限名稱)PrivilegeRemark(權限注釋)0001控0002控0003控0004

9、息允許察看監控對象增加監允許增加監控對象修改監允許修改監控對象刪除監允許刪除監控對象察看監控信注釋)10001角色“系統管理員01”具有權限“增加監控”20002角色“系統管理員01”具有權限“修改監控”30003角色“系統管理員01”具有權限“刪除監控”40004角色“系統管理員01”具有權限“察看監控”50001角色“監控人員”02具有權限“增加監控”60004角色“監控人員”02具有權限“察看監控”角色權限(Role_ Privilege):RolePermissionID RoleUUID PrivilegeUUID Role_PrivilegeRemark(角色權限由以上例子中的角色

10、權限關系可以看出,角色權限可以建立角色和權限之間的對應關系。3.8 建立用戶權限用戶權限系統的核心由以下三部分構成:創造權限、分配權限和使用權限。第一步由Creator創造權限(Permission), Creator在設計和實現系統時會劃分,指 定系統模塊具有哪些權限。第二步由系統管理員(Administrator)創建用戶和角色,并且指定用戶角色(User 一 Role)和角色權限(Role-Permission)的關聯關系。第三步用戶(User)登陸系統,對自己擁有的權限進行管理、使用。4.權限的具體實現模式模式一:用戶-角色-權限(最通用的方法)4.1 數據庫結構4.1.1用戶表:表名

11、:user_control_tab含義:用戶表字段 名稱字段 類型字段 長度是否是 關鍵字是否為 空字段 含義字段 說明idbigint8是否編號主鍵,自增uuidbinary16否UUID唯一role_uuidbinary16否角色UUID對應角色表的UUIDuser_namevarchar16否用戶名只能是數字,字母,下劃線組成user_pwdvarchar16否密碼密碼的長度在6-16個字符之間real_namevarchar6否真實要求填寫用戶真實sexint2否性別0:男1:女phonebigint11否移動用戶的手機emailvarchar100否用戶的remarkvarchar1

12、00是備注4.1.2角色表:表名:role_tab含義:角色表字段字段字段是否是是否為字段字段名稱類型長度關鍵字空含義說明idbigint8是否編號主鍵,自增uuidbinary16否UUID唯一role_namevarchar16否角色名稱只能是數字,字母,下劃線組成remarkvarchar100備注4.1.3權限表:表名:privilege_tab含義:權限表字段 名稱字段 類型字段 長度是否是 關鍵字是否 為空字段 含義字段 說明idbigint8是否編號主鍵,自增uuidbinary16否UUID唯一pri_namevarchar16否權限名稱只能是數字,字母,下劃線組成ext_id

13、varchar100否功能id頁面功能的id,唯一remarkvarchar100備注4.1.4角色權限表:表名:role_privilege_tab含義:角色權限表表字段 名稱字段 類型字段 長度是否是 關鍵字是否 為空字段 含義字段 說明idbigint8是否編號主鍵,自增role_uuidbinary16否角色UUID引用角色表的UUID,唯一pri_uuidbinary16否權限UUID引用權限表的UUID,唯一remarkvarchar100備注4.2在控制層寫if/else判斷條件用戶登入系統后,就通過其角色加載所有可以訪問的頁面,保存到 Session, 一直到 用戶退出系統或者

14、 session 過期。用戶訪問頁面時,添加一個 Dispatcher ( tape stry5 方式),在這個 Dispatcher中解析出頁面地址如 /cs/deposit ,和用戶保存 在 Session 里的可訪問頁面作比較,如果存在則繼續,不存在則跳到登入頁面。模式二:Ralasafe第三方組件(圖形界面的形式,簡單易用)安裝、配置與使用手冊: 耦合,采用全景式、圖形化管理方式,無需大量Java和XML開發配置。Ralasafe將權限分為兩大類查詢權限:用戶從系統獲取數據,此時系統根據用戶不同,返回該用戶具有權限查詢的數據 決策權限:用戶向系統提交操作數據(如:修改、添加或者刪除某訂

15、單),此時系統根據用 戶和被操作數據,判斷是否允許操作權限層級分為兩大類功能級權限,又稱操作權限,使用角色模型足夠數據級權限,支持數據行級、列級,又稱容權限,細粒度權限Ralasafe專注于數據級權限,使用策略機制進行管理。Ralasafe也提供了功能級權限實現, 該功能可選,并不耦合。Ralasafe系統架構安全引擎,該引擎解析授權策略,對所有訪問進行過濾。從2個方向進行控制: 從系統獲取數據,比如查詢訂單,查詢客戶資料向系統提交數據,比如修改某訂單,刪除某客戶資料管理界面,通過管理界面皿管理員可以輕松管理、設計授權策略,并在線仿真測試。Ralasafe是服務,而不是框架。對應用程序沒有要求

16、,也不需要修改業務數據庫。Ralasafe的結構性數據與業務數據獨立保存在數據庫,非結構性數據保存在文件系統,方 便移植。模式三:注解和攔截器實現權限通用模型的設計使用這種設計方案,可以很好地分離權限與系統本身的功能,讓開發過程更加關注系 統的核心功能,同時可以很容易做到開發時的任務劃分,同時使項目代碼的可讀性大大提 升。權限模型的常量定義:一個系統里最常見的需求莫過于權限、角色,我們需要兩個類,一個表明都有什么權限(例 如:刪除帖子權限、編輯帖子權限,等等);另一個類表明,各個角色都有什么權限。這樣 子相當于定義了一個權限和角色模型。攔截器與注解:攔截器(Invocation)在在流行的開源

17、框架中很常見,依賴的技術就是Java的動態代理。 許多流行的框架都提供實現攔截器的接口,可以很簡單就實現一個攔截器,此文不表如何實 現。注解(Annotations)是JAVA在5.0后引入的特性,它引入的目的是為了替代一些簡單 的配置到java代碼里,而不用原來的xml。注解請求示例:一般的框架,都會有一個controller類,以下用偽代碼表示:public class ThreadsControllerPriCheckRequired(MemberPrivilegeIdentity.CREATE_THREAD)public String createThread()return crea

18、teThread;如代碼中所示,一個controller里的一個method對應一個URL請求(例中所示為創建帖子)。 我們只需要在其方法上標注 PriCheckRequired(MemberPrivilegeIdentity.CREATE_THREA D), PriCheckRequired 就是注解,其傳遞了 一個信息 MemberPrivilegeIdentity.CREATE_ THREAD,這也就是前文說的權限類中的創建帖子權限。可以想像在攔截器里要做的事情: 攔截器一般都是實現一個框架提供的接口來實現,常用框架都支持。.根據規定好的request請求的參數,取到用戶屬于哪個角色。.

19、根據controller中注解,取到當前要判斷的權限。.對比用戶角色是否有注解中的權限,如果有,放行,反之攔截。具體的實現過程:攔截器的代碼實現與框架有關:rose框架如何實現攔截器請看 code.google./p/paoding-rose/wiki/Rose_Code_Fragment_Interceptor模式四:基于webwork和過濾器實現無代碼侵入的原子級界面權限修改webwork的基類UIBean來實現頁面的權限控制:1、首先將頁面的權限定義保存到數據庫或xml的配置文件中;2、編寫一個監聽器LoadPagePermissionListener來從權限的描述文件中,加載權限信息 到緩存;3、編寫頁面權限過濾器,例如PagePermissionFilter,實現對頁面請求的過濾;4、當用戶請求一個web表單時,首先通過.action去請求,此時.action被 PagePermissionFilter過濾器攔截到,此過濾器中從用戶所請求的web表單對應的XML權 限描述文件或

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論