我站后臺的權限系統,是幾年前寫的php版本,一個比較粗糙的RBAC實現。那么,隨著公司迅速壯大,線上操作的復雜性、安全性、效率問題,迫切需要重構。去年底開始,我便負責重構這塊。
先拋個問題,后臺權限系統,應該是什么樣的?有哪些原則?
- 遵守RBAC,按角色分配權限,普通用戶對權限點透明
- 權限收斂 這個是權限系統的安全性問題,等會細說
- 效率問題 老后臺很多功能是缺失的,各種人肉操作
- 擴展性 靈活支持復雜業務權限需求
直奔主題,看看這個符合RBAC的權限架構(小伙伴畫的不錯)。
image.png
名詞解釋:
- Super Admin 超級管理員,這里主要是創建category(業務)和指定category admin,權限點能力下放,否則是個單點。
- Category Admin 通常是業務負責人或者產品大佬,負責創建和審批權限點,審批角色
- Role Admin 角色管理員 通常創建和負責賦予人角色
- Users 普通后臺用戶
- User Group,用戶組是個擴展支持,并非必需設計。可以綁定多個角色,但同時也下放了角色綁定,有一定風險
用戶角色劃分清晰,權責明確。那么再淺談幾個關鍵點。
權限收斂
權限分配,不能濫用、也不能亂用。能臨時,則臨時權限。轉崗的、離職的怎么回收?多久不用的權限是不是回收?關于審批,有明確負責人,合適的人才能審批好!等等細節很多
效率問題
主要是流程化、工單化,有一些后臺頁面能力,有一些批量操作能力,用戶組也是一個擴展性支持。
擴展性
這本是2.0重點考慮的,權限點的設計上看一些業界做法
如何在權限點上,配置一些業務上更精細化的權限管理需求,實現差異化功能。比如我司業務常常需要的按照子業務區分返回資源列表。這里可以做的很復雜。