重要术语
 
Authorization Server:授权服务器,能够成功验证资源拥有者和获取授权,并在此之后分发令牌的服务器;
Resource Server:资源服务器,存储用户的数据资源,能够接受和响应受保护资源请求的服务器;
Client:客户端,获取授权和发送受保护资源请求的第三方应用;
Resource Owner:资源拥有者,能够对受保护资源进行访问许可控制的实体;
Protected Resource:受保护资源,能够使用OAuth请求获取的访问限制性资源;
Authorization Code:授权码;
Refresh Token:刷新令牌;
Access Token:访问令牌。
 
核心工作流程
OAuth 为客户端提供了一种代表资源拥有者访问受保护资源的方法。在客户端访问受保护资源之前,它必须先从资源拥有者获取授权(访问许可),然后用访问许可交换访问令牌(Access Token,包含许可的作用域、持续时间和其它属性等信息)。客户端通过向资源服务器出示访问令牌来访问受保护资源。访问令牌提供了一个抽象层,将不同的授权结构(如用户名密码)替换成资源服务器可以理解的单一访问令牌。这种抽象使得分发短期有效的访问令牌成为可能,也使得资源服务器不必理解多种多样的授权机制。使用OAuth2.0 机制,进行认证授权,获取访问令牌,并通过访问令牌来访问受保护资源,如图所示:
 
 
OAuth2.0 的工作流程简述如下:
(1) 客户端从资源拥有者(最终用户)那里请
求授权。授权请求能够直接发送给资源拥有者,或者
间接的通过授权服务器发送请求;
(2) 资源拥有者为客户端授权,给客户端发送一个
访问许可(Authorization Code);
(3) 客户端出示自己的私有证书(client_id 和
client_secret)和上一步拿到的访问许可,来向授权服务
器请求一个访问令牌;
(4) 授权服务器验证客户端的私有证书和访问许
可的有效性,如果验证有效,则向客户端发送一个访
问令牌,访问令牌包括许可的作用域、有效时间和一
些其他属性信息;
(5) 客户端出示访问令牌向资源服务器请求
受保护资源;
(6) 资源服务器对访问令牌做出响应。

最新文章

  1. stringstream的基本用法
  2. linux下使用远程图形界面
  3. 2014-04-09 互联网Web安全职位面试题目汇总
  4. 解决安装SQL Server2008失败的问题
  5. Apache2.2+php5.4在windows上配置实例
  6. gvim 常用命令
  7. PHP中字符串补齐为定长
  8. 如何优化运行在webkit上的web app
  9. Python抓取成都房价信息
  10. JavaScript 版数据结构与算法(四)集合
  11. React Native & react-native-web-player & React Native for Web
  12. python语法_元组
  13. BatchPreparedStatementSetter,用法
  14. 关于E-R图
  15. note 9 列表、时间复杂度、排序
  16. python-day5内置模块time、range、sys、os、shelve、xml、max等
  17. 云笔记项目-Spring事务学习-传播NEVER
  18. 海量日志实时收集系统架构设计与go语言实现
  19. promise对象的回调函数resolve的参数为另一个promise对象
  20. asp.net mvc 学习笔记 - 单一实例设计模式

热门文章

  1. mssql分页原理及效率分析
  2. JQUERY 特殊字符
  3. 【完全背包】HDU 1284 钱币兑换问题
  4. kali2.0 + LAMP
  5. 打印java堆栈信息
  6. 关于Kafka使用IBM Java报错解决方案
  7. Webservice WCF WebApi
  8. AsyncHttpClient 中的重定向和 setEnableRedirects 方法异常解决
  9. 单向链表仿LinkedList
  10. Python学习笔记——基础篇【第五周】——算法(4*4的2维数组和冒泡排序)、时间复杂度