OAuth 2.0 授权机制,一点儿都不简单!

在初次使用一个 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的知识体系图

说到这,给你介绍个高手——京东资深架构师王新栋

自 2014 年加入京东至今,他一直在参与开放平台的架构设计与开发工作,在开放网关和开放授权上有丰富的实战经历。他把自己对 OAuth 2.0 的理解,结合开放平台上的多年工作经验,都汇聚在专栏《OAuth 2.0 实战课》中。

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

OAuth 2.0 授权机制,一点儿都不简单!
👆扫码免费试读
结算时,输入优惠口令「oauthgogo」
再减 5 元,到手仅 ¥50
仅限「前 100 人」有效

王新栋是谁?

上面说过他是京东资深架构师,除此之外,他还是腾讯云 TVP,从事互联网研发、架构已经 10 多年了,著有《架构修炼之道》一书。

作为首席架构师,王新栋和团队一起构建的商家开放平台架构,成功经历了 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 的痕迹。这样,不用抓包分析,你也能洞悉其背后的原理,为今后快速熟知互联网的类似场景打下坚实基础。

OAuth 2.0 授权机制,一点儿都不简单!

订阅福利

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

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

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

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

OAuth 2.0 授权机制,一点儿都不简单!
👆扫码免费试读

温馨提示:

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

👇点击「原文链接」,

输入优惠口令「oauthgogo」,

最低价 ¥50 入手,限前 100 人

原文出处:极客时间

原文链接:https://time.geekbang.org/column/intro/100053901?code=TO2UzHIcqgX0iI49zGoymW0TsocjX7atIu0Wtb9Qzgk%3D

本文观点不代表Dotnet9立场,转载请联系原作者。

发表评论

登录后才能评论