oauth2.0第2季 分布式认证与授权实现单点登录

这篇具有很好参考价值的文章主要介绍了oauth2.0第2季 分布式认证与授权实现单点登录。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一  oauth介绍

1.0  疑问汇总

1.使用jwttoken进行令牌传输,资源服务器在本地怎么验证token?

1.1 oauth的基础内容

1.1.1 oauth是什么

1.1.2 oauth的角色

1.1.3 oauth的认证流程

1.1.4 oauth的4种模式

1.2 为何要用oauth2.0

1.介绍单体架构  使用sesion保存会话信息的情况

2.前后端分离项目,调用方式

session架构不适合前后端分离项目

3.解决办法,引出oauth2.0

1.3 待验证

配置文件配置了端口喝上下文路径

oauth2.0第2季 分布式认证与授权实现单点登录,实战项目,springcloud3,springcloud

 访问的时候为: http://localhost:8090/auth/lgoin   如果没有配置/auth这一层级,是不是为

http://localhost:8090/lgoin

oauth2.0第2季 分布式认证与授权实现单点登录,实战项目,springcloud3,springcloud

二 案例搭建

2.1 搭建父工程

2.2 搭建认证中心服务

2.2.1 认证中心的安全和认证配置

1.认证中心的配置

oauth2.0第2季 分布式认证与授权实现单点登录,实战项目,springcloud3,springcloud

 oauth2.0第2季 分布式认证与授权实现单点登录,实战项目,springcloud3,springcloud

2.安全配置

3.访问端点

所谓访问端点就是 提供访问的url接口地址

4.测试4种验证模式的验证情况

5.密码模式需要在配置文件中添加:authenticationManager(xxxx) 实例

oauth2.0第2季 分布式认证与授权实现单点登录,实战项目,springcloud3,springcloud

oauth2.0第2季 分布式认证与授权实现单点登录,实战项目,springcloud3,springcloud

 6.客户端模式

oauth2.0第2季 分布式认证与授权实现单点登录,实战项目,springcloud3,springcloud

 oauth2.0第2季 分布式认证与授权实现单点登录,实战项目,springcloud3,springcloud

 2.2.2 刷新令牌

使用一段时间后,token过期后,需要获取新的token,携带参数以及需要的配置

 oauth2.0第2季 分布式认证与授权实现单点登录,实战项目,springcloud3,springcloud

 oauth2.0第2季 分布式认证与授权实现单点登录,实战项目,springcloud3,springcloud

oauth2.0第2季 分布式认证与授权实现单点登录,实战项目,springcloud3,springcloud

 2.2.3 redis管理令牌

oauth2.0第2季 分布式认证与授权实现单点登录,实战项目,springcloud3,springcloud

 oauth2.0第2季 分布式认证与授权实现单点登录,实战项目,springcloud3,springcloud

 添加到容器

oauth2.0第2季 分布式认证与授权实现单点登录,实战项目,springcloud3,springcloud

  2.2.4 jdbc管理令牌

oauth2.0第2季 分布式认证与授权实现单点登录,实战项目,springcloud3,springcloud

oauth2.0第2季 分布式认证与授权实现单点登录,实战项目,springcloud3,springcloud

   2.2.5 jdbc管理授权码

oauth2.0第2季 分布式认证与授权实现单点登录,实战项目,springcloud3,springcloudoauth2.0第2季 分布式认证与授权实现单点登录,实战项目,springcloud3,springcloud

oauth2.0第2季 分布式认证与授权实现单点登录,实战项目,springcloud3,springcloud

  2.2.6 保存客户端信息

oauth2.0第2季 分布式认证与授权实现单点登录,实战项目,springcloud3,springcloud

2.2.8 验证认证信息端点

oauth2.0第2季 分布式认证与授权实现单点登录,实战项目,springcloud3,springcloud

 oauth2.0第2季 分布式认证与授权实现单点登录,实战项目,springcloud3,springcloud

