Spring Cloud Security OAuth2
環(huán)境介紹
- Spring Security OAuth2是對(duì)OAuth2的一種實(shí)現(xiàn),并且跟我們之前學(xué)習(xí)的Spring Security相輔相成,與Spring Cloud體系的集成也非常便利讳窟,接下來凤覆,我們需要對(duì)它進(jìn)行學(xué)習(xí)磨确,最終使用它來實(shí)現(xiàn)我們?cè)O(shè)計(jì)的分布式認(rèn)證授權(quán)解決方案酿愧。
- OAuth2.0的服務(wù)提供方涵蓋兩個(gè)服務(wù)挺狰,即授權(quán)服務(wù)(Authorization Server身隐,也叫認(rèn)證服務(wù))和資源服務(wù)(Resource Server)廷区,使用Spring Security OAuth2的時(shí)候你可以選擇把它們?cè)谕粋€(gè)應(yīng)用程序中實(shí)現(xiàn),也可以選擇建立使用同一個(gè)授權(quán)服務(wù)的多個(gè)資源服務(wù)贾铝。
-
授權(quán)服務(wù)(Authorization Server) 應(yīng)包含對(duì)接入端以及登入用戶的合法性進(jìn)行驗(yàn)證并頒發(fā)token等功能隙轻,對(duì)令牌的請(qǐng)求端點(diǎn)由Spring MVC控制器進(jìn)行實(shí)現(xiàn),下面是配置一個(gè)認(rèn)證服務(wù)必須要實(shí)現(xiàn)的endpoints:
-
AuthorizationEndpoint服務(wù)于認(rèn)證請(qǐng)求垢揩。默認(rèn)URL:
/oauth/authorize
玖绿。 -
TokenEndpoint服務(wù)于訪問令牌的請(qǐng)求。默認(rèn)URL:
/oauth/otken
叁巨。
-
AuthorizationEndpoint服務(wù)于認(rèn)證請(qǐng)求垢揩。默認(rèn)URL:
- 資源服務(wù)(Resource Server)斑匪,應(yīng)包含對(duì)資源的保護(hù)功能,對(duì)非法請(qǐng)求進(jìn)行攔截锋勺,對(duì)請(qǐng)求中token進(jìn)行解析鑒權(quán)等秤标,下面的過濾器用于實(shí)現(xiàn)OAth2.0資源服務(wù):
- OAuth2 AuthenticationProcessingFilter用來對(duì)請(qǐng)求給出的身份令牌解析鑒權(quán)绝淡。
本教程分別創(chuàng)建uaa授權(quán)服務(wù)(也可叫認(rèn)證服務(wù))和order訂單資源服務(wù)。
認(rèn)證流程如下:
- 1.客戶端請(qǐng)求UAA授權(quán)服務(wù)進(jìn)行認(rèn)證苍姜。
- 2.認(rèn)證通過后由UAA頒發(fā)令牌牢酵。
- 3.客戶端攜帶令牌Token請(qǐng)求資源服務(wù)。
-
4.資源服務(wù)校驗(yàn)令牌的和合法性衙猪,合法即返回資源信息馍乙。