1. 程式人生 > 其它 >RBAC許可權管理

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萬員工部門可能就幾十個),使部門擁有部門許可權,這樣這個部門的所有使用者都有了部門許可權,而不需要為每一個使用者再單獨指定角色,極大的減少了分配許可權的工作量。

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

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

例項分析

思維導圖:

資料庫設計:

系統原型介面設計:統一許可權管理系統