OAuth2.0中四种授权方式

授权码模式(authorization code)

流程

说明:【A服务客户端】需要用到【B服务资源服务】中的资源

  • 第一步:【A服务客户端】将用户自动导航到【B服务认证服务】,这一步用户需要提供一个回调地址,以备 【B服务认证服务】返回授权码使用。
  • 第二步:用户点击授权按钮表示让【A服务客户端】使用【B服务资源服务】,这一步需要用户登录B服务,也 就是说用户要事先具有B服务的使用权限。
  • 第三步:【B服务认证服务】生成授权码,授权码将通过第一步提供的回调地址,返回给【A服务客户端】。 注意这个授权码并非通行【B服务资源服务】的通行凭证。
  • 第四步:【A服务认证服务】携带上一步得到的授权码向【B服务认证服务】发送请求,获取通行凭证token。
  • 第五步:【B服务认证服务】给【A服务认证服务】返回令牌token和更新令牌refresh token。

使用场景

授权码模式是OAuth2中最安全最完善的一种模式,应用场景最广泛,可以实现服务之间的调用,常见的微 信,QQ等第三方登录也可采用这种方式实现。

简化模式(implicit)

流程

说明:简化模式中没有【A服务认证服务】这一部分,全部有【A服务客户端】与B服务交互,整个过程不再有 授权码,token直接暴露在浏览器。

  • 第一步:【A服务客户端】将用户自动导航到【B服务认证服务】,这一步用户需要提供一个回调地址,以备 【B服务认证服务】返回token使用,还会携带一个【A服务客户端】的状态标识state。
  • 第二步:用户点击授权按钮表示让【A服务客户端】使用【B服务资源服务】,这一步需要用户登录B服务,也 就是说用户要事先具有B服务的使用权限。
  • 第三步:【B服务认证服务】生成通行令牌token,token将通过第一步提供的回调地址,返回给【A服务客户 端】。

使用场景

适用于A服务没有服务器的情况。比如:纯手机小程序,JavaScript语言实现的网页插件等

密码模式(resource owner password credentials)

流程

  • 第一步:直接告诉【A服务客户端】自己的【B服务认证服务】的用户名和密码
  • 第二步:【A服务客户端】携带【B服务认证服务】的用户名和密码向【B服务认证服务】发起请求获取 token。
  • 第三步:【B服务认证服务】给【A服务客户端】颁发token。

使用场景

此种模式虽然简单,但是用户将B服务的用户名和密码暴露给了A服务,需要两个服务信任度非常高才能使 用

客户端模式(client credentials)

流程

说明:这种模式其实已经不太属于OAuth2的范畴了。A服务完全脱离用户,以自己的身份去向B服务索取 token。换言之,用户无需具备B服务的使用权也可以。完全是A服务与B服务内部的交互,与用户无关了。

  • 第一步:A服务向B服务索取token。
  • 第二步:B服务返回token给A服务。

使用场景

A服务本身需要B服务资源,与用户无关。

