spring security OAuth2.0是對OAuth2.0的一種實現(xiàn),并且跟spring security相輔相成荆永,與spring cloud體系的集成也非常便利,可以用它來實現(xiàn)分布式認證授權(quán)国章。
OAuth2.0的服務(wù)提供方包含兩個服務(wù):即授權(quán)服務(wù) (Authorization Server具钥,也叫認證服務(wù)) 和資源服務(wù) (Resource Server)。使用 spring security OAuth2.0的時候可以選擇把它們放在同一個應(yīng)用程序中實現(xiàn)液兽,也可以選擇建立使用 同一個授權(quán)服務(wù)和 多個資源服務(wù)骂删。
授權(quán)服務(wù):
應(yīng)包含 對接入端以及登入用戶 的合法性進行驗證并頒發(fā)token等功能,對令牌的請求端點由 Spring MVC 控制器進行實現(xiàn)四啰。
下面是配置一個認證服務(wù)必須要實現(xiàn)的endpoints:
AuthorizationEndpoint 用于認證請求宁玫。默認 URL:/oauth/authorize 。
TokenEndpoint 用于訪問令牌的請求柑晒。默認 URL: /oauth/token 欧瘪。
資源服務(wù):
應(yīng)包含 對資源的保護功能,對非法請求進行攔截匙赞,對請求中token進行解析鑒權(quán)等佛掖。
下面的過濾器用于實現(xiàn) OAuth 2.0 資源服務(wù):
OAuth2AuthenticationProcessingFilter 用于對請求給出的身份令牌解析鑒權(quán)。
基于以上信息涌庭,初步給出實現(xiàn)流程:
創(chuàng)建uaa授權(quán)服務(wù)(也可叫認證服務(wù))和order訂單資源服務(wù)
認證流程如下:
1苦囱、客戶端請求UAA授權(quán)服務(wù)進行認證。
2脾猛、認證通過后由UAA頒發(fā)令牌撕彤。
3、客戶端攜帶令牌Token請求資源服務(wù)猛拴。
4羹铅、資源服務(wù)校驗令牌的合法性,合法即返回資源信息愉昆。