Fork me on GitHub
Bobby's Blog Hello World

OAuth2.0 学习笔记

2018-11-08
Bobby

本篇是对学习OAuth2.0 时一些重点概念和思路的整理,详细内容可以查看文末的参考资料。

OAuth2.0 是什么?

OAuth 2.0 是一个行业标准的授权协议。取代了之前的OAuth协议。OAuth 2.0 简化了客户端开发,同时为web应用程序、桌面应用程序、移动设备,以及家居设备提供特定的授权流程。

原文:OAuth 2.0 is the industry-standard protocol for authorization. OAuth 2.0 supersedes the work done on the original OAuth protocol created in 2006. OAuth 2.0 focuses on client developer simplicity while providing specific authorization flows for web applications, desktop applications, mobile phones, and living room devices.

它可以使第三方应用程序或客户端获得对HTTP服务上(例如 Google,GitHub)用户帐户信息的有限访问权限。OAuth 2 通过将用户身份验证委派给托管用户帐户的服务以及授权客户端访问用户帐户进行工作。比如我们现在最常见的使用微信或QQ账号登陆其他第三方系统,在微信和QQ里面也可以对授权系统进行维护。

OAuth 定义的四个角色

  • 资源所有者(Resource Owner)
  • 资源服务器(Resource Server)
  • 客户端(Client)
  • 授权服务器(Authorization Server)

OAuth 2.0 抽象授权流程

oauth-flow

授权类型 (Authorization Grant Type)

授权码模式(Authorization Code)

oauth-flow
最接近抽象流程,多用于我们使用授权账号登陆第三方网站的情形。

隐含/简化模式 (Implicit)

oauth-flow
相比较上面Authorization Code模式,省略了请求获取Authorization Code的过程。多用于移动App和Web App。

密码凭证模式 (Resource Owner Password Credentials)

oauth-flow
这种模式用户要向客户端提供自己的用户名和密码。适用于用户与客户端具有信任关系的情况,例如设备操作系统或同一组织的内部及外部应用。

客户端凭证模式 (Client Credentials)

oauth-flow
客户端直接以自己的名义向服务端请求认证。


[参考]
官网: https://oauth.net/2/
OAuth 2.0 Framework - RFC 6749
OAuth2 深入介绍: https://www.zybuluo.com/wddpct/note/1130423
阮一峰的网络日志 - 理解OAuth 2.0: http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html


下一篇 OpenID是什么?

Comments

Content