一文講透 B 端權限系統的概念及原理

2023-11-10     人人都是產品經理

原標題:一文講透 B 端權限系統的概念及原理

後台系統的權限管理系統這個功能,可謂是難倒了一大批產品經理。本文總結了B 端權限系統的概念及原理,希望對你有所幫助。

後台系統的權限管理系統這個功能,可謂是難倒了一大批產品經理。本文總結了B 端權限系統的概念及原理,希望對你有所幫助。

發現最近好多人在問,後台系統的權限管理怎麼做。

權限管理這個功能,可以說難倒了一大批產品經理。

雖然講權限的文章一大堆,但真正講透的屈指可數。

剛好前段時間,我設計的多租戶權限系統上線了,做的過程中也總結了一些經驗,這裡簡單聊聊。

一、權限概念

什麼是權限?

權限是後台的基礎模塊之一,沒有它的話每個用戶都是超級管理員,系統數據可以任意操作、改寫,如果是這樣那公司就亂套啦。

為了避免這種情況發生,後台需要上線權限功能。

它確保了不同用戶進行合理分工和操作,避免了風險管理、數據安全等問題。

產品經理如果想搞懂和設計權限系統,需要先學會這 3 個基礎概念:用戶、權限、角色。

  • 用戶:這裡的用戶,指的是後台的用戶帳號;
  • 權限:權限規定了系統的操作範圍或數據查看限制,像「新增、編輯、刪除」等就是權限的一種;
  • 角色:角色包含了一組權限集合,主要以用戶的職責或功能來定義,例如「管理員、銷售、內容管理」等角色,它們擁有的權限各不相同。

權限看起來很複雜,其實說起來只有這兩種分類:功能權限、數據權限。

1. 功能權限

功能權限,主要控制帳號的組件可視範圍,常見的有目錄、菜單、按鈕等。

  • 目錄:一般在系統的頂部,例如「用戶、營銷、系統」等一級管理入口;
  • 菜單:指的是系統左側的多級導航組件,點擊即可進入對應的功能頁面,例如營銷目錄中的「積分管理、活動管理、優惠券管理」等都是菜單;
  • 按鈕:在頁面中的功能操作都可視為按鈕,常見的「搜索、新增、編輯、刪除、列印」等功能都由相關按鈕控制。

數據權限則決定了用戶能看哪些數據,一般通過「部門、品牌、區域」等維度劃分數據權限。

例如廣東地區的同事,只能看到廣東地區的銷售數據,其他海南、青島等區域的數據,在系統介面將隱藏。

二、權限模型

權限模型有很多種,例如「ACL 模型、DAC 模型、MAC 模型、RBAC 模型、ABAC 模型」等。

這些權限模型為什麼會產生?主要是公司基於「組織體量、業務背景、實施成本」等因素權衡取捨後的解決方案。

而我們在日常過程中,由於業務不大、公司架構簡單等因素,一般只需要用到「ACL 模型、RBAC 模型」這兩種。

1. ACL 模型

ACL 模型中,涉及了「用戶、權限」這兩個概念,主要通過用戶綁定多個權限,實現了權限控制管理。

例如 A 帳號是客服在用,它綁定了「內容管理、訂單管理」等權限,而 B 帳號作為老闆專屬,當然是權限全開啦。

這種方案比較適合小公司,開發量較少。

但弊端是,當維護的用戶足夠多,而且它們權限大差不大時,配置權限的那個人一定很崩潰。

2. RBAC 模型

為了解決配置繁瑣的問題,我們需要使用 RBAC 模型。

RBAC 模型相比 ACL,多了一個角色的概念。

角色主要是為了將用戶、權限進行解耦,以達到權限「批量配置、隨時更新」的目的。

例如將原先的 A 帳號權限,分配給客服角色,然後再把老闆 B 帳號,給到「超級管理員」角色。

那麼當公司有 20 個客服,3 個老闆時,通過 RBAC 模型,配置權限就只需要幾分鐘。

三、權限原理

如果你覺得一項知識太高深難懂,也許只是還沒找到學它的正確姿勢。——好夕雷

如果你覺得一項知識太高深難懂,也許只是還沒找到學它的正確姿勢。——好夕雷

說了這麼多概念和模型, 聽起來可能比較抽象。

我們試著用一些簡單的 Excel 表(為了便於理解,簡化了部分數據),來理解 ACL 模型、RBAC 模型的權限原理。

1. ACL 模型,如何實現權限控制?

在 ACL 模型中,想實現權限控制,我們首先需要「用戶、權限」這兩個主表。

現在問題來了,你上司突然要你搞定下面的權限配置,該怎麼做?

  • 張三:由於是剛來的新員工,只能看一些文章數據;
  • 李四:李四是公司的老油條了,文章、文章評論的管理工作,都是由他處理的;
  • 王五:這個人是老闆親戚,只需要看看商品、文章、動態等用戶的反饋評論,然後找老闆告狀。

聽起來真是頭大阿!躺平行不行?

要想實現上司的權限需求,你還需要用到第三個表「用戶權限關聯」。

這個表的作用,是將用戶與權限的關係進行綁定,方便系統確認不同用戶的權限範圍。

按上司的要求,我們完成了用戶權限的配置。

無論介面交互層如何花里胡哨,功能實現的本質還是數據操作。——好夕雷

無論介面交互層如何花里胡哨,功能實現的本質還是數據操作。——好夕雷

由於在資料庫中,這些關係是通過 ID、代號表示的,看起來比較抽象。

我們試著用文字替代。

怎樣,看起來是不是容易理解多啦?

2. RBAC 模型,如何實現權限控制?

前面我們講到,RBAC 模型相比 ACL 模型多了角色的概念。

所以除了「用戶、權限」表之外,我們還需要一個「角色」主表,並按需求配置 3 個角色。

由於權限邏輯變了,所以原先那個「用戶權限」表就沒啥用了。

我們還需要「用戶角色關聯、角色權限關聯」這兩個新表,來實現 RBAC 模型的權限控制。

上圖中,其實有兩個問題需要注意:

權限系統看起來很複雜,其實只要你掌握了權限的概念、分類、模型、原理,那麼想要設計一個權限方案也不算難。

本文由 @好夕雷 原創發布於人人都是產品經理,未經許可,禁止轉載

題圖來自Unsplash,基於CC0協議

文章來源: https://twgreatdaily.com/zh-mo/c4ae5c845cdc9468ced7a90ea05d84a5.html