Spring Cloud Gateway 整合OAuth2.0 实现统一认证授权
GateWay——向其他服务传递参数数据
https://blog.csdn.net/qq_38322527/article/details/126530849
一、背景
随着我们的微服务越来越多,如果每个微服务都要自己去实现一套鉴权操作,那么这么操作比较冗余,
因此我们可以把鉴权操作统一放到网关去做,如果微服务自己有额外的鉴权处理,可以在自己的微服务中处理。
二、需求
1、在网关层完成url层面的鉴权操作。
所有的OPTION请求都放行。
所有不存在请求,直接都拒绝访问。
user-provider服务的findAllUsers需要 user.userInfo权限才可以访问。
2、将解析后的jwt token当做请求头传递到下游服务中。
3、整合Spring Security Oauth2 Resource Server
添加认证服务相关配置
@EnableAuthorizationServer
Oauth2ServerConfig
@Configuration
public class SsoAuthorizationServerConfig extends AuthorizationServerConfigurerAdapter {
@Autowired private PasswordEncoder passwordEncoder;
@Autowired private AuthenticationManager authenticationManager;
@Autowired private UserDetailsService userDetailsService;
@Override
public void configure(AuthorizationServerEndpointsConfigurer endpoints) {
endpoints.authenticationManager(authenticationManager)
.userDetailsService(userDetailsService)
.tokenStore(tokenStore())//在认证服务器配置中指定令牌的存储策略为JWT
.accessTokenConverter(jwtAccessTokenConverter());
//.tokenEnhancer(jwtTokenEnhancer());
}
@Override
public void configure(ClientDetailsServiceConfigurer clients) throws Exception{
clients.inMemory()
.withClient("client01")//配置client_id
.secret(passwordEncoder.encode("123456"))//client_secret
.authorizedGrantTypes("authorization_code","refresh_token")
.scopes("all")
.autoApprove(true)
.redirectUris("http://localhost:9501/login")//配置redirect_uri用于授权成功后跳转
.accessTokenValiditySeconds(3600);
}
}
验证签名
网关服务需要RSA的公钥来验证签名是否合法,所以认证服务需要有个接口把公钥暴露出来
Gateway
接下来搭建网关服务,它将作为Oauth2的资源服务、客户端服务使用,对访问微服务的请求进行统一的校验认证和鉴权操作。
在pom.xml中添加相关依赖,主要是Gateway、Oauth2和JWT相关依赖;
参考资料
Spring gateway + Oauth2实现单点登录及详细配置
https://www.jb51.net/article/223871.htm
Spring Cloud Gateway+Oauth2实现统一认证和鉴权
https://zhuanlan.zhihu.com/p/287814029
gateway-统一权限-认证 RBAC
https://blog.csdn.net/JAVAMysql111/article/details/124069500
SpringCloud + Gateway + Security 搭建微服务统一认证授权(附源码)
https://blog.51cto.com/u_15191078/5359675
Spring Cloud Gateway + Jwt + Oauth2 实现网关的鉴权操作
https://www.shuzhiduo.com/A/E35p0bEy5v/#1jar_28
一个小的验证
Spring Cloud Gateway + JWT 实现统一的认证授权
https://blog.51cto.com/u_15973676/6074600?articleABtest=0
======================
快速搭建一个网关服务,动态路由、鉴权的流程
https://mp.weixin.qq.com/s?__biz=MzA5MTMyNTI0Nw==&mid=2649804612&idx=1&sn=c808735be1c8577698951b5cec829faa&chksm=887a7914bf0df0025fb72c1dd7e6fdd30d610ca0a52ec3946ba9590143a141ef55f018c8da6e&scene=27
===================================================
WebFlux Spring Security配置
https://www.cnblogs.com/tangyouwei/p/10032668.html
Security 与响应式 WebFlux
https://ld246.com/article/1599217666900文章来源:https://www.toymoban.com/news/detail-643006.html
Spring Security系列(三)——WebFlux配置方式以及多登陆入口实现
https://blog.51cto.com/u_15477117/4905933
权限认证过滤器
示例中,简单的打印了一下token,并未将token转换为AuthenticationToken对象。文章来源地址https://www.toymoban.com/news/detail-643006.html
到了这里,关于Spring Cloud Gateway 整合OAuth2.0 实现统一认证授权的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!