重要术语
 
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. go: GOPATH entry is relative; must be absolute path: "".

    安装:vscode-go出现以下提示: go: GOPATH entry is relative; must be absolute path: "".Run 'go help g ...

  2. 记一次解决curl https证书问题

    问题起因 在访问https的网站时,报出Peer's Certificate has expired的错误.如下: [root@localhost ~]# curl https://www.baidu ...

  3. mysql关联删除

    <delete id="deleteBatchUserOfSp" parameterType="java.lang.String" > delete ...

  4. java获取登陆用户的IP地址

    /** * 通过HttpServletRequest返回IP地址 * @param request HttpServletRequest * @return ip String * @throws E ...

  5. 【Coursera - machine learning】 Linear regression with one variable-quiz

    Question 1 Consider the problem of predicting how well a student does in her second year of college/ ...

  6. 2017 年不可错过的开发工具 Top 50

    想知道 2017 年有哪些值得关注的开发工具吗?StackShare 年度开发工具排行榜来啦! StackShare.io 是一个开发者工具及服务分享平台,致力于发现并分享开发者使用的开发工具.服务与 ...

  7. java基础练习 3

    import java.util.Scanner; public class Third { /*计算字符串中子串出现的次数 (5 分数)*/ public static void main(Stri ...

  8. Vue.js教程

    https://aotu.io/notes/2016/10/13/vue2/?o2src=juejin&o2layout=compat

  9. mysql添加为成绩表添加名次

    对于一种这样的表,为score添加名次

  10. webpack + vue最佳实践

    webpack + vue最佳实践 我的原文地址:http://www.xiaoniuzai.cn/2016/10/04/webpack%20+%20vue%E6%9C%80%E4%BD%B3%E5% ...