RBAC基於角色的權限管理模型


一、權限管理模型的必要性:

              a. 安全性:防止誤操作,防止數據泄露,保證信息的安全。

              b. 數據隔離:保持不同的角色具有不同的權限,只能看到自己權限范圍內的數據

 

二、權限管理模型的發展:

              a. 傳統的權限管理:隨着用戶數量的增大和用戶權限區別的增大,傳統的權限管理需要針對每個用戶依次管理,成本較高。

              b. RBAC:Role-Based Access Control 用戶-角色-權限,權限與角色相關聯,用戶與角色相關聯,通過對用戶賦予相應的角色,再去獲取相應的權限,從而實現了用戶與權限的解耦,具有很好的擴展性和通用性。

 

三、RBAC的三個原則:

              a. 最小特權原則:即通過對每個角色賦予相應的權限,通過對每個用戶賦予相應的角色,從而實現給用戶分配相應的權限,保證該權限不超過該用戶完成其任務所需要的權限即可。

              b. 責任分離原則:指的是針對敏感任務,分配兩個責任上相互制約的兩個角色,比如針對財務管理員和會計。

              c. 數據抽象原則:主要是通過抽象許可權來實現。比如財務上的信用等抽象許可權。

 

四、RBAC的數據庫設計

              a. 用戶表

              b. 角色表

              c. 權限表

              d. 用戶角色表

              e. 角色權限表

             

 

 

五、基於RBAC的實現流程

              a. 首先針對權限的校驗的業務邏輯在一個父類中實現,其余子類均需要實現該父類,從而實現針對用戶的權限的控制。

              b. 用戶訪問時,首先查詢用戶表判斷用戶的狀態是否是可用。

              c. 然后根據用戶 id查詢 用戶角色表,得到用戶的角色id

              d. 根據角色 id 查詢 權限角色表,得到該用戶在該角色下的權限id

              e. 根據權限 id 查詢 權限表,得到該用戶在該角色下的權限。

 

六、主流的權限管理框架

              a. Spring Security

              b. Apache Shiro


免責聲明!

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



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