oauth2.0第2季 分布式认证与授权实现单点登录,实战项目,springcloud3,springcloud

 2.2.9 基于RBAC查询数据库认证

oauth2.0第2季 分布式认证与授权实现单点登录,实战项目,springcloud3,springcloud

2.3  资源管理器服务搭建

2.3.1 原理概述

资源服务服务器实际上就是要调用的各个微服务,如订单服务,商品服务,会员服务等。在微服务的架构中,每个微服务就是资源,当用户请求某个微服务资源时,首先通过认证服务器进行认证与授权,通过后才可以访问对应的资源。

oauth2.0第2季 分布式认证与授权实现单点登录,实战项目,springcloud3,springcloud

 2.3.2 搭建资源服务工程oauth2.0第2季 分布式认证与授权实现单点登录,实战项目,springcloud3,springcloud

 oauth2.0第2季 分布式认证与授权实现单点登录,实战项目,springcloud3,springcloud

 2.3.3 请求资源服务器测试

1.不带token直接访问

oauth2.0第2季 分布式认证与授权实现单点登录,实战项目,springcloud3,springcloud

 2.携带token进行访问

oauth2.0第2季 分布式认证与授权实现单点登录,实战项目,springcloud3,springcloud

  2.3.4 设置资源的请求范围

oauth2.0第2季 分布式认证与授权实现单点登录,实战项目,springcloud3,springcloud

禁用session

oauth2.0第2季 分布式认证与授权实现单点登录,实战项目,springcloud3,springcloud

2.4  使用jwtToken进行认证授权

2.4.1 为何要使用jwt

oauth2.0第2季 分布式认证与授权实现单点登录,实战项目,springcloud3,springcloud

每次访问资源服务的时候,都要验证token的合法性,远程调用认证服务中验证token的合法性。如果访问量较大影响系统的性能。解决办法使用jwt,jwt包含了用户的基本信息,客户端携带jwt访问资源,资源服务器会通过事先约定好的算法进行解析出来,然后对jwt令牌进行校验,不需要每次远程请求认证服务器。

2.4.2  认证服务配置jwt的对称秘钥

 如下图:

每一个访问资源服务器都要经过此方法进行验证token的合法性。这样会造成认证服务器的压力过大,因此需要一种机制解决此种情况。使用jwt可以直接在资源服务器中,自身进行验证,无需再调用认证中心服务的连接进行验证。

oauth2.0第2季 分布式认证与授权实现单点登录,实战项目,springcloud3,springcloud

改为:

oauth2.0第2季 分布式认证与授权实现单点登录,实战项目,springcloud3,springcloud

注册到容器中

oauth2.0第2季 分布式认证与授权实现单点登录,实战项目,springcloud3,springcloud

 访问:

oauth2.0第2季 分布式认证与授权实现单点登录,实战项目,springcloud3,springcloud

2.4.3  资源配置jwt的对称秘钥

oauth2.0第2季 分布式认证与授权实现单点登录,实战项目,springcloud3,springcloud

 1.注释掉调用认证服务代码

oauth2.0第2季 分布式认证与授权实现单点登录,实战项目,springcloud3,springcloud

2.新增jwt认证

oauth2.0第2季 分布式认证与授权实现单点登录,实战项目,springcloud3,springcloud3.容器注册

oauth2.0第2季 分布式认证与授权实现单点登录,实战项目,springcloud3,springcloud

 2.4.4  认证服务配置jwt的非对称秘钥

 oauth2.0第2季 分布式认证与授权实现单点登录,实战项目,springcloud3,springcloud

 oauth2.0第2季 分布式认证与授权实现单点登录,实战项目,springcloud3,springcloud

  2.4.5  资源服务配置jwt的非对称秘钥

oauth2.0第2季 分布式认证与授权实现单点登录,实战项目,springcloud3,springcloud

三   oauth2.0分布式认证授权

3.1 分布式认证授权流程

oauth2.0第2季 分布式认证与授权实现单点登录,实战项目,springcloud3,springcloud

3.2 eureka注册中心的搭建

