用戶權限管理:最常用的架構模型介紹

近期 PMCAFF 有好幾個帖子都在問權限如何管理,給大家分享下吧。

1. 角色權限管理

說起用戶權限管理,繞不開 RBAC 模型,

直接上圖:

RBAC(Role-Based Access Control,基於角色的訪問控制),就是用戶通過角色與權限(系統資源)進行關聯

簡單地說,一個用戶擁有若干角色,每一個角色擁有若干權限。這樣,就構造成 “用戶 - 角色 - 權限(系統資源)” 的授權模型。在這種模型中,用戶與角色之間,角色與權限(系統資源)之間,一般是多對多的關係

我們可管理的權限(系統資源)分爲功能權限、數據權限:

功能權限,管理 API 和頁面元素的可控與否、可見與否

數據權限,管理數據表 Key-Value 的可控與否、可見與否

上述模型主要體現的是對系統資源的權限管理,接下來說說對人的複雜權限管理:

對人的權限管理需求往往是權限繼承、權限隔離等,涉及:

如何實現呢?(實現方式很多,這裏僅簡單舉例)

RBAC 模型是目前最常用的用戶權限模型,但也有弊端,對權限管理粒度太細了,不一定所有業務場景都需要如此複雜的權限模型,酌情選用,也可以酌情調整模型

2. 功能權限的管理

前文說到,功能權限的管理,本質上是在管理系統資源,是在管理一個系統某個頁面中的 API 和頁面元素,比方說一個按鈕

我們有兩種做法,

如需配置,即可引入菜單管理

菜單用來幹嘛?

菜單管理如何實現?

直接上圖:

菜單的管理:

菜單內資源的管理:

這樣,我們就可以實現系統資源的可視化配置

3. 數據權限的管理

我們對於數據權限的管理需求,無非是某些數據某個人能看,而另一個不能看之類的。前文正好也講到,實質上是在做數據表的 Key-Value 讀寫權限管理

這裏就不上圖了,

實現思路也不復雜,可考慮在角色引入

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/wnCEXCZd_0gWkyH14AFUBQ