SpringCloud Security:Oauth2 基本概念

一.摘要

Spring Cloud Security 为构建安全的SpringBoot应用提供了一系列解决方案,结合Oauth2可以实现单点登录、令牌中继、令牌交换等功能。

二.OAuth2 简介

OAuth 2.0是用于授权的行业标准协议。OAuth 2.0为简化客户端开发提供了特定的授权流,包括Web应用、桌面应用、移动端应用等。

三.OAuth2 相关名词解释

  1. Resource owner(资源拥有者):拥有该资源的最终用户,他有访问资源的账号密码。可以理解为用户
  2. Resource server(资源服务器)拥有受保护资源的服务器,如果请求包含正确的访问令牌,可以访问资源;
  3. Client(客户端)访问资源的客户端,会使用访问令牌去获取资源服务器的资源,可以是浏览器、移动设备或者服务器;
  4. Authorization server(认证服务器)用于认证用户的服务器,如果客户端认证通过,发放访问资源服务器的令牌。

四.四种授权模式

  1. 授权码模式(最常用):正宗的OAuth2的授权模式,客户端先将用户导向认证服务器,登录后获取授权码,然后进行授权,最后根据授权码获取访问令牌;
  2. 简化模式:和授权码模式相比,取消了获取授权码的过程,直接获取访问令牌;
  3. 密码模式:客户端直接向用户获取用户名和密码,之后向认证服务器获取访问令牌;
  4. 客户端模式:客户端直接通过客户端认证(比如client_id和client_secret)从认证服务器获取访问令牌。

其中,比较常用的是授权码模式 和 密码模式。

五.4种模式的图示

一. 授权码模式
在这里插入图片描述

  1. 用户访问页面
  2. 访问的页面将请求重定向到认证服务器
  3. 认证服务器向用户展示授权页面,等待用户授权
  4. 用户授权,认证服务器生成一个code和带上client_id发送给应用服务器,然后,应用服务器拿到code,并用client_id去后台查询对应的client_secret
  5. 将code、client_id、client_secret传给认证服务器换取access_token和 refresh_token
  6. 将access_token和refresh_token传给应用服务器
  7. 验证token,访问真正的资源页面

二.密码模式
在这里插入图片描述

  1. 用户访问用页面时,输入用户的账号密码
  2. 应用页面那种这个信息去认证服务器授权
  3. 认证服务器授权通过,拿到token,访问真正的资源页面

三.客户端模式
在这里插入图片描述

  1. 客户端向认证服务器进行身份认证,并要求一个token;
  2. 认证服务器确认无误后,向客户端提供token;
  3. 客户端携带token向资源服务器请求访问资源;
  4. 资源服务器返回资源。

六.总结一下四种模式的应用场景

  1. 授权码模式:第三方Web服务器端应用与第三方原生App

  2. 简化模式:第三方单页面应用

  3. 密码模式:第一方单页应用与第一方原生App

  4. 客户端模式:没有用户参与的,完全信任的服务器端服务

https://www.cnblogs.com/Innocent-of-Dabber/p/11009811.html

发布了54 篇原创文章 · 获赞 81 · 访问量 9644

猜你喜欢

转载自blog.csdn.net/weixin_40991408/article/details/104270225