微服務-角色權限設計(RBAC)(3-1)


本篇簡單記錄框架搭建中關於角色權限設計的思路。權限系統基於RBAC的模式,通過在Ocelot網關中校驗JWT的Token有效性,獲取到角色Id,通過Casbin引擎驗證用戶是否有訪問接口的權限。
 
設計思路如下圖所示:
具體實現如下圖所示:
 
技術選型:
1.為什么基於RBAC模式?
通過對比ACL和ABAC以及RBAC這三種模式,最終選擇了RBAC,ACL不利於角色權限管理,ABAC的權限管理的顆粒度比較細,目前業務暫時不需要,基於RBAC的數據庫設計圖大致如下:

 

實際表設計可以大致參考,關聯表的細分對於業務的解耦有很大幫助
 
2.為什么采用Casbin,而不是微軟基於Claim的權限聲明
基於Claim的授權策略不夠靈活,需要指定策略名,且無法實現RBAC1,RBAC2模型的實現,即對於角色繼承和角色間的約束無法實現,Casbin作為一個開源的訪問控制框架,對此有很好的支持
 
3.為什么在Ocelot中配置權限校驗
基於微服務設計的思想,在所有請求中都會通過網關來分發,為了方便統一管理,在Ocelot中配置其中間件,攔截所有請求,通過Token獲取角色Id,判斷當前角色是否有權限訪問。
 
以上僅用於學習和總結!
 
附:
 

 


免責聲明!

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



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