Spring Cloud Security OAuth2
环境介绍
- Spring Security OAuth2是对OAuth2的一种实现,并且跟我们之前学习的Spring Security相辅相成,与Spring Cloud体系的集成也非常便利,接下来,我们需要对它进行学习,最终使用它来实现我们设计的分布式认证授权解决方案。
- OAuth2.0的服务提供方涵盖两个服务,即授权服务(Authorization Server,也叫认证服务)和资源服务(Resource Server),使用Spring Security OAuth2的时候你可以选择把它们在同一个应用程序中实现,也可以选择建立使用同一个授权服务的多个资源服务。
-
授权服务(Authorization Server) 应包含对接入端以及登入用户的合法性进行验证并颁发token等功能,对令牌的请求端点由Spring MVC控制器进行实现,下面是配置一个认证服务必须要实现的endpoints:
-
AuthorizationEndpoint服务于认证请求。默认URL:
/oauth/authorize
。 -
TokenEndpoint服务于访问令牌的请求。默认URL:
/oauth/otken
。
-
AuthorizationEndpoint服务于认证请求。默认URL:
- 资源服务(Resource Server),应包含对资源的保护功能,对非法请求进行拦截,对请求中token进行解析鉴权等,下面的过滤器用于实现OAth2.0资源服务:
- OAuth2 AuthenticationProcessingFilter用来对请求给出的身份令牌解析鉴权。
本教程分别创建uaa授权服务(也可叫认证服务)和order订单资源服务。
认证流程如下:
- 1.客户端请求UAA授权服务进行认证。
- 2.认证通过后由UAA颁发令牌。
- 3.客户端携带令牌Token请求资源服务。
-
4.资源服务校验令牌的和合法性,合法即返回资源信息。