oauth2.0第2季 分布式认证与授权实现单点登录,实战项目,springcloud3,springcloud

 3.3  资源服务器和认证服务器配置注册到eureka中

1.配置pom依赖

2.配置yml文件

3.启动类添加注解 

oauth2.0第2季 分布式认证与授权实现单点登录,实战项目,springcloud3,springcloud

oauth2.0第2季 分布式认证与授权实现单点登录,实战项目,springcloud3,springcloud

  3.4  配置网关zuul

3.4.1.基础网关配置

oauth2.0第2季 分布式认证与授权实现单点登录,实战项目,springcloud3,springcloud

 oauth2.0第2季 分布式认证与授权实现单点登录,实战项目,springcloud3,springcloud

 3.4.2 .网关配置资源服务配置类

oauth2.0第2季 分布式认证与授权实现单点登录,实战项目,springcloud3,springcloud

 1.配置放行和过滤判断的路径

oauth2.0第2季 分布式认证与授权实现单点登录,实战项目,springcloud3,springcloud

 3.4.3.网关安全配置类

1.配置springsecurityconfig类

oauth2.0第2季 分布式认证与授权实现单点登录,实战项目,springcloud3,springcloud

  3.4.4.认证过滤器的配置

oauth2.0第2季 分布式认证与授权实现单点登录,实战项目,springcloud3,springcloud

 2.跨域解决

oauth2.0第2季 分布式认证与授权实现单点登录,实战项目,springcloud3,springcloud

 3.5.资源服务进行解析并授权

3.5.1 过滤器实现授权

在微服务中接收到网关转发过来的token后,需要我们构建一个Authentication对象来完成微服务的认证与授权;这样这个微服务就可以根据用户所拥有的权限,来判断对应的资源是否可以被用户访问。

oauth2.0第2季 分布式认证与授权实现单点登录,实战项目,springcloud3,springcloud

 2.封装Authentication

oauth2.0第2季 分布式认证与授权实现单点登录,实战项目,springcloud3,springcloud

 3.验证访问oauth2.0第2季 分布式认证与授权实现单点登录,实战项目,springcloud3,springcloud

  3.6.client1和client2系统配置到网关网关整合单点登录

1.配置注册eureka的信息

2.修改认证服务的端口,改成为网关的端口7001

oauth2.0第2季 分布式认证与授权实现单点登录,实战项目,springcloud3,springcloud

 3.7 客户端资源服务接口携带令牌token

oauth2.0第2季 分布式认证与授权实现单点登录,实战项目,springcloud3,springcloud

 2.配置OAuth2RestTemplate

oauth2.0第2季 分布式认证与授权实现单点登录,实战项目,springcloud3,springcloud

 文章来源地址https://www.toymoban.com/news/detail-680136.html

3.client1 请求 资源服务器

oauth2.0第2季 分布式认证与授权实现单点登录,实战项目,springcloud3,springcloud

 

oauth2.0第2季 分布式认证与授权实现单点登录,实战项目,springcloud3,springcloud

 

到了这里,关于oauth2.0第2季 分布式认证与授权实现单点登录的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

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

    Spring Cloud Gateway 整合OAuth2.0 实现统一认证授权 GateWay——向其他服务传递参数数据 https://blog.csdn.net/qq_38322527/article/details/126530849 @EnableAuthorizationServer Oauth2ServerConfig 验证签名 网关服务需要RSA的公钥来验证签名是否合法,所以认证服务需要有个接口把公钥暴露出来 接下来搭建网

    2024年02月13日
    浏览(43)
  • 开放平台实现安全的身份认证与授权原理与实战:学习OAuth2.0之PKCE

    随着互联网的不断发展,我们的生活中越来越多的服务都需要我们的身份认证和授权。例如,我们在使用某些网站或应用程序时,需要通过账号和密码进行身份认证,以便于保护我们的个人信息和数据。同时,当我们使用某些第三方应用程序时,这些应用程序需要我们授权访

    2024年04月16日
    浏览(38)
  • 开放平台实现安全的身份认证与授权原理与实战:整理OAuth2.0各种开发指南

    OAuth 2.0 是一种基于标准 HTTP 的身份验证和授权机制,它允许用户授予第三方应用程序访问他们在其他服务(如社交网络、电子邮件服务器或云存储服务)的数据。OAuth 2.0 的目标是提供一种简化的方法,使得用户可以安全地授予第三方应用程序访问他们的数据,而无需将他们的密

    2024年04月27日
    浏览(44)
  • 34、商城系统(十五):认证服务,短信验证码,密码加盐,OAuth2.0社交登录,SpringSession认证功能,单点登录

    目录 一、新建认证服务 1.后端项目启动 2.前端页面复制 3.配置域名 4.配置gateway

    2024年02月19日
    浏览(49)
  • SpringBoot 如何使用 OAuth2 进行认证和授权

    OAuth2 是一种授权框架,可以用于实现第三方应用程序访问用户资源的安全性。在 SpringBoot 中,我们可以使用 Spring Security 和 Spring OAuth2 来实现 OAuth2 的认证和授权功能。本文将介绍如何在 SpringBoot 中使用 OAuth2 进行认证和授权。 在开始介绍如何使用 OAuth2 进行认证和授权之前,

    2024年02月13日
    浏览(35)
  • 搭建spring security oauth2认证授权服务器

    下面是在spring security项目的基础上搭建spring security oauth2认证授权服务器 spring security oauth2认证授权服务器主要需要以下依赖 Spring Security对OAuth2默认可访问端点 ​/oauth/authorize​ ​​:申请授权码code,涉及类​ ​AuthorizationEndpoint​ ​ ​/oauth/token​ ​​:获取令牌token,涉及类​

    2024年01月21日
    浏览(57)
  • Spring Security—OAuth2 客户端认证和授权

    关于 JWT Bearer 客户端认证的进一步详情,请参考OAuth 2.0客户端认证和授权许可的 JSON Web Token (JWT)简介。 JWT Bearer 客户端认证的默认实现是  NimbusJwtClientAuthenticationParametersConverter ,它是一个  Converter ,通过在  client_assertion  参数中添加签名的JSON Web Token(JWS)来定制令牌请求

    2024年02月08日
    浏览(54)
  • Spring Boot OAuth2 认证服务器搭建及授权码认证演示

    本篇使用JDK版本是1.8,需要搭建一个OAuth 2.0的认证服务器,用于实现各个系统的单点登录。 这里选择Spring Boot+Spring Security + Spring Authorization Server 实现,具体的版本选择如下: Spirng Boot 2.7.14 , Spring Boot 目前的最新版本是 3.1.2,在官方的介绍中, Spring Boot 3.x 需要JDK 17及以上的

    2024年02月15日
    浏览(49)
  • .NET CORE开源 DDD微服务 支持 多租户 单点登录 多级缓存、自动任务、分布式、日志、授权和鉴权 、网关 、注册与发现 系统架构 docker部署

    源代码地址https://github.com/junkai-li/NetCoreKevin 基于NET6搭建跨平台DDD思想WebApi架构、IDS4单点登录、多缓存、自动任务、分布式、多租户、日志、授权和鉴权、CAP、SignalR、 docker部署  如需简约项目可直接去除项目引用 解耦设计都可以单独引用 架构默认全部引用并启动 项目启动时

    2023年04月24日
    浏览(48)
  • 授权码 + PKCE 模式|OIDC & OAuth2.0 认证协议最佳实践系列【03】

    ​ 在上一篇文章中,我们介绍了 OIDC 授权码模式(点击下方链接查看), 本次我们将重点围绕 授权码 + PKCE 模式(Authorization Code With PKCE)进行介绍 ,从而让你的系统快速具备接入用户认证的标准体系。 OIDC OAuth2.0 认证协议最佳实践系列 02 - 授权码模式(Authorization Code)接

    2024年02月01日
    浏览(92)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包