文章目錄
后台管理系統也需要微服務化
痛點一:龐大的后台管理系統
任何一個公司的系統總是免不了需要很多后台功能,隨着業務的發展,營銷活動管理后台,短信模板后台,網站內容管理后台…最后會變成一個異常龐大而難以維護的系統。往往光菜單就有幾十上百個。每次修改跟新增一個簡單的功能都是一場災難。
痛點二:各自獨立的后台管理系統
如果公司內部有多條產品線,每個產品線都有自己的后台,往往都各自維護着各自的后台權限體系,這樣導致每個人要記住大量的賬號密碼。如果公司來了新領導,光開通賬號就要好幾天。
針對上述兩個問題,自然而然的會想到,我們首先需要把后台管理系統拆成多個子系統,但是我們不需要維護多套用戶與權限體系,此時我們需要一個單點登錄系統來解決問題。該系統應該提供統一的登錄與系統導航頁面,統一的身份認證、以及統一的賬戶管理和權限管理。
我們把該系統分為三大模塊
管理員模塊:賬號,角色,權限分配,部門信息
用戶模塊:統一的登錄頁面,統一的系統導航頁,統一的會話管理
認證模塊:提供認證的客戶端以及認證的接口
管理員模塊
關於基本的后台權限管理功能,有大量的開源系統可以借鑒。這里只強調幾個重點:
1.管理員的分級管理。
如果需要集成的系統比較少,涉及到的用戶不多,那么可以只設置一個超級管理員,該管理員負責所有的賬號,角色,以及權限分配。如果需要集成幾十個系統,涉及到的用戶很多,則必須考慮設置兩種管理員,超級管理員和普通管理員,普通管理員也具備創建賬號與分配權限的功能,但是普通管理員只能分配自己所擁有的權限。例如我們有一個后台坐席系統,坐席人員有上百人,那么我們應該為坐席管理員增加一個普通管理員的權限,讓他自己維護坐席人員的賬號和權限。
2.管理員賬號與用戶賬號的分開管理。可以考慮分開兩張表管理或者加一個標志位。
3.權限的粒度
-
3.1 頁面元素權限菜單級別的權限一般跟角色綁定,在后台可以為某一個角色分配菜單以及按鈕的權限。需要子系統讀取認證接口展示菜單項。
-
3.2 數據權限數據權限一般跟部門掛鈎,但是必須子系統在代碼級別支持。
-
3.3 接口權限如果子系統采用的是前后端分離的架構,那么除了菜單層面需要限制以外,接口層面也需要進行權限管理。
-
3.4 其他權限假如子系統是一個數據庫查詢系統,某個用戶可以訪問哪個數據庫表,這種權限的維護放到子系統自己維護。