現在有一個這樣的需求:
1、有很多個子系統。
2、這些子系統用的是同一份用戶資料,按照平臺做權限劃分。
現在我的想法是做一個鑒權中心,然后集成網關。網關統一做認證和授權,通過后將請求下發給子系統。對外只開放網關,子系統不開放。
請問這種方式合適嘛?
還有其他比較好的做法嗎?
uj5u.com熱心網友回復:
這種方式可以,就類似于aws 的 cognito(相當于你的鑒權中心) 和 api getway(相當于你的集成網關)uj5u.com熱心網友回復:
Zuul或Gateway各自有自己的Filter,很容易實作。uj5u.com熱心網友回復:
Zuul或Gateway各自有自己的Filter,很容易實作。uj5u.com熱心網友回復:
我是想網關做掉認證和授權,子系統就完全沒有安全校驗了,這種方式可以嗎
uj5u.com熱心網友回復:
還有一個問題是,如果我在網關做認證和授權的話,授權的時候,我不知道那些服務介面需要做權限校驗,那些不需要做權限校驗,這種有什么方式解決嗎?
uj5u.com熱心網友回復:
在網關做是可以的,也能區分不需要驗證的介面,定義一個串列exclude即可。uj5u.com熱心網友回復:
一般的話,網關做了權限認證,子系統還會繼續去做token的校驗和權限的校驗嗎?現在感覺子系統完全是透明的,雖然他在內網。
uj5u.com熱心網友回復:
不直接對外可訪問,就不需要再做。
uj5u.com熱心網友回復:
那具體的實作步驟呢?我目前是這樣想的:
做一個認證中心,這個認證中心只用來生成token(我用的是jwt)。
流程一、瀏覽器訪問網關,網關中有一個全域過濾器,判斷header是否有token,如果沒有則認為沒有登錄直接提示用戶登錄。
流程二、header中有token,網關呼叫認證中心的方法校驗token是否正確。校驗完成,網關再呼叫認證中心的授權方法判斷此次請求是否具有權限,如果有權限,則分發到具體的下游服務;如果沒有權限,網關直接提示用戶沒有權限。
這樣做合適嘛?
uj5u.com熱心網友回復:
還有一個問題就是,我本來是要訪問下游的資源服務的,但是現在在網關進行權限管理的,我在網關怎么去訪問認證中心呢?通過rpc的方式嘛?uj5u.com熱心網友回復:
把jwt的鑒權功能加到網關服務中,不需要將鑒權功能單獨做一個服務uj5u.com熱心網友回復:
你這里的鑒權的意思是認證?還是指權限校驗?
uj5u.com熱心網友回復:
認證或權限驗證都可以uj5u.com熱心網友回復:
你是采用jwt和什么簽名演算法?
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/8240.html
標籤:Java EE
上一篇:OAuth2問題,大佬指導指導
下一篇:求助:同步資料
