Spring Cloud Gateway 整合OAuth2.0 实现统一认证授权

这篇具有很好参考价值的文章主要介绍了Spring Cloud Gateway 整合OAuth2.0 实现统一认证授权。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Spring Security Oauth2.1 最新版 1.1.0 整合 gateway 完成授权认证(拥抱 springboot 3.1)

    目录 背景 demo地址 版本 Spring Boot 3.1 Spring Authorization Server 1.1.0 基础 spring security OAuth2 模块构成 授权方式 认证方式 集成过程 官方demo 代码集成 依赖 授权服务AuthorizationServerConfig配置 重要组件 测试 查看授权服务配置 访问授权服务 授权 回调 获取 access_token 获取用户信息 个性

    2024年02月08日
    浏览(64)
  • Spring Security Oauth2.1 最新版 1.1.0 整合 (基于 springboot 3.1.0)gateway 完成授权认证

    目录 背景 demo地址 版本 Spring Boot 3.1 Spring Authorization Server 1.1.0 基础 spring security OAuth2 模块构成 授权方式 认证方式 集成过程 官方demo 代码集成 依赖 授权服务AuthorizationServerConfig配置 重要组件 测试 查看授权服务配置 访问授权服务 授权 回调 获取 access_token 获取用户信息 个性

    2024年02月11日
    浏览(51)
  • SpringCloud整合spring security+ oauth2+Redis实现认证授权

    在微服务构建中,我们一般用一个父工程来通知管理依赖的各种版本号信息。父工程pom文件如下: 在SpringCloud微服务体系中服务注册中心是一个必要的存在,通过注册中心提供服务的注册和发现。具体细节可以查看我之前的博客,这里不再赘述。我们开始构建一个eureka注册中

    2024年02月06日
    浏览(58)
  • Spring Gateway + Oauth2 + Jwt网关统一鉴权

    之前文章里说过,分布式系统的鉴权有两种方式,一是在网关进行统一的鉴权操作,二是在各个微服务里单独鉴权。 第二种方式比较常见,代码网上也是很多。今天主要是说第一种方式。 重要前提:需要收集各个接口的uri路径和所需权限列表的对应关系,并存入缓存。 服务

    2024年02月03日
    浏览(46)
  • Spring Authorization Server 1.1 扩展实现 OAuth2 密码模式与 Spring Cloud 的整合实战

    项目源码 :youlai-mall 通过 Spring Cloud Gateway 访问认证中心进行认证并获取得到访问令牌。 再根据访问令牌 access_token 获取当前登录的用户信息。 Spring Security OAuth2 的最终版本是2.5.2,并于2022年6月5日正式宣布停止维护。Spring 官方为此推出了新的替代产品,即 Spring Authorization

    2024年02月04日
    浏览(45)
  • 【OAuth2系列】Spring Cloud Gateway 作为OAuth2 Client接入第三方单点登录代码实践

            在年初的时候我参与了一个项目,当时是很多家公司协同完成这个项目,其中一个公司专门负责登录这块的内容,需要我们的后端接入他们的单点登录(OAuth2 授权码模式),这块接入工作是由我来负责,我们的项目是微服务架构,经过网上各种查阅资料发现网关作为

    2024年02月04日
    浏览(66)
  • SpringBoot 基于 OAuth2 统一身份认证流程详解

    了解OAUTH2统一认证基本概念 了解OAUTH2协议流程 了解OAUTH2各种模式类型 了解Spring Security OAuth设计 2. 分析 传统登陆认证介绍 单点登陆认证介绍 OAuth2简介 OAuth2角色 OAuth2协议流程介绍 OAuth2授权类型 OAuth2授权码模式流程 OAuth2简化模式 OAuth2密码模式 OAuth2客户端模式 Spring Security

    2024年02月15日
    浏览(58)
  • Spring Boot整合OAuth2实现GitHub第三方登录

    Github OAuth 第三方登录示例 第三方登录的原理是借助OAuth授权来实现,首先用户先向客户端提供第三方网站的数据证明自己的身份获取授权码,然后客户端拿着授权码与授权服务器建立连接获得一个Access Token,之后客户端就可以通过Access Token来与资源服务器进行交互。 使用O

    2024年02月08日
    浏览(67)
  • java版Spring Cloud+Mybatis+Oauth2+分布式+微服务+实现工程管理系统

     鸿鹄工程项目管理系统 Spring Cloud+Spring Boot+Mybatis+Vue+ElementUI+前后端分离构建工程项目管理系统 1. 项目背景 一、随着公司的快速发展,企业人员和经营规模不断壮大。为了提高工程管理效率、减轻劳动强度、提高信息处理速度和准确性,公司对内部工程管理的提升提出了更高

    2024年02月07日
    浏览(48)
  • 权限认证SpringCloud GateWay、SpringSecurity、OAuth2.0、JWT一网打尽!

    1.它是如何工作的? ​ 客户端向 Spring Cloud Gateway 发出请求。如果Gateway处理程序映射确定一个请求与路由相匹配,它将被发送到Gateway Web处理程序。这个处理程序通过一个特定于该请求的过滤器链来运行该请求。过滤器被虚线分割的原因是,过滤器可以在代理请求发送之前和

    2024年04月08日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包