OAuth 2.0 技术选型难题解析(附一整套代码)| 极客时间

2020 年 6 月 30 日 InfoQ

在初次使用一个 App 时,我们大多都会授权第三方账号登录,比如微信。这样,App 会直接拿到微信授权的信息,省去了用户二次上传头像、输入用户名等一系列繁复的注册流程。而这整个授权过程都可以归到一个词上,那就是 OAuth 2.0。

作为一种安全、授权协议,甚至可以说是一种委托协议,OAuth 2.0 已被广泛应用在互联网中,保护着成千上万个 Web API。它并不是一门新技术,从 07 年 OAuth 1.0 面世,到 11 年发布 OAuth 2.0 草案,市面上已经有不少相关资料了。

所以,在初次接触 OAuth 2.0 时,我觉得看两篇文章就够了。但它立刻给我了一个“下马威”,让我在授权码流程的使用上踌躇不前。

相信不止是我,很多使用 OAuth 2.0 的人都有类似的困惑:

1、授权码、令牌这些流程,实在是把人绕晕了,OAuth 到底是如何保证用户信息安全的呢?

2、经常在网上看到 OAuth 相关的安全问题,那在开发过程中,具体需要注意什么呢?可别因为技术问题,把用户信息给泄露了。

那会儿,我也在网上找过不少资料,但内容实在不成体系,走了不少弯路。后来,在和 OAuth 2.0 打了几年交道之后,我试着整理自己这些年掌握的相关技术和实战经验时,才真真切切地发现,OAuth 2.0 是讲授权没错,但要用对、用好这个协议,绝不是零散的几篇文章就能讲清楚的。

为此,我为你总结了一张 OAuth 2.0 知识结构图,只有对每个知识点仔细梳理并深入理解,才能解决工作中的实际问题。

👆 我总结的 OAuth 2.0 的知识体系图

所以,我和极客时间合作了专栏《OAuth 2.0 实战课》,想把我对 OAuth 2.0 的理解,结合自己在开放平台上的多年工作经验,一次性地给你讲透。同时,我还查阅了不少资料,包括 OAuth 2 规范、OpenID Connect explained 等,力求给你带来最贴近本质的 OAuth 2.0 知识讲解。

在专栏中,我深入讲解了 4 大授权许可类型原理,并介绍了 OAuth 2.0 一些更高级的用法,比如:OAuth 2.0 在移动 App 中的应用,安全快速接入 OAuth 2.0 的方法,及如何用它实现一个 OpenID Connect 用户身份认证协议。此外,还会为你分享基于 OAuth 2.0/JWT 的微服务架构参考,让你学以致用,彻底拿下 OAuth 2.0。

👆扫码免费试读

结算时,输入优惠口令「oauthgogo」

再减 5 元,到手仅 ¥50

仅限「前 200 人」有效

我是谁?

我是王新栋,京东资深架构师,腾讯云 TVP。我从事互联网研发、架构十多年了,从 2014 年加入京东至今,一直参与开放平台的架构设计与开发工作,在开放网关和开放授权上有丰富的实战经历,著有《架构修炼之道》一书。

作为首席架构师,我和团队一起构建的商家开放平台架构,成功经历了 6 次“ 618” 和“11.11”大促流量洪峰和复杂环境的考验。同时,由我主导设计的商家开放平台,其中的 OAuth 2.0 授权应用架构,成功支持了喜马拉雅、酷狗音乐、腾讯视频和京东 PLUS 的联合会员业务。目前,我正致力于开发者效率提升的解决方案优化与实现。

我是如何讲解 OAuth 2.0 的?

我将课程分为「基础篇」和「进阶篇」两大模块,每个模块都有大量实践内容,让你彻底搞懂并且用好 OAuth 2.0。

基础篇,OAuth 2.0 必备基础知识,介绍授权码许可类型的流程,并在此基础上,讲解资源拥有者凭据许可、隐式许可、客户端凭据许可,这三种常见许可类型的原理,及如何根据实际场景,选择适合的授权类型。

为了方便你理解,我会用小明用第三方“小兔打单软件”来打印自己在京东店铺的订单数据的例子,来贯穿基础篇的始终。这样,在你学完基础篇后,就可以从容地在实际工作中使用 OAuth 2.0 了。

