微服務架構下的安全認證與鑒權


https://www.jianshu.com/p/22610b276bee

https://zhuanlan.zhihu.com/p/29345083

 

 

 

 https://www.jianshu.com/p/604bb732ddd4

  • 用戶進入網關開始登陸,網關過濾器進行判斷,如果是登錄,則路由到后台管理微服務進行登錄
  • 用戶登錄成功,后台管理微服務簽發JWT TOKEN信息返回給用戶
  • 用戶再次進入網關開始訪問,網關過濾器接收用戶攜帶的TOKEN
  • 網關過濾器解析TOKEN ,判斷是否有權限,如果有,則放行,如果沒有則返回未認證錯誤。


 

 

服務之間的鑒權

因為我們都知道服務之間開源通過注冊中心尋到客戶端后,直接遠程過程調用的。對於生產上的各個服務,一個個敏感性的接口,我們更是需要加以保護。主題的流程如下圖:

 

 

筆者的實現方式是基於Spring Cloud的FeignClient Inteceprot(自動申請服務token、傳遞當前上下文)和Mvc Inteceptor(服務token校驗、更新當前上下文)來實現,從而對服務的安全性做進一步保護。

結合Spring Cloud的特性后,整體流程圖如下:

 

優化點

雖然通過上述的用戶合法性檢驗、用戶權限攔截以及服務之間的鑒權,保證了Api接口的安全性,但是其間的Http訪問頻率是比較高的,請求數量上來的時候,慢的問題是就會特別明顯。可以考慮一定的優化策略,比如用戶權限緩存、服務授權信息的派發與混存、定時刷新服務鑒權Token等。

結語

上述是筆者在項目里的大體思路,有興趣的朋友可以借鑒我的開源項目,歡迎star:

 


免責聲明!

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



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