基于RBAC的權限設計模型_第1頁
基于RBAC的權限設計模型_第2頁
基于RBAC的權限設計模型_第3頁
基于RBAC的權限設計模型_第4頁
基于RBAC的權限設計模型_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、基于RBAC的權限設計模型RBAC 介紹 RBAC 模型作為目前最為廣泛接受的權限模型。NIST (The National Institute of Standards and Technology,美國國家標準與技術研究院標準RBAC模型由4個部件模型組成,這4個部件模型分別是基本模型RBAC0(Core RBAC、角色分級模型RBAC1(Hierarchal RBAC、角色限制模型RBAC2(Constraint RBAC和統(tǒng)一模型RBAC3(Combines RBAC1。RBAC0模型如圖1所示。 圖表1 RBAC 0模型l RBAC0 定義了能構成一個RBAC控制系統(tǒng)的最小的元素集合

2、在RBAC之中,包含用戶users(USERS、角色roles(ROLES、目標objects(OBS、操作operations(OPS、許可權permissions(PRMS五個基本數據元素,權限被賦予角色,而不是用戶,當一個角色被指定給一個用戶時,此用戶就擁有了該角色所包含的權限。會話sessions是用戶與激活的角色集合之間的映射。RBAC0與傳統(tǒng)訪問控制的差別在于增加一層間接性帶來了靈活性,RBAC1、RBAC2、RBAC3都是先后在RBAC0上的擴展。l RBAC1 引入角色間的繼承關系角色間的繼承關系可分為一般繼承關系和受限繼承關系。一般繼承關系僅要求角色繼承關系是一個絕對偏序關系

3、,允許角色間的多繼承。而受限繼承關系則進一步要求角色繼承關系是一個樹結構。l RBAC2 模型中添加了責任分離關系RBAC2 的約束規(guī)定了權限被賦予角色時,或角色被賦予用戶時,以及當用戶在某一時刻激活一個角色時所應遵循的強制性規(guī)則。責任分離包括靜態(tài)責任分離和動態(tài)責任分離。約束與用戶-角色-權限關系一起決定了RBAC2模型中用戶的訪問許可。l RBAC3 包含了RBAC1和RBAC2既提供了角色間的繼承關系,又提供了責任分離關系。建立角色定義表。定出當前系統(tǒng)中角色。因為有繼承的問題,所以角色體現出的是一個樹形結構。 2 權限設計:配置資源以及資源的操作 : 這里資源可以定義為一個通用的資源模型。

4、提供通用的資源統(tǒng)一接口。數據庫 ER 圖: 關系圖: 3 分析:根據以上的類關系圖和ER圖可以看出。整個權限可以抽象為五個對象組成。 OrgBean : 用于描述org模型。Role : 用于描述角色。Permission : 用于描述權限。Resource : 用于描述資源。Operation : 用于描述操作。其中Permission中有Resource , Operation 的聚合,資源和操作組成權限。Role 和 Permission 都有自包含。因為設計到權限的繼承。資源Resource 也可能出現一顆樹形結構,那資源也要有自包含。思想 :權限系統(tǒng)的核心由以下三部分構成: 1. 創(chuàng)

5、造權限, 2. 分配權限, 3. 使用權限,然后,系統(tǒng)各部分的主要參與者對照如下: 1. 創(chuàng)造權限 - Creator 創(chuàng)造, 2. 分配權限 - Administrator 分配, 3. 使用權限 - User :1. Creator 創(chuàng)造 Privilege , Creator 在設計和實現系統(tǒng)時會劃分,一個子系統(tǒng)或稱為模塊,應該有哪些權限。這里完成的是 Privilege 與 Resource 的對象聲明,并沒有真正將 Privilege 與具體 Resource 實例聯系在一起,形成 Operator 。2. Administrator 指定 Privilege 與 Resource

6、Instance 的關聯 。在這一步, 權限真正與資源實例聯系到了一起, 產生了 Operator ( Privilege Instance 。 Administrator 利用 Operator 這個基本元素,來創(chuàng)造他理想中的權限模型。如,創(chuàng)建角色,創(chuàng)建用戶組,給用戶組分配用戶,將用戶組與角色關聯等等 . 這些操作都是由 Administrator 來完成的。3. User 使用 Administrator 分配給的權限去使用各個子系統(tǒng)。 Administrator 是用戶,在他的心目中有一個比較適合他管理和維護的權限模型。于是,程序員只要回答一個問題,就是什么權限可以訪問什么資源,也就是前

7、面說的 Operator 。程序員提供 Operator 就意味著給系統(tǒng)穿上了盔甲。 Administrator 就可以按照他的意愿來建立他所希望的權限框架 可以自行增加,刪除,管理 Resource 和 Privilege 之間關系??梢宰孕性O定用戶 User 和角色 Role 的對應關系。 ( 如果將 Creator 看作是 Basic 的發(fā)明者, Administrator 就是 Basic 的使用者,他可以做一些腳本式的編程 Operator 是這個系統(tǒng)中最關鍵的部分,它是一個紐帶,一個系在 Programmer , Administrator , User 之間的紐帶。4 權限API

8、getPermissionByOrgGuid(String orgGuid 通過傳入一個org的Guid , 拿到當前這個org對象都具有那些訪問權限。 getSourcePermissionByOrgGuid(String orgGuid , String resouceGuid通過傳入一個org的Guid 和 一個資源的Guid , 返回改Org對當前這個資源的訪問權限。getPermissionByResourceGuid(String resource通過傳入一個資源的Guid , 得到當前資源下都有那些權限定義。havingHeritPermission(String orgGuid

9、 , String resouceGuid : Boolean傳入一個orgGuid, 資源GUID ,查看改OrgGuid下對資源是否有向下繼承的權限。這里繼承是資源的繼承。即對父欄目有權限,可以繼承下去對父欄目下的子欄目同樣有權限。havingPermission(String orgGuid , String resourceGuid : Boolean判斷某Org對某一資源是否用權限。  以上是粗粒度的權限 API 。 以下為細粒度的權限: getOperationByPermission(String permissionGuid 通過 permission 的 Guid

10、得到該 permission 的所有有效操作。 getOperationByGuid(String permissionGuid , String resourceGuid 通過 permision 的 Guid , 資源的 Guid 得到該資源下所有的有效操作。 screeningOpreationByGuid (String permissionGuid , String resourceGuid , String orgGuid 通過 permission , resource , org 的 Guid 得到改 Org 對這一資源的有效操作。 hasOperation(String operationGuid : boolean 通過傳入的 operationGuid 返回是否具有操作權限。 5 權限的實現: 1 表單式認證,這是常用的,但用戶到達一個不被授權訪問的資源時, Web 容器就發(fā) 出一個 html 頁面,要求輸入用戶名和密碼。 2 用 Filter 防止用戶訪問一些未被授權的資源, Filter 會截取所有 Request/Response , 然后放置一個驗證通過的標識在用戶的 Session 中,然后 Filter 每次依靠這個標識來決定是 否放行 Response 。 這個模式分為:

溫馨提示

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

評論

0/150

提交評論