rbac是role-basedaccess control的英文縮寫,意思是基於角色的訪問控制。rbac認為許可權授權實際上是who、what、how的問題。在rbac模型中,who、what、how構成了訪問許可權三元組,也就是「who對what(which)進行how的操作,也就是「主體」對「客體」的操作,其中who——是許可權的擁有者或主體(如:user、role),what——是資源或物件(resource、class)
rbac其實是一種分析模型,主要分為:基本模型rbac0(core rbac)、角色分層模型rbac1(hierarchal rbac)、角色限制模型rbac2(constraint rbac)和統一模型rbac3(combines rbac)。
1)rbac0
rbac0,它是rbac0的核心,rbac1、rbac2、rbac3都是先後在rbac0上的擴充套件。rbac0定義了能構成rbac控制系統的最小的元素集合,rbac0由四部分構成:
a、使用者(user)
b、角色(role)
c、會話(session)
d、許可(pemission),其中許可又包括「操作」和「控制物件」其中許可被賦予角色,而不是使用者,當乙個角色被指定給乙個使用者時,此使用者就擁有了該角色所包含的許可。會話是動態的概念,使用者必須通過會話才可以設定角色,是使用者與啟用的角色之間的對映關係。
圖中,使用者與角色是多對多的關係;角色和許可也是多對多的關係;使用者與會話是一對一關係;會話與角色是一對多關係;
2)rbac1
rbac1,它是rbac角色的分層模型,rbac1建立在rbac0基礎之上,在角色中引入了繼承的概念,有了繼承那麼角色就有了上下級或者等級關係
rbac2,它是rbac的約束模型,rbac2也是建立的rbac0的基礎之上的,在rbac0基礎上假如了約束的概念,主要引入了靜態職責分離ssd(static separation of duty)和動態職責分離dsd(dynamic separation of duty)。
ssd是使用者和角色的指派階段加入的,主要是對使用者和角色有如下約束:
a、互斥角色:同乙個使用者在兩個互斥角色中只能選擇乙個
b、基數約束:乙個使用者擁有的角色是有限的,乙個角色擁有的許可也是有限的
c、先決條件約束:使用者想要獲得高階角色,首先必須擁有低階角色
dsd是會話和角色之間的約束,可以動態的約束使用者擁有的角色,如乙個使用者可以擁有兩個角色,但是執行時只能啟用乙個角色。
rbac3,它是rbac1與rbac2合集,所以rbac3是既有角色分層又有約束的一種模型
以上就是rbac模型的四種設計思想,現在我們用的許可權模型都是在rbac模型的基礎上根據自己的業務進行組合和改進。
RBAC許可權模型
rbac role based access control,基於角色的訪問控制 就是使用者通過角色與許可權進行關聯。簡單地說,乙個使用者擁有若干角色,每乙個角色擁有若干許可權。這樣,就構造成 使用者 角色 許可權 的授權模型。在這種模型中,使用者與角色之間,角色與許可權之間,一般者是多對多的關係。...
RBAC許可權管理
rbac role based access control,基於角色的訪問控制 就是使用者通過角色與許可權進行關聯。簡單地說,乙個使用者擁有若干角色,每乙個角色擁有若干許可權。這樣,就構造成 使用者 角色 許可權 的授權模型。在這種模型中,使用者與角色之間,角色與許可權之間,一般者是多對多的關係。...
RBAC許可權管理
rbac role based access control,基於角色的訪問控制 就是使用者通過角色與許可權進行關聯。簡單地說,乙個使用者擁有若干角色,每乙個角色擁有若干許可權。這樣,就構造成 使用者 角色 許可權 的授權模型。在這種模型中,使用者與角色之間,角色與許可權之間,一般者是多對多的關係。...