RBAC權限管理


權限模型介紹

  RBAC(Role-Based Access Control)即:基於角色的權限控制。通過角色關聯用戶,角色關聯權限的方式間接賦予用戶權限。

  RBAC模型的分類:RBAC0、RBAC1、RBAC2、RBAC3 四種。其中RBAC0是基礎,也是最簡單的,相當於底層邏輯,RBAC1、RBAC2、RBAC3都是以RBAC0為基礎的升級。

RBAC0模型

最簡單的用戶、角色、權限模型。這里面又包含了2種:

  1. 用戶和角色是多對一關系,即:一個用戶只充當一種角色,一種角色可以有多個用戶擔當。
  2. 用戶和角色是多對多關系,即:一個用戶可同時充當多種角色,一種角色可以有多個用戶擔當。

RBAC1模型

相對於RBAC0模型,增加了子角色,引入了繼承概念,即子角色可以繼承父角色的所有權限。

使用場景:如某個業務部門,有經理、主管、專員。主管的權限不能大於經理,專員的權限不能大於主管,如果采用RBAC0模型做權限系統,極可能出現分配權限失誤,最終出現主管擁有經理都沒有的權限的情況。而RBAC1模型就很好解決了這個問題,創建完經理角色並配置好權限后,主管角色的權限繼承經理角色的權限,並且支持在經理權限上刪減主管權限。

RBAC2模型

基於RBAC0模型,增加了對角色的一些限制:角色互斥、基數約束、先決條件角色等。

  • 角色互斥:同一用戶不能分配到一組互斥角色集合中的多個角色,互斥角色是指權限互相制約的兩個角色。案例:財務系統中一個用戶不能同時被指派給會計角色和審計員角色。
  • 基數約束:一個角色被分配的用戶數量受限,它指的是有多少用戶能擁有這個角色。例如:一個角色專門為公司CEO創建的,那這個角色的數量是有限的。
  • 先決條件角色:指要想獲得較高的權限,要首先擁有低一級的權限。例如:先有副總經理權限,才能有總經理權限。
  • 運行時互斥:例如,允許一個用戶具有兩個角色的成員資格,但在運行中不可同時激活這兩個角色。

RBAC3模型

稱為統一模型,它包含了RBAC1和RBAC2,利用傳遞性,也把RBAC0包括在內,綜合了RBAC0、RBAC1和RBAC2的所有特點,這里就不在多描述了。

什么是權限

  權限是資源的集合,這里的資源指的是軟件中所有的內容,包括模塊、菜單、頁面、字段、操作功能(增刪改查)等等。具體的權限配置上,目前形式多種多樣,按照我個人的理解,可以將權限分為:頁面權限、操作權限和數據權限

  • 頁面權限:所有系統都是由一個個的頁面組成,頁面再組成模塊,用戶是否能看到這個頁面的菜單、是否能進入這個頁面就稱為頁面權限。
  • 操作權限:用戶凡是在操作系統中的任何動作、交互都是操作權限,如增刪改查等。
  • 數據權限:一般業務管理系統,都有數據私密性的要求:哪些人可以看到哪些數據,不可以看到哪些數據。

用戶組的使用

  當平台用戶基數增大,角色類型增多時,如果直接給用戶配角色,管理員的工作量就會很大。這時候我們可以引入一個概念“用戶組”,就是將相同屬性的用戶歸類到一起。

  例如:加入用戶組的概念后,可以將部門看做一個用戶組,再給這個部門直接賦予角色(1萬員工部門可能就幾十個),使部門擁有部門權限,這樣這個部門的所有用戶都有了部門權限,而不需要為每一個用戶再單獨指定角色,極大的減少了分配權限的工作量。

  同時,也可以為特定的用戶指定角色,這樣用戶除了擁有所屬用戶組的所有權限外,還擁有自身特定的權限。

  用戶組的優點,除了減少工作量,還有更便於理解、增加多級管理關系等。如:我們在進行組織機構配置的時候,除了加入部門,還可以加入科室、崗位等層級,來為用戶組內部成員的權限進行等級上的區分。

實例分析

思維導圖:

數據庫設計:

系統原型界面設計:統一權限管理系統


免責聲明!

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



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