角色訪問控制(RBAC)

2021-04-08 16:29:57 字數 2292 閱讀 2156

角色訪問控制(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。

凡是用過rdbms都知道,n:m 的關係需要乙個中間表來儲存兩個表的關係。這ua和pa就相當於中間表。事實上,整個rbac都是基於關係模型。

session在rbac中是比較隱晦的乙個元素。標準上說:每個session是乙個對映,乙個使用者到多個role的對映。當乙個使用者啟用他所有角色的乙個子集的時候,建立乙個session。每個session和單個的user關聯,並且每個user可以關聯到一或多個session.

在rbac系統中,user實際上是在扮演角色(role),可以用actor來取代user,這個想法來自於business modeling with uml一書actor-role模式。考慮到多人可以有相同許可權,rbac引入了group的概念。group同樣也看作是actor。而user的概念就具象到乙個人。

這裡的group和gbac(group-based access control)中的group(組)不同。gbac多用於作業系統中。其中的group直接和許可權相關聯,實際上rbac也借鑑了一些gbac的概念。

group和user都和組織機構有關,但不是組織機構。二者在概念上是不同的。組織機構是物理存在的公司結構的抽象模型,包括部門,人,職位等等,而許可權模型是對抽象概念描述。組織結構一般用martin fowler的party或責任模式來建模。

party模式中的person和user的關係,是每個person可以對應到乙個user,但可能不是所有的user都有對應的person。party中的部門department或組織organization,都可以對應到group。反之group未必對應乙個實際的機構。例如,可以有副經理這個group,這是多人有相同職責。

引入group這個概念,除了用來解決多人相同角色問題外,還用以解決組織機構的另一種授權問題:例如,a部門的新聞我希望所有的a部門的人都能看。有了這樣乙個a部門對應的group,就可直接授權給這個group。

role作為乙個使用者(user)與許可權(privilege)的**層,解耦了許可權和使用者的關係,所有的授權應該給予role而不是直接給user或group。privilege是許可權顆粒,由operation和resource組成,表示對resource的乙個operation。例如,對於新聞的刪除操作。role-privilege是many-to-many的關係,這就是許可權的核心。

基於角色的訪問控制方法(rbac)的顯著的兩大特徵是:1.由於角色/許可權之間的變化比角色/使用者關係之間的變化相對要慢得多,減小了授權管理的複雜性,降低管理開銷。2.靈活地支援企業的安全策略,並對企業的變化有很大的伸縮性。

角色訪問控制(RBAC)

角色訪問控制 rbac 引入了role的概念,目的是為了隔離user 即動作主體,subject 與privilege 許可權,表示對resource的乙個操作,即operation resource role作為乙個使用者 user 與許可權 privilege 的 層,解耦了許可權和使用者的關係...

角色訪問控制(RBAC)

角色訪問控制 rbac 引入了role的概念,目的是為了隔離user 即動作主體,subject 與privilege 許可權,表示對resource的乙個操作,即operation resource role作為乙個使用者 user 與許可權 privilege 的 層,解耦了許可權和使用者的關係...

RBAC 基於角色的訪問控制

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