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的定义的更多相关文章

  1. OAuth2.0 基础概述

    web:http://oauth.net/2/ rfc:http://tools.ietf.org/html/rfc6749 doc:http://oauth.net/documentation/ c ...

  2. 从协议入手,剖析OAuth2.0(译 RFC 6749)

    1.介绍      https://tools.ietf.org/html/rfc6749  传统的client-server授权模型,客户端通过使用凭证(通常的用户名和明文密码)访问服务端受保护的资 ...

  3. Spring Cloud 微服务中搭建 OAuth2.0 认证授权服务

    在使用 Spring Cloud 体系来构建微服务的过程中,用户请求是通过网关(ZUUL 或 Spring APIGateway)以 HTTP 协议来传输信息,API 网关将自己注册为 Eureka ...

  4. OAuth2.0认证流程是如何实现的?

    导读 大家也许都有过这样的体验,我们登录一些不是特别常用的软件或网站的时候可以使用QQ.微信或者微博等账号进行授权登陆.例如我们登陆豆瓣网的时候,如果不想单独注册豆瓣网账号的话,就可以选择用微博或者微 ...

  5. OAuth2.0授权登录

    最近工作中遇到了多系统间的授权登录,对OAuth2.0进行了学习研究,并总结备忘. [场景] 我们登录一些论坛等网站的时候,如果不想单独注册该网站账号,可以选择用微信或QQ账号进行授权登录. 这样的第 ...

  6. 《OAuth2.0协议安全形式化分析-》----论文摘抄整理

    ---恢复内容开始--- 本篇论文发表在计算机工程与设计,感觉写的还是很有水准的.实验部分交代的比较清楚 本篇论文的创新点: 使用Scyther工具 主要是在 DY模型下面 形式化分析了 OAuth2 ...

  7. Spring Security 实战干货: 简单的认识 OAuth2.0 协议

    1.前言 欢迎阅读 Spring Security 实战干货 系列文章 .OAuth2.0 是近几年比较流行的授权机制,对于普通用户来说可能每天你都在用它,我们经常使用的第三方登录大都基于 OAuth ...

  8. 【Oauth2.0】Oauth2.0

    一.什么是Oauth2.0? 1.Oauth2.0即(Open Authorization ),Oauth2.0是一个用于第三方授权的开放标准,是Oauth1.0的升级版本,相比1.0版本易于使用: ...

  9. spring security oauth2.0 实现

    oauth应该属于security的一部分.关于oauth的的相关知识可以查看阮一峰的文章:http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html ...

随机推荐

  1. 莫烦python教程学习笔记——总结篇

    一.机器学习算法分类: 监督学习:提供数据和数据分类标签.--分类.回归 非监督学习:只提供数据,不提供标签. 半监督学习 强化学习:尝试各种手段,自己去适应环境和规则.总结经验利用反馈,不断提高算法 ...

  2. 【JavaWeb】【Maven】001 下载与配置

    Maven下载与配置 Download Url:Maven – Download Apache Maven After downloading it, unpack it and configure ...

  3. 【Office】【Excel】将多个工作表合为一个工作表

    在工作表中按下alt+F11打开vba编辑窗口,在菜单栏中选择[插入]=>[模板],将下面的代码粘贴过去,然后运行即可 点击查看代码 Sub 合并当前工作簿下的所有工作表() On Error ...

  4. Docker(4)-docker常用命令

    帮助命令 docker version # 查看docker的版本信息 docker info # 查看docker的系统信息,包含镜像和容器的数量 docker --help # 帮助命令 dock ...

  5. Linux下安装数据库sqlite3

    目录 一.简介 二.安装 三.测试 一.简介 SQLite 是一个软件库,实现了自给自足的.无服务器的.零配置的.事务性的 SQL 数据库引擎.SQLite 是在世界上最广泛部署的 SQL 数据库引擎 ...

  6. 开发中Design Review和Code Review

    一.Design Review 详解 翻译为设计评审,也就是对需求设计进行审核,防止出现异常问题,例如下面的这些 可用性 外部依赖有哪些?如果这些外部依赖崩溃了我们有什么处理措施? 我们SLA是什么? ...

  7. java中注释、关键字、标识符,数据类型(上)

    一.java中的注释(有3种) 注释:是给写代码的人看的,注释不会被执行 单行注释:用符号"//"实现 多行注释:用"/* */ " 实现 javaDoc(文档 ...

  8. Oracle命名规则

    1.长度不能超过三十个字符 2. 不要使用Oracle关键字 比如:id  name  table 3. 不能使用数字开头 包含:数字  字母  下划线 美元符号 4.  建议用 英文单词,不要去用中 ...

  9. 从K8S部署示例进一步理解容器化编排技术的强大

    概念 Kubernetes,也称为K8s,生产级别的容器编排系统,是一个用于自动化部署.扩展和管理容器化应用程序的开源系统.K8s是一个go语言开发,docker也是go语言开发,可见go语言的是未来 ...

  10. dart系列之:如丝滑般柔顺,操作文件和目录

    目录 简介 File 读取整个文件 以流的形式读取文件 随机访问 文件的写入 处理异常 总结 简介 文件操作是IO中非常常见的一种操作,那么对应dart语言来说,操作文件是不是很简单呢?实际上dart ...