重要术语
 
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) 资源服务器对访问令牌做出响应。

OAuth2.0 工作流程的更多相关文章

  1. OAuth2.0 原理流程及其单点登录和权限控制

    2018年07月26日 07:21:58 kefeng-wang 阅读数:5468更多 所属专栏: Java微服务构架   版权声明:[自由转载-非商用-非衍生-保持署名]-转载请标明作者和出处. h ...

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

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

  3. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_5-3.微信Oauth2.0交互流程讲解

    笔记 3.微信Oauth2.0交互流程讲解     简介:讲解微信Oauth2.0交互流程              参考:https://open.weixin.qq.com/cgi-bin/sho ...

  4. C#搭建Oauth2.0认证流程以及代码示例

    我认为对于一个普遍问题,必有对应的一个简洁优美的解决方案.当然这也许只是我的一厢情愿,因为根据宇宙法则,所有事物总归趋于混沌,而OAuth协议就是混沌中的产物,不管是1...0a还是2.,单看版本号就 ...

  5. (十一) 整合spring cloud云架构 - SSO单点登录之OAuth2.0登录流程(2)

    上一篇是站在巨人的肩膀上去研究OAuth2.0,也是为了快速帮助大家认识OAuth2.0,闲话少说,我根据框架中OAuth2.0的使用总结,画了一个简单的流程图(根据用户名+密码实现OAuth2.0的 ...

  6. Spring Cloud云架构 - SSO单点登录之OAuth2.0登录流程(2)

    上一篇是站在巨人的肩膀上去研究OAuth2.0,也是为了快速帮助大家认识OAuth2.0,闲话少说,我根据框架中OAuth2.0的使用总结,画了一个简单的流程图(根据用户名+密码实现OAuth2.0的 ...

  7. OAuth2.0基本流程

    用户请求客户端>客户端通过在授权服务器上申请的apikey和apisceret>登录访问资源服务器

  8. OAuth2.0授权流程

    微信授权 第3步的微信授权中的scope字段: snsapi_base 静默授权,不弹出用户同意框,可直接获取成员的基础信息:    snsapi_userinfo:静默授权,弹出用户同意框,待用户同 ...

  9. Oauth2.0认证流程

随机推荐

  1. 开源 免费 java CMS - FreeCMS1.4-功能说明-站点管理

    下载地址:http://code.google.com/p/freecms/ 站点管理 FreeCMS支持网站群模式,并支持无限树级管理. 1.  添加一级站点 从左侧管理菜单点击站点管理进入. 提示 ...

  2. angularJS自定义 过滤器基础

    先写个简单的例子,该过滤器是指定规定的字符串长度: html: <div ng-app="app" ng-controller="ctrl"> &l ...

  3. 配置 Ionic环境

    本博客只适合win7 系统 准备  必须要有 注意了!!!! //注意所以路径均不支持中文 1.安装JSK (jsva环境) 默认安装位置 如果是32位操作系统  需要安装32bit版的JDK C:\ ...

  4. Eclipse 中,web项目在Tomcat运行时填写不了Server name

    最近开发项目,从MyEclipse中导入项目到Eclipse中,那些WEB属性都在,可就是不能在Tomcat上运行.纠结一番,最后发现是这个问题: WEB的版本问题. 具体问题看下图: 解决方案: W ...

  5. 典型关联分析(CCA)原理总结

    典型关联分析(Canonical Correlation Analysis,以下简称CCA)是最常用的挖掘数据关联关系的算法之一.比如我们拿到两组数据,第一组是人身高和体重的数据,第二组是对应的跑步能 ...

  6. JS监听页面关闭

    JS可以监听浏览器页面的关闭,主要使用了window对象的onbeforeunload方法 在以前(旧版本的浏览器中),可以自定义提示文案 window.onbeforeunload = functi ...

  7. sharepoint 2010版本 图文安装

    软件程序:Microsoft Perject Server2010 Microsoft Share Point2010(中文版) 操作系统:windows server 2008 sp1  64位 数 ...

  8. (三)Python在windows上安装

    1.安装2.7--进入python官网(网址百度)下载python2.7 和python3.6(很小,2个程序后缀不一样?)2.安装到c:\python----next----advanced不动-- ...

  9. 自定义配置文件的使用及加载-txt

    [Game] Version=1 [Login] Account = 阿斗阿斯顿撒 Password =我去饿我去恶趣味 Success = 成哥 Faild = 失败 [Job] Job1 = 战士 ...

  10. 《数学分析Analysis》の 学习笔记

    >> 皮亚诺(Peano)公理 定义自然数 公理2.1   0是一个自然数. 公理2.2   若n是自然数, 则n++也是自然数. 公理2.3   0不是任何自然数的后继, 即对于每个自然 ...