關於微服務架構的權限控制初步設計


關於微服務分布式架構的權限資源設計初步設想

最近開發的系統是前后端分離+微服務分布式架構,不同於單體應用的權限身份校驗機制,前后端分離的情況下,無法直接確認前端請求者的身份權限,需要通過第三方鑒權中心來操作,身份校驗較為簡單,直接過濾網關級別的請求即可,但是權限校驗就比較復雜了。

初步設想

資源

  • 系統
  • 菜單
  • 按鈕
  • 服務
  • api

對象

  • 部門
  • 人員
  • 賬號

樞紐

  • 角色

整體關系如下:對象通過樞紐進行資源的權限分配

 

數據庫設計:

 

 

通過對中間表的維護,來收集用戶的權限信息,其中部門角色具有繼承的特性

使用結果

菜單權限

菜單權限通過前端配合實現動態路由,可以實現完全的權限控制,其中按鈕的權限主要還是在前端進行邏輯處理,服務端完全無法控制,只能作為數據提供者

API權限

API權限,通過上面的權限體系可以做到顆粒度為API級別的控制,功能可以實現

不足之處:問題在於,這個關系表人工維護的話,成本較大,因為需要明確規定好該頁面調用了哪些接口,前端有變更則需要及時錄入數據,否則會響應無操作權限,這里的想法是分三步走,

  第一步:首先開發前后端同步開發,前端只維護系統菜單數據,后端維護服務接口數據,菜單接口關系表暫時不進行維護

  第二步:前后端初步開發完畢之后,通過小工具掃描前端代碼, 進行菜單接口關系的自動錄入

  第三步:通過搭建一個API接入申請系統,有需求變更的時候,前端申請某個頁面的需求變更,並對新增的和刪除的API進行申報,數據校驗完畢之后,申請系統自動異步更新菜單接口關系表,完成兩者的動態維護

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM