許可權管理系統(四) RBAC許可權模型分類介紹

2021-09-08 22:53:05 字數 1818 閱讀 4386

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)。

1rbac0

rbac0,它是rbac0的核心,rbac1、rbac2、rbac3都是先後在rbac0上的擴充套件。rbac0定義了能構成rbac控制系統的最小的元素集合,rbac0由四部分構成:

a、使用者(user)

b、角色(role)

c、會話(session)

d、許可(pemission),其中許可又包括「操作」和「控制物件」其中許可被賦予角色,而不是使用者,當乙個角色被指定給乙個使用者時,此使用者就擁有了該角色所包含的許可。會話是動態的概念,使用者必須通過會話才可以設定角色,是使用者與啟用的角色之間的對映關係。

圖中,使用者與角色是多對多的關係;角色和許可也是多對多的關係;使用者與會話是一對一關係;會話與角色是一對多關係;

2rbac1

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,基於角色的訪問控制 就是使用者通過角色與許可權進行關聯。簡單地說,乙個使用者擁有若干角色,每乙個角色擁有若干許可權。這樣,就構造成 使用者 角色 許可權 的授權模型。在這種模型中,使用者與角色之間,角色與許可權之間,一般者是多對多的關係。...