OAuth2.0的定义
1. 什么是OAuth2.0
* 用于REST/APIs的代理授权框架(delegated authorization)
* 基于令牌Token的授权,在无需暴露用户密码的情况下,使应用能获取对用户数据的有限访问权限
* 解耦认证和授权
* 事实上的标准安全框架,支持多种用例场景
* 服务器端WebApp
* 浏览器单页SPA
* 无线/原生App
* 服务器对服务器之间
2. OAuth 2.0 历史
* 大致始于2007年
* 2010-RFC5849定义了OAuth 1.0
* 2010-IETF开始OAuth2.0制定工作
* 干系人:Google,Microsoft,Facebook,Github,Twitter,Flickr,Dropbox
* 2012年中-第一作者和编辑退出,并将其名字从所有规范中删除(戏剧性)
* 2012年10月-RFC6749,RFC6750
3. OAuth 2.0 优势
* OAuth 2.0 比 OAuth 1.0 易于实现
* 更安全,客户端不接触用户密码,服务器端更易于集中保护
* 广泛传播并持续采用
* 短寿命和封装token
* 资源服务器和授权服务器解耦
* 集中授权,简化客户端
* HTTP/JSON友好,易于请求和传递token
* 考虑多种客户端架构场景
* 客户可以具有不同的信任级别
4. OAuth 2.0 不足
* 协议框架太宽泛,造成各种实现的兼容性和或操作性差
* 和OAuth 1.0 不兼容
* OAuth 2.0 不是一个认证协议,OAuth 2.0 本身并不能告诉你任何用户信息。
5. OAuth 2.0 主要角色
* 授权服务器(AS)
* 资源拥有者
* 使用令牌
6. OAuth术语
* 客户应用
通常是一个Web或者无线应用,它需要访问用户的受保护资源
* 资源服务器
是一个web站点或者web service API,用户的受保护数据保存于此
* 授权服务器
在客户应用成功认证并获得授权之后,向客户应用颁发访问令牌AccessToken
* 资源拥有者
资源的拥有人,想要分享某些资源给第三方应用
* 客户凭证
客户的clientId 和 密码用于认证客户
* 令牌
授权服务器在接收到客户请求后,颁发的访问令牌
* 作用域
客户请求访问令牌时,由资源拥有者额外指定的细分权限(permission)
7. OAuth令牌类型
* 授权码
用于授权码授权类型,用于交换获取访问令牌和刷新令牌
* 刷新令牌
用于去授权服务器获取一个新的访问令牌
* Bearer Token
不管谁拿到Token都可以访问资源,像现钞
* 访问令牌
用于代表一个用户或服务直接去访问受保护的资源
* Proof of Possession (PoP) Token
可以校验client是否对Token有明确的拥有权
8. OAuth 2.0 的误解
* OAuth并没有支持HTTP以外的协议
* OAuth并不是一个认证协议
* OAuth并没有定义授权处理机制
* OAuth并没有定义Token格式
* OAuth 2.0并没有定义加密方法
* OAuth 2.0并不是单个协议
* OAuth 2.0 仅是授权框架,仅用于授权代理
OAuth2.0的定义的更多相关文章
- OAuth2.0 基础概述
web:http://oauth.net/2/ rfc:http://tools.ietf.org/html/rfc6749 doc:http://oauth.net/documentation/ c ...
- 从协议入手,剖析OAuth2.0(译 RFC 6749)
1.介绍 https://tools.ietf.org/html/rfc6749 传统的client-server授权模型,客户端通过使用凭证(通常的用户名和明文密码)访问服务端受保护的资 ...
- Spring Cloud 微服务中搭建 OAuth2.0 认证授权服务
在使用 Spring Cloud 体系来构建微服务的过程中,用户请求是通过网关(ZUUL 或 Spring APIGateway)以 HTTP 协议来传输信息,API 网关将自己注册为 Eureka ...
- OAuth2.0认证流程是如何实现的?
导读 大家也许都有过这样的体验,我们登录一些不是特别常用的软件或网站的时候可以使用QQ.微信或者微博等账号进行授权登陆.例如我们登陆豆瓣网的时候,如果不想单独注册豆瓣网账号的话,就可以选择用微博或者微 ...
- OAuth2.0授权登录
最近工作中遇到了多系统间的授权登录,对OAuth2.0进行了学习研究,并总结备忘. [场景] 我们登录一些论坛等网站的时候,如果不想单独注册该网站账号,可以选择用微信或QQ账号进行授权登录. 这样的第 ...
- 《OAuth2.0协议安全形式化分析-》----论文摘抄整理
---恢复内容开始--- 本篇论文发表在计算机工程与设计,感觉写的还是很有水准的.实验部分交代的比较清楚 本篇论文的创新点: 使用Scyther工具 主要是在 DY模型下面 形式化分析了 OAuth2 ...
- Spring Security 实战干货: 简单的认识 OAuth2.0 协议
1.前言 欢迎阅读 Spring Security 实战干货 系列文章 .OAuth2.0 是近几年比较流行的授权机制,对于普通用户来说可能每天你都在用它,我们经常使用的第三方登录大都基于 OAuth ...
- 【Oauth2.0】Oauth2.0
一.什么是Oauth2.0? 1.Oauth2.0即(Open Authorization ),Oauth2.0是一个用于第三方授权的开放标准,是Oauth1.0的升级版本,相比1.0版本易于使用: ...
- spring security oauth2.0 实现
oauth应该属于security的一部分.关于oauth的的相关知识可以查看阮一峰的文章:http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html ...
随机推荐
- 使用mybatis更新数据时 时间字段的值自动更新
1.debug打印出来执行的sql语句发现并没有修改时间的字段,最后发现是设计表时勾选了根据当前时间戳更新..... 去掉该字段的根据当前时间戳更新语句: alter table tableName ...
- linux 操作只读变量
由于该操作需要用到 gdb,所以需要先 安装好 gdb 1. 查询是否有gdb: 2. 如果没有,需要先执行 yum install gdb 命令进行安装 3. 定义 只读变量 abc 并打印值: a ...
- Controller返回类的自动识别,WEB-INF,jsp位置
Controller: @Controller@RequestMapping("/params")public class ParamsController { @RequestM ...
- 10.Vue.js 样式绑定
Vue.js 样式绑定 Vue.js class class 与 style 是 HTML 元素的属性,用于设置元素的样式,我们可以用 v-bind 来设置样式属性. Vue.js v-bind 在处 ...
- ExecutorService 线程池详解
1.什么是ExecutorService,为什么要使用线程池? 许多服务器应用程序都面向处理来自某些远程来源的大量短小的任务,每当一个请求到达就创建一个新线程,然后在新线程中为请求服务,但是频繁创建新 ...
- 访问者模式(Visitor Pattern)——操作复杂对象结构
模式概述 在软件开发中,可能会遇到操作复杂对象结构的场景,在该对象结构中存储了多个不同类型的对象信息,而且对同一对象结构中的元素的操作方式并不唯一,可能需要提供多种不同的处理方式,还有可能增加新的处理 ...
- Mysql资料 用户权限详解
目录 一.MySQL权限详解 设置MySQL用户资源限制 用户资源限制执行操作 二.MySQL权限级别介绍 MySQL权限级别 MySQL创建权限 MySQL删除与插入权限 MySQL修改与触发器权限 ...
- [BUUCTF]PWN12——[BJDCTF 2nd]r2t3
[BUUCTF]PWN12--[BJDCTF 2nd]r2t3 题目网址:https://buuoj.cn/challenges#[BJDCTF%202nd]r2t3 步骤: 例行检查,32位,开启了 ...
- Vlookup大叔与一对多查找(Excel函数集团)
所谓一对多查找,就是根据一个条件,把多个符合条件的结果全部找出来. 其实吧,一对多查找不是什么,尤其是O365的Filter函数横空出世震撼全场之后,简直就是瞬间把所有传统的数组解法甩出去七八十来条街 ...
- Windows串口之解决包含setupapi.h还提示找不到符号报错
关于 本文演示环境: win10 1909 + VS2017 1. 错误信息 明明已经添加了头文件setupapi.h 和 库 setupapi.lib, 却还是提示报错,报错信息: 1>C:\ ...