SpringSecurity OAuth2四种模式说明相关推荐

  1. 零基础学习SpringSecurity OAuth2 四种授权模式(理论+实战)(配套视频讲解)

    配套视频直达 背景 前段时间有同学私信我,让我讲下Oauth2授权模式,并且还强调是零基础的那种,我也不太理解这个零基础到底是什么程度,但是我觉得任何阶段的同学看完我这个视频,对OAuth2的理解将会 ...

  2. 大话微服务:Spring Cloud gateway+OAuth2 实现单点登录和权限控制(二) OAuth2.0 四种模式的通俗理解

    一. 概述 OAuth2.0的规范要求,就是客户端(即通常是各个应用程序)要访问资源所有者时,经过资源所有者同意后,由Oauth向这个客户端颁发令牌.为了满足互联网不同的场景 ,规定了四种获得令牌的流 ...

  3. SpringBoot Security的oauth2四种授权模式使用

    oauth2四种使用方式 密码模式 localhost:8080/oauth/token?client_id=client_id_1&client_secret=123456&gran ...

  4. Oauth2.0的四种模式

    1. 授权码模式 (1)资源拥有者打开客户端,客户端要求资源拥有者给予授权,它将浏览器被重定向到授权服务器,重定向时会 附加客户端的身份信息.如: /uaa/oauth/authorize? clie ...

  5. oauth2四种授权方式小结

    序 本文主要小结一下oauth2的四种模式的特点和适用场景. 四种授权方式 OAuth 2.0定义了四种授权方式. 密码模式(resource owner password credentials) ...

  6. spi协议时序图和四种模式实际应用详解

    大家好,我是无际. 上个章节我们讲解了spi接口定义,今天我们更加深入讲解下spi协议时序图和spi四种模式的用法. 刚开始接触单片机开发时,最怕就是看时序图,对于我来说就是奇怪的知识. 特别是SPI ...

  7. ThinkPHP的访问模式分为四种模式

    ThinkPHP的访问模式分为四种模式 0 普通模式 http://www.yual.com/index.php?m=user&a=show 1 pathinfo模式 http://www.y ...

  8. gRPC四种模式、认证和授权实战演示

    前言 上一篇对gRPC进行简单介绍,并通过示例体验了一下开发过程.接下来说说实际开发常用功能,如:gRPC的四种模式.gRPC集成JWT做认证和授权等. 正文 1. gRPC四种模式服务 以下案例演示 ...

  9. lvs工作在第几层_LVS 原理(调度算法、四种模式、四层负载均衡和七层 的区别)...

    目录 lvs的调度算法 lvs的四种模式 四层均衡负载和七层的区别 1.lvs调度算法(最常用的四种) 轮叫调度(rr) 调度器通过外部请求的顺序轮流分配到集群中的真实服务器上,对每台服务器都是均等的 ...

最新文章

  1. eclipse没有server选项解决方法
  2. 步步为营 .NET 代码重构学习笔记 十一
  3. 数据持久化 plist,CoreData,Sqlite
  4. 把hive数据导出至mysql
  5. android显示绘图动画,Android自定义View绘图实现渐隐动画
  6. 当你不知道今天星期几,不妨在编辑器写下这段代码
  7. unity平行光太亮?物体发白?可能你使用了2个或多个平行光
  8. MIPS架构之start.s汇编分析
  9. 神经网络动态可视化工具
  10. 如何用matlab做拉普拉斯变换,利用MATLAB实现拉普拉斯变换和其逆变换
  11. abaqus对应python版本_Abaqus里应用Python的一些技巧
  12. 阿里巴巴图标库字体iconfont旋转
  13. DLL的远程注入技术及注入dll函数调用
  14. 【机器学习】适用于机器学习初学者的8个小项目
  15. 线上问题处理1---CPU飙高问题定位
  16. USYD悉尼大学DATA1002 详细作业解析Module4
  17. STP Security之BPDU Filter、BPDU Guard、Root Guard
  18. Cannot find module lint-staged 解决办法
  19. ASR项目实战-从源码开始构建Kaldi
  20. 浅谈深度学习:LSTM对股票的收益进行预测(Sequential 序贯模型,Keras实现)

热门文章

  1. CodeForces - 570E(dp------------- Codeforces Round #316 (Div. 2)E
  2. JavaScript对象的创建之构造函数
  3. 我所不知道的Web 前台设计
  4. go语言学习(基本数据类型)
  5. 【BZOJ4771】七彩树 主席树+树链的并
  6. H5 的getImageData造成的大量内存开销
  7. 程序员的进化(目前还看不懂)
  8. WinPcap过滤串表达式的语法
  9. (七)webStorage使用实例——webStorage作为简易数据库来使用
  10. 【Hibernate】Hibernate实体关系映射——单边的多对一关系