分布式认证-技术方案
根據(jù) 選型的分析,決定采用基于token的認(rèn)證方式,它的優(yōu)點(diǎn)是:
1、適合統(tǒng)一認(rèn)證的機(jī)制,客戶端、一方應(yīng)用、三方應(yīng)用都遵循一致的認(rèn)證機(jī)制。
2、token認(rèn)證方式對第三方應(yīng)用接入更適合,因?yàn)樗_放,使用當(dāng)前有流行的開放協(xié)議Oauth2.0、JWT。
3、一般情況服務(wù)端無需存儲(chǔ)會(huì)話信息,減輕了服務(wù)端的壓力。
分布式系統(tǒng)認(rèn)證技術(shù)方案見下圖:
流程描述:
(1)接入方(需要使用平臺(tái)資源的統(tǒng)稱為接入方)采取OAuth2.0方式請求統(tǒng)一認(rèn)證服務(wù)(UAA)進(jìn)行認(rèn)證。
(2)認(rèn)證服務(wù)(UAA)調(diào)用統(tǒng)一賬號服務(wù)去查詢該用戶信息及其權(quán)限信息。(第三方應(yīng)用接入不需要該步驟)
(3)認(rèn)證服務(wù)(UAA)驗(yàn)證登錄用戶及第三方應(yīng)用合法性。
(4)若接入方身份合法,認(rèn)證服務(wù)生成jwt令牌返回給接入方,其中jwt中包含了權(quán)限信息。
(5)接入方攜帶jwt令牌對API網(wǎng)關(guān)內(nèi)的微服務(wù)資源進(jìn)行訪問。
(6)API網(wǎng)關(guān)對令牌解析、并驗(yàn)證接入方的權(quán)限是否能夠訪問本次請求的微服務(wù)。
(7)如果接入方的權(quán)限沒問題,API網(wǎng)關(guān)將Token轉(zhuǎn)發(fā)至微服務(wù)。
(8)微服務(wù)收到請求,明文token中包含登錄用戶的身份和權(quán)限信息,后續(xù)微服務(wù)使用用戶身份及權(quán)限信息。
流程所涉及到統(tǒng)一賬號服務(wù)、UAA服務(wù)、API網(wǎng)關(guān)這三個(gè)組件職責(zé)如下:
1)統(tǒng)一賬號服務(wù)
提供商戶和平臺(tái)運(yùn)營人員的登錄賬號、密碼、角色、權(quán)限、資源等系統(tǒng)級信息的管理,不包含用戶業(yè)務(wù)信息。
2)統(tǒng)一認(rèn)證服務(wù)(UAA)
它承載了OAuth2.0接入方認(rèn)證、登入用戶的認(rèn)證、授權(quán)以及生成令牌的職責(zé),完成實(shí)際的用戶認(rèn)證、授權(quán)功能。
3)API網(wǎng)關(guān)
作為系統(tǒng)的唯一入口,API網(wǎng)關(guān)為接入方提供定制的API集合,它可能還具有其它職責(zé),如身份驗(yàn)證、監(jiān)控、負(fù)載均衡、緩存等。API網(wǎng)關(guān)方式的核心要點(diǎn)是,所有的接入方和消費(fèi)端都通過統(tǒng)一的網(wǎng)關(guān)接入微服務(wù),在網(wǎng)關(guān)層處理所有的非業(yè)務(wù)功能。
?
總結(jié)
以上是生活随笔為你收集整理的分布式认证-技术方案的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 分布式认证方案-基于token的认证方式
- 下一篇: OAauth2.0包括以下角