SpringSecurity OAuth2四种模式说明
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四种模式说明相关推荐
- 零基础学习SpringSecurity OAuth2 四种授权模式(理论+实战)(配套视频讲解)
配套视频直达 背景 前段时间有同学私信我,让我讲下Oauth2授权模式,并且还强调是零基础的那种,我也不太理解这个零基础到底是什么程度,但是我觉得任何阶段的同学看完我这个视频,对OAuth2的理解将会 ...
- 大话微服务:Spring Cloud gateway+OAuth2 实现单点登录和权限控制(二) OAuth2.0 四种模式的通俗理解
一. 概述 OAuth2.0的规范要求,就是客户端(即通常是各个应用程序)要访问资源所有者时,经过资源所有者同意后,由Oauth向这个客户端颁发令牌.为了满足互联网不同的场景 ,规定了四种获得令牌的流 ...
- SpringBoot Security的oauth2四种授权模式使用
oauth2四种使用方式 密码模式 localhost:8080/oauth/token?client_id=client_id_1&client_secret=123456&gran ...
- Oauth2.0的四种模式
1. 授权码模式 (1)资源拥有者打开客户端,客户端要求资源拥有者给予授权,它将浏览器被重定向到授权服务器,重定向时会 附加客户端的身份信息.如: /uaa/oauth/authorize? clie ...
- oauth2四种授权方式小结
序 本文主要小结一下oauth2的四种模式的特点和适用场景. 四种授权方式 OAuth 2.0定义了四种授权方式. 密码模式(resource owner password credentials) ...
- spi协议时序图和四种模式实际应用详解
大家好,我是无际. 上个章节我们讲解了spi接口定义,今天我们更加深入讲解下spi协议时序图和spi四种模式的用法. 刚开始接触单片机开发时,最怕就是看时序图,对于我来说就是奇怪的知识. 特别是SPI ...
- ThinkPHP的访问模式分为四种模式
ThinkPHP的访问模式分为四种模式 0 普通模式 http://www.yual.com/index.php?m=user&a=show 1 pathinfo模式 http://www.y ...
- gRPC四种模式、认证和授权实战演示
前言 上一篇对gRPC进行简单介绍,并通过示例体验了一下开发过程.接下来说说实际开发常用功能,如:gRPC的四种模式.gRPC集成JWT做认证和授权等. 正文 1. gRPC四种模式服务 以下案例演示 ...
- lvs工作在第几层_LVS 原理(调度算法、四种模式、四层负载均衡和七层 的区别)...
目录 lvs的调度算法 lvs的四种模式 四层均衡负载和七层的区别 1.lvs调度算法(最常用的四种) 轮叫调度(rr) 调度器通过外部请求的顺序轮流分配到集群中的真实服务器上,对每台服务器都是均等的 ...
最新文章
- eclipse没有server选项解决方法
- 步步为营 .NET 代码重构学习笔记 十一
- 数据持久化 plist,CoreData,Sqlite
- 把hive数据导出至mysql
- android显示绘图动画,Android自定义View绘图实现渐隐动画
- 当你不知道今天星期几,不妨在编辑器写下这段代码
- unity平行光太亮?物体发白?可能你使用了2个或多个平行光
- MIPS架构之start.s汇编分析
- 神经网络动态可视化工具
- 如何用matlab做拉普拉斯变换,利用MATLAB实现拉普拉斯变换和其逆变换
- abaqus对应python版本_Abaqus里应用Python的一些技巧
- 阿里巴巴图标库字体iconfont旋转
- DLL的远程注入技术及注入dll函数调用
- 【机器学习】适用于机器学习初学者的8个小项目
- 线上问题处理1---CPU飙高问题定位
- USYD悉尼大学DATA1002 详细作业解析Module4
- STP Security之BPDU Filter、BPDU Guard、Root Guard
- Cannot find module lint-staged 解决办法
- ASR项目实战-从源码开始构建Kaldi
- 浅谈深度学习:LSTM对股票的收益进行预测(Sequential 序贯模型,Keras实现)
热门文章
- CodeForces - 570E(dp------------- Codeforces Round #316 (Div. 2)E
- JavaScript对象的创建之构造函数
- 我所不知道的Web 前台设计
- go语言学习(基本数据类型)
- 【BZOJ4771】七彩树 主席树+树链的并
- H5 的getImageData造成的大量内存开销
- 程序员的进化(目前还看不懂)
- WinPcap过滤串表达式的语法
- (七)webStorage使用实例——webStorage作为简易数据库来使用
- 【Hibernate】Hibernate实体关系映射——单边的多对一关系