權限管理RBAC模型概述


一、什么是RBAC模型

RBAC模型(Role-Based Access Control:基於角色的訪問控制)模型是比較早期提出的權限實現模型,在多用戶計算機時期該思想即被提出,其中以美國George Mason大學信息安全技術實驗室(LIST)提出的RBAC96模型最具有代表,並得到了普遍的公認。

RBAC認為權限授權的過程可以抽象地概括為:Who是否可以對What進行How的訪問操作,並對這個邏輯表達式進行判斷是否為True的求解過程,也即是將權限問題轉換為Who、What、How的問題,Who、What、How構成了訪問權限三元組,具體的理論可以參考RBAC96。

二、RBAC核心對象

用戶、角色、權限

三、RBAC模型組成

3.1:RBAC0

RBAC0是基礎,很多產品只需基於RBAC0就可以搭建權限模型了。在這個模型中,我們把權限賦予角色,再把角色賦予用戶。用戶和角色,角色和權限都是多對多的關系。用戶擁有的權限等於他所有的角色持有權限之和。

譬如我們做一款企業管理產品,可以抽象出幾個角色,譬如銷售經理、財務經理、市場經理等,然后把權限分配給這些角色,再把角色賦予用戶。這樣無論是分配權限還是以后的修改權限,只需要修改用戶和角色的關系,或角色和權限的關系即可,更加靈活方便。此外,如果一個用戶有多個角色,譬如王先生既負責銷售部也負責市場部,那么可以給王先生賦予兩個角色,即銷售經理、市場經理,這樣他就擁有這兩個角色的所有權限。

3.2:RBAC1

RBAC1建立在RBAC0基礎之上,在角色中引入了繼承的概念,即增加角色組的概念。簡單理解就是,給角色分成幾個等級,用戶關聯角色組、角色組關聯角色,角色關聯權限。從而實現更細粒度的權限管理。

3.3:RBAC2

RBAC2同樣建立在RBAC0基礎之上,僅是對用戶、角色和權限三者之間增加了一些限制。這些限制可以分成兩類,即靜態職責分離SSD(Static Separation of Duty)和動態職責分離DSD(Dynamic Separation of Duty)。

靜態職責分離,如果一個任務有3個步驟,那么要求必要有至少3個不同用戶處理完畢,任務才完結。又如,一個任務有2個步驟,要求必須由兩個不同角色的用戶來處理,且不能是同一個用戶,即一個用戶不可同時擁有該兩個角色,這種可稱之為靜態互斥角色。

動態職責分離,動態分配系統資源和功能的權限,如某些資源在特定時間才允許對某些用戶開放。

3.4:RBAC3

RBAC3是RBAC1和RBAC2的合集,所以RBAC3既有角色分層,也包括可以增加各種限制。

3.5:拓展RBAC

3.5.1:針對物理資源的權限管理

    系統資源可分為邏輯資源和物理資源。邏輯資源如軟件系統的菜單、頁面、按鈕等等;物理資源如視頻文件、音頻文件、pdf文件等等。其中邏輯資源可以通過權限來控制,物理資源可通過在角色下設置資源列表,通過角色關聯資源列表實現,也可直接將用戶和資源列表關聯實現。

3.5.2:增加用戶組管理

     基於RBAC模型,還可以適當延展,使其更適合我們的產品。譬如增加用戶組概念,用戶組凌駕用戶之上,是用戶的一個集合。可通過增加UserGroup實現,也可以通過引入組織架構實現(即用戶的管理變成了組織-部門-用戶的管理)。

四、RBAC模型表結構參考

組織表、
部門表、
用戶組表、
用戶表,
角色組表,
角色表、
用戶角色表,
資源表,
角色資源表、
用戶資源表、
權限表、
角色權限表。
權限資源表

五、引用

https://www.cnblogs.com/guosiliang/p/13731501.html

https://www.docin.com/p-509863257.html

https://www.jianshu.com/p/743073111d55


免責聲明!

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



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