进阶篇,侧重讲解 OAuth 2.0 “更高级” 的用法,让你了解如何更安全、可扩展地使用 OAuth 2.0,包括:OAuth 2.0 在移动 App 中的应用,因使用不当而导致的 OAuth 2.0 安全漏洞有哪些,及如何使用 OAuth 2.0 实现一个 OpenID Connect 用户身份认证协议。另外,还会分享一个基于 OAuth 2.0/JWT 的微服务架构参考案例。

最后,为了让你学以致用,我还准备了一份简单、可落地的代码,不仅把整个 OAuth 2.0 的组件都跑通了,还包含了一个 OIDC 协议的具体实现。当然,我在代码里面还预留了一些 TODO 的地方,你可以结合上下文来自行实践,是一项开源的工程。

我有足够的把握,跟我学完这门课,你可以练就授权领域练的一双“火眼金睛”,发现所有使用过 OAuth 2.0 的痕迹。这样,不用抓包分析,你也能够洞悉它背后的原理,为今后快速熟知互联网的类似场景打下坚实基础。

订阅福利


早鸟 + 口令「oauthgogo」到手仅 ¥50

原价 ¥68,仅限「前 200 人」有效。


订阅后生成海报发给好友,

每成功邀请 1 位,得 ¥18 返现。


👆扫码免费试读

温馨提示:

订阅后可通过「极客时间 App」或「极客时间小程序」我的 - 已购,学习已订阅的专栏。


👇点击「阅读原文」

输入优惠口令「oauthgogo」,

最低价 ¥50 入手,仅限前 200 人。

登录查看更多
0

相关内容

TensorFlowLite:端侧机器学习框架
专知会员服务
32+阅读 · 2020年8月27日
【2020新书】高级Python编程,620页pdf
专知会员服务
235+阅读 · 2020年7月31日
干净的数据:数据清洗入门与实践,204页pdf
专知会员服务
161+阅读 · 2020年5月14日
【干货】大数据入门指南:Hadoop、Hive、Spark、 Storm等
专知会员服务
95+阅读 · 2019年12月4日
【书籍】深度学习框架:PyTorch入门与实践(附代码)
专知会员服务
163+阅读 · 2019年10月28日
计算机视觉最佳实践、代码示例和相关文档
专知会员服务
17+阅读 · 2019年10月9日
写给初次接触支付的产品经理们
产品100干货速递
5+阅读 · 2019年6月25日
读扩散?写扩散?推拉架构一文搞定!
架构师之路
16+阅读 · 2019年2月1日
如何快速入门TensorFlow ?丨极客时间
InfoQ
4+阅读 · 2019年1月8日
零基础如何快速搭建一个推荐系统?
StuQ
5+阅读 · 2018年2月26日
【年终重磅福利来啦】1024T大数据编程资料免费领(含源码)
大数据和云计算技术
4+阅读 · 2017年12月29日
Single-frame Regularization for Temporally Stable CNNs
The Evolved Transformer
Arxiv
5+阅读 · 2019年1月30日
Arxiv
3+阅读 · 2018年5月28日
VIP会员
相关VIP内容
TensorFlowLite:端侧机器学习框架
专知会员服务
32+阅读 · 2020年8月27日
【2020新书】高级Python编程,620页pdf
专知会员服务
235+阅读 · 2020年7月31日
干净的数据:数据清洗入门与实践,204页pdf
专知会员服务
161+阅读 · 2020年5月14日
【干货】大数据入门指南:Hadoop、Hive、Spark、 Storm等
专知会员服务
95+阅读 · 2019年12月4日
【书籍】深度学习框架:PyTorch入门与实践(附代码)
专知会员服务
163+阅读 · 2019年10月28日
计算机视觉最佳实践、代码示例和相关文档
专知会员服务
17+阅读 · 2019年10月9日
相关资讯
写给初次接触支付的产品经理们
产品100干货速递
5+阅读 · 2019年6月25日
读扩散?写扩散?推拉架构一文搞定!
架构师之路
16+阅读 · 2019年2月1日
如何快速入门TensorFlow ?丨极客时间
InfoQ
4+阅读 · 2019年1月8日
零基础如何快速搭建一个推荐系统?
StuQ
5+阅读 · 2018年2月26日
【年终重磅福利来啦】1024T大数据编程资料免费领(含源码)
大数据和云计算技术
4+阅读 · 2017年12月29日
Top
微信扫码咨询专知VIP会员