ERP系統:後台權限設計

ERP系统:后台权限设计

在做企業級系統如ERP和OA時,基於系統框架先前要做的就是權限管理系統。本文主要講的是按照RBAC來看權限分配。

ERP系统:后台权限设计

根據人員職級的不同所使用的系統功能不同,當人員使用相同功能時,根據組織機構的不同,看見的數據不同。按照不同的維度,進行權限的劃分,而不同。

其一基於角色的訪問權限控制(RBAC)模型,人員角色來賦值給用戶的權限管理,可以分為兩大類型:功能權限、數據權限。

那麼現在我們就先按照RBAC來看權限分配。

一、背景

在對應系統中每個用戶所看見的界面功能和數據不可能都一樣,而是根據人員的組織機構和職級不同進行相應的區分。

舉個例子:

  • 部門經理可見可操作功能‘業務報表’,員工不可見。
  • 業務A部門經理在‘業務報表’中只能看見本部門業務A部門的數據。而總經理可在‘業務報表’中,可查看所有部門業務A、B、C、3個部門的數據。

這時就需要進行對應的權限分配。

二、RBAC

經典模型RBAC模型是現在權限管理系統的基礎,但包括不限於此。根據公司組織架構不同設計有所不同,或2B業務是設計的通用權限劃分,RBAC模型可分為:RBAC_0、RBAC_1、RBAC_2、 RBAC_3共4個版本。其他3個模型都是基於RBAC_0演化的。

先簡述下這4個RBAC模型:

  • RBAC_0模型: 權限——角色——用戶。
ERP系统:后台权限设计

圖一

  • RBAC_1模型:基於RBAC_0增加了子角色,子角色可繼承父角色的所有權限。
  • RBAC_2模型:基於RBAC_0增加了角色互斥,互斥的角色不可同時賦予一個用戶賬號。
  • RBAC_3模型:結合了RBAC_0、RBAC_1、RBAC_2,目前為更全面更復雜的模型。

三 、使用場景

基於RBAC來做的權限賦予角色再賦予用戶。

1. 功能權限

配置每個用戶所見及所能操作的功能項不同。

當在主系統中存在不同子系統時,選定對應子系統將不同的功能項賦予到指定的角色上。

ERP系统:后台权限设计

圖二

2. 數據權限

根據組織機構所屬部門不同,用戶使用相同功能時所能看見的展示數據是不一樣的,因根據公司業務情況不同。

  • 其一直接套用組織機構進行權限劃分,缺點不可配置,無法根據實際業務跨部門查看數據。
  • 其二根據組織機構再次進行配置劃分數據權限,缺點為每個組織機構都進行數據權限分配。
ERP系统:后台权限设计

圖三

3. 角色結合

在某個組織機構下選取的崗位角色,賦予對應的功能角色和數據角色。

崗位角色=功能角色+數據角色

ERP系统:后台权限设计

圖四

4. 配置賬號

將不同的用戶賬號賦予不同的崗位權限,因我們在角色就是用的多角色構成關係,及崗位角色被賦予了多個功能權限與數據權限。因此,一個用戶賬號在此只需要對應一個崗位角色即可。

ERP系统:后台权限设计

圖五

若無任何一權限進入系統後則應有“無權限”提示,對於企業級系統如ERP、OA主體為公司員工使用,而賬號分配及權限分配都是有專人負責進行,並無開放註冊功能。

按照不同的維度進行權限的劃分還可以對接人力資源管理系統,按照組織機構進行權限劃分,也可在當前設置按鈕中加入共享功能再特定人員(如:分部、部門、個人、角色),這時根據系統主體架構而定。

四、最後的話

看到這裡相信只要產品同學對RBAC 4 個模型有了認知後,那麼做一個簡單的權限系統應該只是水到渠成,做一個簡單的權限系統應該沒問題。

以僅代表個人觀點,不足之處歡迎交流。

題圖來自 Pexels,基於 CC0 協議


分享到:


相關文章: