RBAC權限設計


http://blog.csdn.net/ms_x0828/article/details/7035956

RBAC 模型作為目前最為廣泛接受的權限模型

角色訪問控制(RBAC)引入了Role的概念,目的是為了隔離User(即動作主體,Subject)與Privilege(權限,表示對Resource的一個操作,即Operation+Resource)。 Role作為一個用戶(User)與權限(Privilege)的代理層,解耦了權限和用戶的關系,所有的授權應該給予Role而不是直接給User或 Group。Privilege是權限顆粒,由Operation和Resource組成,表示對Resource的一個Operation。例如,對於新聞的刪除操作。Role-Privilege是many-to-many的關系,這就是權限的核心。

基於角色的訪問控制方法(RBAC)的顯著的兩大特征是:

    1.由於角色/權限之間的變化比角色/用戶關系之間的變化相對要慢得多,減小了授權管理的復雜性,降低管理開銷。

    2.靈活地支持企業的安全策略,並對企業的變化有很大的伸縮性。

RBAC的基本概念:

RBAC認為權限授權實際上是Who、What、How的問題。在RBAC模型中,who、what、how構成了訪問權限三元組,也就是“Who對What(Which)進行How的操作”。

Who:權限的擁用者或主體(如Principal、User、Group、Role、Actor等等)

What:權限針對的對象或資源(Resource、Class)。

How:具體的權限(Privilege,正向授權與負向授權)。

Operator:操作。表明對What的How操作。也就是Privilege+Resource

Role:角色,一定數量的權限的集合。權限分配的單位與載體,目的是隔離User與Privilege的邏輯關系.

Group:用戶組,權限分配的單位與載體。權限不考慮分配給特定的用戶而給組。組可以包括組(以實現權限的繼承),也可以包含用戶,組內用戶繼承組的權限。User與Group是多對多的關系。Group可以層次化,以滿足不同層級權限控制的要求。

RBAC的關注點在於Role和User, Permission的關系。稱為User assignment(UA)和Permission assignment(PA).關系的左右兩邊都是Many-to-Many關系。就是user可以有多個role,role可以包括多個user。

一、RBAC96模型

RBAC96模型家族,其中包括了RBAC0~RBAC3四個概念模型。他們之間的關系如下圖:

RBAC0定義了能構成一個RBAC控制系統的最小的元素集合

在 RBAC之中,包含用戶users(USERS)、角色roles(ROLES)、目標objects(OBS)、操作operations(OPS)、許可權permissions(PRMS)五個基本數據元素,權限被賦予角色,而不是用戶,當一個角色被指定給一個用戶時,此用戶就擁有了該角色所包含的權限。會話sessions是用戶與激活的角色集合之間的映射。RBAC0與傳統訪問控制的差別在於增加一層間接性帶來了靈活性,RBAC1、 RBAC2、RBAC3都是先后在RBAC0上的擴展。RBAC0模型如下圖所示:

RBAC1 引入角色間的繼承關系

角色間的繼承關系可分為一般繼承關系和受限繼承關系。一般繼承關系僅要求角色繼承關系是一個絕對偏序關系,允許角色間的多繼承。而受限繼承關系則進一步要求角色繼承關系是一個樹結構

RBAC2 模型中添加了責任分離關系

RBAC2 的約束規定了權限被賦予角色時,或角色被賦予用戶時,以及當用戶在某一時刻激活一個角色時所應遵循的強制性規則。責任分離包括靜態責任分離和動態責任分離。約束與用戶-角色-權限關系一起決定了RBAC2模型中用戶的訪問許可

RBAC3 包含了RBAC1和RBAC2

 既提供了角色間的繼承關系,又提供了責任分離關系.RBAC3模型如下圖:

二、ARBAC97模型

ARBAC97模型是基於角色的角色管理模型,包括三個部分:

URA97:用戶-角色管理模型,該組件涉及用戶指派關系UA的管理,該關系把用戶與角色管理在一起.對該關系的修改權由管理角色,這樣,管理角色中的成員有權管理正規角色中的成員關系.

PRA97:權限-角色管理模型.該組件設計角色許可證的指派與撤銷.從角色的觀點來看,用戶和許可權有類似的特點,他們都是由角色聯系在一起的實在實體.

RRA97:角色-層次管理模型,為了便於對角色的管理,對角色又進行了分類.該組件設計3類角色,它們是:

1、能力(Abilitier)角色--僅以許可權和其他能力作為成員的角色

2、組(Groups)角色--僅以用戶和其他組為成員的一類角色

3、UP-角色--表示用戶與許可權的角色,這類角色對其成員沒有限制,成員可以是用戶、角色、許可權、能力、組或其他UP-角色

 

下面是我之前基於RBAC3設計的一個圖:

 
4


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM