【Oauth2.0 单点登录 + 第三方授权认证】用户认证、授权模式

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

本文主要对 SpringSecurity Oauth 2.0用户认证,授权码授权模式、密码授权模式,以及授权流程进行讲解

1. 用户认证方式

1.1 用户认证

开发中,有些功能只有管理员才有,普通用户是没有的。即需要对用户的身份进行认证,是管理员还是普通用户。认证方式有两种:

  • 身份认证:
    • 用户在访问相应资源时对用户的身份信息进行验证,身份合法才可以继续访问。
    • 常见用户认证方式:用户密码登录,指纹打卡。简单来说就是校验用户账号密码是否正确
  • 用户授权:
    • 用户认证通过后,系统会判断用户是否拥有访问资源的权限,只允许访问有权限的资源系统,没有权限的无法访问,这个过程叫用户授权(鉴定角色)。

因而用户认证(登录)成功后还需要鉴权,判断用户是否有权限访问相应资源。

1.2 单点登录认证

  • 单点登录(Single Sign On),简称 SSO 。
  • 用户在访问每个微服务时,都需要验证身份信息,如果每一个微服务都登录一次就太麻烦了。因而用户在一个微服务系统中登录后,不用登录也可以访问其他微服务,这个功能就叫单点登录
  • 简单来说就是用户只需要登录一个微服务系统就可以免登录访问其他微服务系统

1.3 第三方账号登录认证

很多项目中,我们都可以使用第三方QQ、微信等平台账号登录,用户通过一个账号就可以登录很多平台,十分便利。
【Oauth2.0 单点登录 + 第三方授权认证】用户认证、授权模式

1.4 第三方认证原理

当需要访问第三方系统的资源时,首先需要通过第三方的认证(比如:微信认证),由第三方系统对用户认证。若认证通过则允许访问相应资源。

如下图,当用户在访问抢单页面时,需要先通过微信登录进行身份认证,认证通过才允许抢单。
【Oauth2.0 单点登录 + 第三方授权认证】用户认证、授权模式

2. 认证技术解决方案

2.1 单点登录解决方案

分布式系统要实现单点登录,通常将认证系统独立抽取出来作为用户登录和授权使用,并且将用户身份信息存储在单独的存储介质,比如:MySQL、Redis,出于对性能的考虑通常放在Redis中。

如下图,我们将畅购认证系统作为单点登录用户认证系统,用户通过该系统登录,系统会返回一个token给用户,同时存储一份到Redis中,用户每次访问其他微服务都会携带token,微服务会调用畅购认证服务验证token权限,畅购认证服务通过查询Redis中有没有改token完成认证,若认证通过则允许用户访问。
【Oauth2.0 单点登录 + 第三方授权认证】用户认证、授权模式

Java中还有很多用户认证的框架都可以实现单点登录:

  • Apache Shiro
  • CAS
  • Spring security CAS
  • Oauth2(可以实现单点登录 和 第三方认证)

单点登录特点:

  • 认证系统为独立的系统。
  • 各个子系统通过HTTP或其他协议与认证系统通信,完成用户认证。
  • 用户身份信息存储在Redis集群中。

2.2 Oauth 2 认证

  • Oauth(开放授权)是一个开放标准,即不管是否受信任的服务都可以访问。
  • 允许用户授权第三方移动应用访问它们存储在另外的服务器上的信息,并且不需要提供账号密码就可以获取。也就是用户不需要在当前系统中用系统账号登录,当前系统就可以获取用户的微信账号信息(头像、用户名等)。

2.3 Oauth 2 认证原理

授权码模式授权:

  1. 用户通过第三方账号登录当前系统,用户授权允许当前系统使用第三方账号登录当前系统,
  2. 第三方账号平台会创建一个授权码返回给当前系统,当前系统通过授权码去第三方账号平台申请token,
  3. 用户每次访问的时候相应页面的时候,系统会携带令牌到第三方服务中认证用户令牌,认证通过才允许访问。

密码授权模式和授权码原理差不多,只不过需要账号密码登录。

2.4 微服务环境Oauth 2 实现

【Oauth2.0 单点登录 + 第三方授权认证】用户认证、授权模式

3. 公钥私钥

每个用户都有一个公钥和私钥:

  • 公钥加密
  • 私钥解密

用户可以将自己的公钥给别人(私钥不会给别人),别人通过公钥加密信息,传给自己,自己通过私钥解密。保证数据的安全性。文章来源地址https://www.toymoban.com/news/detail-400787.html

到了这里,关于【Oauth2.0 单点登录 + 第三方授权认证】用户认证、授权模式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Spring Boot整合OAuth2实现GitHub第三方登录

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

    2024年02月08日
    浏览(67)
  • Spring Boot 最新版3.x 集成 OAuth 2.0实现认证授权服务、第三方应用客户端以及资源服务

    Spring Boot 3 已经发布一段时间,网上关于 Spring Boot 3 的资料不是很多,本着对新技术的热情,学习和研究了大量 Spring Boot 3 新功能和新特性,感兴趣的同学可以参考 Spring 官方资料全面详细的新功能/新改进介绍 Spring 版本升级到6.x JDK版本至少17+ … 新特性有很多,本文主要针对

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

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

    2024年02月19日
    浏览(49)
  • OAuth 2.0 协议介绍【实现 GitHub 第三方登录】

    OAuth(是 Open Authorization 开放授权的缩写),在全世界得到广泛应用,目前的版本是2.0版。 本文会对OAuth 2.0的设计思路和运行流程,做一个简明通俗的解释,主要参考材料为RFC 6749。 OAuth 2.0 是一个开放标准,用于授权用户访问另一个应用程序的资源,而无需将用户的凭据(比如

    2024年02月20日
    浏览(67)
  • 实现 Google 第三方授权登录

    最近做项目要实现Google的第三方登录,这简单的记录一下。 目前Google的第三方登录有很多方案,且官方提供SDK方便接入。但是我这个项目同时要实现网页和客户端。所以选择了 Google OAuth 2.0 的方案。 当然,也可以 《实现 Facebook 第三方授权登录》 Google 的 OAuth 2.0 流程 首先

    2024年02月09日
    浏览(44)
  • 【深入浅出 Spring Security(十二)】使用第三方(Github)授权登录

    (Github授权登录的具体操作在目录第三“章”) 下面是《深入浅出Spring Security》书中的一段概述: OAuth 是一个开放标准(现在所说的 OAuth 一般都是指 OAuth2,即 2.0 版本),可以理解为是一种协议,该标准允许用户让第三方应用访问该用户在某一网站上存储的私密资源(如头

    2024年02月10日
    浏览(60)
  • vue钉钉授权第三方网页登录,扫码登录,vue hash模式下回调地址错误踩坑

    vue接入钉钉登录及遇到的问题 在index.html中引入 钉钉的配置使用后端配置好的,通过接口返回,参数主要是重定向的url地址(需要encode),和client_id。 代码如下: 扫码完成之后,页面会重定向到配置的地址上,附带authCode就是需要这个参数 在created生命周期中使用自己项目的

    2024年02月13日
    浏览(98)
  • SpringCloud微服务实战——搭建企业级开发框架:第三方登录-微信小程序授权登录流程设计和实现

      在前面的设计和实现中,我们的微服务开发平台通过JustAuth来实现第三方授权登录,通过集成公共组件,着实减少了很多工作量,大多数的第三方登录直接通过配置就可以实现。而在第三方授权登录中,微信小程序授权登录和APP微信授权登录是两种特殊的第三方授权登录

    2024年02月07日
    浏览(56)
  • Spring Boot 中如何使用 Spring Security OAuth2 来实现单点登录

    在现代 Web 应用程序中,单点登录(Single Sign-On,简称 SSO)是一个非常重要的功能。Spring Security OAuth2 是 Spring Security 框架的一个扩展,它提供了一种简单的方式来实现 SSO。在本文中,我们将介绍如何在 Spring Boot 应用程序中使用 Spring Security OAuth2 来实现单点登录。 在开始之前

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

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

    2024年02月13日
    浏览(34)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包