許可權系統:6個許可權概念模型設計

架构师汤师爷發表於2024-11-12

大家好,我是湯師爺~

今天來來聊聊許可權的概念模型設計。

許可權的概念模型

使用者

在許可權模型中,使用者是系統許可權控制的核心物件,也是所有操作行為的直接主體。使用者的許可權決定了他們在系統中能夠訪問哪些資源,以及能執行哪些操作。

使用者代表系統中的實際操作人員,根據系統場景不同,可劃分為:

  • C端使用者:如普通消費者。
  • B端使用者:系統內部的員工,可能來自不同部門,承擔著不同的職責。

每個使用者都有唯一的身份標識,用於在系統中進行身份驗證和許可權校驗。使用者的基本資訊通常包括:使用者名稱、密碼、狀態等資訊。

角色

角色是許可權模型中連線使用者和許可權的橋樑。它代表一組許可權的集合,通常對應組織中的職位或職責,如管理員、運營經理、店長等。透過將許可權賦予角色,再將角色分配給使用者,系統可實現靈活高效的許可權管理。角色設計需考慮以下幾點:

  • 職責對應:角色應清晰反映使用者的工作職責,避免職責重疊或模糊。
  • 許可權適當:為角色分配合適的許可權,確保工作順利進行,同時避免許可權過大造成安全隱患。
  • 靈活可擴充套件:調整許可權時,只需修改角色的許可權集合,所有關聯該角色的使用者許可權都會隨之更新。

透過設計合理的角色,企業能有效管理使用者許可權,大幅降低許可權分配和維護的複雜度。

使用者組

使用者組是許可權模型中的重要工具,用於將許可權需求相似的使用者集合在一起,實現統一管理和高效授權。

透過將使用者新增到使用者組,併為使用者組分配角色或許可權,系統可以簡化許可權管理流程,提升管理效率。使用者組可以適配多種業務需求,例如:

  • 部門級別的許可權管理:將同一部門的使用者加入一個使用者組,統一管理許可權。
  • 專案級別的許可權管理:將參與同一專案的使用者加入一個使用者組,賦予專案所需的許可權。

職位

職位是使用者在組織中的職務和職責的具體體現,也是許可權模型中劃分許可權的重要依據。透過職位,可以為使用者分配符合其職責範圍的許可權,確保許可權控制精細化與業務需求一致。

不同職位對應不同的許可權需求,隨著職務範圍的擴大,許可權逐級遞增。常見的許可權劃分包括:

  • 普通員工:僅能訪問與執行日常工作相關的功能,如商品上下架、訂單處理和發貨管理。
  • 部門經理:除擁有普通員工的許可權外,還可管理部門業務,如稽核下屬的申請單和檢視部門績效資料。
  • 高階管理層:擁有全域性視角,可訪問所有功能,包括檢視經營報表、財務報表,以及制定業務策略。

一個職位通常對應一個角色,例如"財務經理"職位對應"財務管理角色"。然而,某些複雜職位可能需要多個角色來完成其職責。比如,"運營總監"可能同時需要"運營角色"和"人力資源角色"。

透過職位分配許可權,我們可以確保使用者只能訪問與其職責相關的資源,從而避免不必要的許可權濫用。

功能許可權

功能許可權控制著使用者在系統中可使用的功能模組、可訪問的頁面以及可執行的操作。簡單來說,它決定了你能看到哪些選單、訪問哪些頁面、點選哪些按鈕。

功能許可權的控制粒度通常包括:模組許可權、頁面許可權、按鈕許可權和欄位許可權。

資料許可權

資料許可權透過對列表資料的行級控制,實現不同使用者在系統中擁有不同的資料檢視範圍。

實現資料許可權的關鍵是明確資料規則的控制維度,常見的維度包括:

  • 建立人:按資料的建立者限制訪問範圍。
  • 組織單元:基於資料所屬的組織單元劃定訪問範圍。
  • 業務線:按資料所屬的業務線劃分訪問範圍。

以下是資料許可權在實際業務中的常見應用:

RBAC許可權模型示例

展示了RBAC許可權模型示例。SaaS平臺下可以管理多個租戶,每個租戶(如總部A、B、C)有獨立組織結構,保證資料隔離和系統靈活性。

每個租戶都有獨立的組織架構,租戶內可新增多使用者,實現人員管理。

一個角色可以關聯多個功能模組。例如,"店長"角色可能包括收銀、商品、庫存、客戶、財務和員工管理等功能,覆蓋門店運營所需的各項功能。

資料許可權也很關鍵。使用者"張三"的資料訪問僅限於門店A,確保資訊保安。

總部層面許可權分配也類似。例如,"李四"作為"運營總監",擁有更廣泛的許可權,可檢視跨店資料(分公司A下的所有門店資料),全面掌控業務運營。

這種許可權設計滿足複雜業務需求,併為未來發展留有餘地。透過合理配置,SaaS平臺能為各類企業提供精準許可權控制。

本文已收錄於,我的技術網站:tangshiye.cn 裡面有,演算法Leetcode詳解,面試八股文、BAT面試真題、簡歷模版、架構設計,等經驗分享。

相關文章