古詩詞大全網 - 藝術簽名 - 微服務的四種認證鑒權方式

微服務的四種認證鑒權方式

1. 單點登錄(SSO)

這種方案意味著每個面向用戶的服務都必須與認證服務交互,這會產生大量非常瑣碎的網絡流量和重復的工作,當動輒數十個微應用時,這種方案的弊端會更加明顯。

2. 分布式 Session 方案

分布式會話方案原理主要是將關於用戶認證的信息存儲在***享存儲中,且通常由用戶會話作為 key 來實現的簡單分布式哈希映射。當用戶訪問微服務時,用戶數據可以從***享存儲中獲取。在某些場景下,這種方案很不錯,用戶登錄狀態是不透明的。同時也是壹個高可用且可擴展的解決方案。這種方案的缺點在於***享存儲需要壹定保護機制,因此需要通過安全鏈接來訪問,這時解決方案的實現就通常具有相當高的復雜性了。

3. 客戶端 Token 方案

令牌在客戶端生成,由身份驗證服務進行簽名,並且必須包含足夠的信息,以便可以在所有微服務中建立用戶身份。令牌會附加到每個請求上,為微服務提供用戶身份驗證,這種解決方案的安全性相對較好,但身份驗證註銷是壹個大問題,緩解這種情況的方法可以使用短期令牌和頻繁檢查認證服務等。對於客戶端令牌的編碼方案,Borsos(David Borsos) 更喜歡使用 JSON Web Tokens(JWT),它足夠簡單且庫支持程度也比較好。

4. 客戶端 Token 與 API 網關結合

這個方案意味著所有請求都通過網關,從而有效地隱藏了微服務。 在請求時,網關將原始用戶令牌轉換為內部會話 ID 令牌。在這種情況下,註銷就不是問題,因為網關可以在註銷時撤銷用戶的令牌。