http://blog.csdn.net/ms_x0828/article/details/7035956安全
RBAC 模型做爲目前最爲普遍接受的權限模型session
角色訪問控制(RBAC)引入了Role的概念,目的是爲了隔離User(即動做主體,Subject)與Privilege(權限,表示對Resource的一個操做,即Operation+Resource)。 Role做爲一個用戶(User)與權限(Privilege)的代理層,解耦了權限和用戶的關係,全部的受權應該給予Role而不是直接給User或 Group。Privilege是權限顆粒,由Operation和Resource組成,表示對Resource的一個Operation。例如,對於新聞的刪除操做。Role-Privilege是many-to-many的關係,這就是權限的核心。.net
基於角色的訪問控制方法(RBAC)的顯著的兩大特徵是:設計
1.因爲角色/權限之間的變化比角色/用戶關係之間的變化相對要慢得多,減少了受權管理的複雜性,下降管理開銷。代理
2.靈活地支持企業的安全策略,並對企業的變化有很大的伸縮性。對象
RBAC的基本概念:blog
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。ip
1、RBAC96模型ci
RBAC96模型家族,其中包括了RBAC0~RBAC3四個概念模型。他們之間的關係以下圖:
RBAC0定義了能構成一個RBAC控制系統的最小的元素集合
在 RBAC之中,包含用戶users(USERS)、角色roles(ROLES)、目標objects(OBS)、操做operations(OPS)、許可權permissions(PRMS)五個基本數據元素,權限被賦予角色,而不是用戶,當一個角色被指定給一個用戶時,此用戶就擁有了該角色所包含的權限。會話sessions是用戶與激活的角色集合之間的映射。RBAC0與傳統訪問控制的差異在於增長一層間接性帶來了靈活性,RBAC一、 RBAC二、RBAC3都是前後在RBAC0上的擴展。RBAC0模型以下圖所示:
RBAC1 引入角色間的繼承關係
角色間的繼承關係可分爲通常繼承關係和受限繼承關係。通常繼承關係僅要求角色繼承關係是一個絕對偏序關係,容許角色間的多繼承。而受限繼承關係則進一步要求角色繼承關係是一個樹結構
RBAC2 模型中添加了責任分離關係
RBAC2 的約束規定了權限被賦予角色時,或角色被賦予用戶時,以及當用戶在某一時刻激活一個角色時所應遵循的強制性規則。責任分離包括靜態責任分離和動態責任分離。約束與用戶-角色-權限關係一塊兒決定了RBAC2模型中用戶的訪問許可
RBAC3 包含了RBAC1和RBAC2
既提供了角色間的繼承關係,又提供了責任分離關係.RBAC3模型以下圖:
2、ARBAC97模型
ARBAC97模型是基於角色的角色管理模型,包括三個部分:
URA97:用戶-角色管理模型,該組件涉及用戶指派關係UA的管理,該關係把用戶與角色管理在一塊兒.對該關係的修改權由管理角色,這樣,管理角色中的成員有權管理正規角色中的成員關係.
PRA97:權限-角色管理模型.該組件設計角色許可證的指派與撤銷.從角色的觀點來看,用戶和許可權有相似的特色,他們都是由角色聯繫在一塊兒的實在實體.
RRA97:角色-層次管理模型,爲了便於對角色的管理,對角色又進行了分類.該組件設計3類角色,它們是:
一、能力(Abilitier)角色--僅以許可權和其餘能力做爲成員的角色
二、組(Groups)角色--僅以用戶和其餘組爲成員的一類角色
三、UP-角色--表示用戶與許可權的角色,這類角色對其成員沒有限制,成員能夠是用戶、角色、許可權、能力、組或其餘UP-角色
下面是我以前基於RBAC3設計的一個圖: