
流程描述:
(1)用戶通過接入方(應(yīng)用)登錄,接入方采取OAuth2.0方式在統(tǒng)一認(rèn)證服務(wù)中認(rèn)證。
(2)認(rèn)證服務(wù)調(diào)用驗(yàn)證該用戶的身份是否合法,并獲取用戶權(quán)限信息。
(3)認(rèn)證服務(wù)獲取接入方權(quán)限信息,并驗(yàn)證接入方是否合法。
(4)若登錄用戶以及接入方都合法,認(rèn)證服務(wù)生成jwt令牌返回給接入方,其中jwt中包含了用戶權(quán)限及接入方權(quán)限。
(5)后續(xù),接入方攜帶jwt令牌對(duì)API網(wǎng)關(guān)內(nèi)的微服務(wù)資源進(jìn)行訪問。
(6)API網(wǎng)關(guān)對(duì)令牌解析、并驗(yàn)證接入方的權(quán)限是否能夠訪問本次請(qǐng)求的微服務(wù)。
(7)如果接入方的權(quán)限沒問題,API網(wǎng)關(guān)將原請(qǐng)求header中附加解析后的明文Token,并將請(qǐng)求轉(zhuǎn)發(fā)至微服務(wù)。
(8)微服務(wù)收到請(qǐng)求,明文token中包含登錄用戶的身份和權(quán)限信息。因此后續(xù)微服務(wù)自己可以干兩件事:
1.用戶授權(quán)攔截(看當(dāng)前用戶是否有權(quán)訪問該資源)
2.將用戶信息存儲(chǔ)進(jìn)當(dāng)前線程上下文(有利于后續(xù)業(yè)務(wù)邏輯隨時(shí)獲取當(dāng)前用戶信息)