概述
RBAC模型(Role-Based Access Control:基於角色的訪問控制), 認為可以抽象的表示:
Who是否可以對What進行How的訪問操作
並針對這樣的邏輯進行求解的過程。
當然這樣的概念不僅限於軟體世界,套用到真實世界也是非常適合的,就以公司組織來說,
RBAC的公式就是非常貼近生活化的例子了。
誰可以對財務報表進行修改?
誰可以對公司規章進行新增?
基本模型的組成元素: RBAC0
- 用戶(User): 每個使用者可以被賦予不同角色。
- 角色(Role): 每個角色具有不同的存取權限。
- 許可權(Permission): 訪問許可權。
實際案例
假設我們有管理者跟一般使用者, 分別操作權限有所不同, 如下圖,管理者具有所有的操作權限, 而一般使用者只有查看個人訊息、修改個人用戶名稱的權限。
主要在角色中引入繼承的概念, 也就是替角色分組並區分等級, 每個等級所對應的權限也有所不同。
- 同一使用者不能擁有多個會發生權責衝突的角色。
- 互斥角色: 同一個用戶不能授予互斥關係的角色, 例如: 同一個員工不能同時為會計及研發。
- 基數約束: 一個用戶所被賦予的角色是有限的。
- 先決條件約束: 用戶想要擁有更高權限之前必須先具有前一級的權限。
- 同一使用者可以擁有多個會發生權責衝突的角色。
- 實際執行時只能選擇其中一個角色來擔任。
RBAC 3