### **以角色為主的權限控管(Role-Based Access Control,簡稱RBAC)** `以角色為主的權限控管的一個好處是可以有效解決擴大規模(Scalability)的問題`。在一般的企業中,角色的個數通常會遠小於使用者的個數,即通常會有許多個使用者使用同一個角色,例如:在銀行中,擁有櫃員這個角色的使用者通常不會只有一個,而且可能數以百計。因此,以角色為中介者來分配權限,在管理上要比將權限直接分配給使用者要簡單許多。另一個主要好處是角色也兼具有組織層面上的意義,即角色通常可以對應到組織上的職位或職責,因此,可以用之來幫助擬定資訊安全政策及其實作。另外,如果一個人員調職或離職,只需重新分配角色或取消其角色的擁有即可,在管理方面也方便許多。 --- ### 1. 定義 RBAC模型(Role-Based Access Control:基於角色的訪問控制),認爲權限授權的過程可以抽象地概括爲:Who是否可以對What進行How的訪問操作,並對這個邏輯表達式進行判斷是否爲True的求解過程,也即是將權限問題轉換爲What、How的問題,Who、What、How構成了訪問權 ### 2. 角色模型 #### **RBAC0**:權限賦予角色,角色賦予帳號,帳號、角色、權限之間是多對多的關係。  **RBAC1(角色分級模型)**:RBAC1建立在RBAC0基礎之上,在角色中引入了繼承的概念。簡單理解就是,給角色可以分成幾個等級,每個等級權限不同,從而實現更細粒度的權限管理。 例如:一個公司的銷售經理可能是分幾個等級的,譬如除了銷售經理,還有銷售副經理,而銷售副經理只有銷售經理的部分權限。這時候,我們就可以採用RBAC1的分級模型,把銷售經理這個角色分成多個等級,給銷售副經理賦予較低的等級即可。  #### **RBAC2(角色限制模型)**:引入了角色間的限制條件,共有4種限制條件。RBAC2 是在RBAC0 權限模型的基礎上,在用戶和角色以及會話和角色之間分別加入了約束的概念(**職責分離**),職責分離指的是同一個人不能擁有兩種特定的權限(例如財務部的納入和支出,或者運動員和裁判員等等)。  (1) 角色互斥:同一個用戶在兩個互斥角色中只能選擇一個(也會存在一個用戶擁有多個角色情況,但是需要通過切換用戶角色來實現對不同業務操作) (2) 基數限制:一個用戶擁有的角色是有限的,一個角色擁有的許可也是有限的 (3) 先決條件限制:用戶想要獲得高級角色,首先必須擁有低級角色 #### **RBAC3(統一模型)**:RBAC3是RBAC1和RBAC2的合集,所以RBAC3既有角色分層,也包括可以增加各種限制。  --- 參考資料: * [角色階層與權限繼承](https://www.gss.com.tw/eis/60-eis47/304-2019-03-14-06-35-14) * [權限管理系統設計](https://ppfocus.com/0/edd90f3ba.html) * [RBAC模型](https://www.v2tn.com/content/1634738414956378)
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.