你将获得
- 4 大授权许可类型原理详解
- 安全快速接入 OAuth 2.0 的方法
- 实现一个 OIDC 用户身份认证协议
- 基于 OAuth 2.0/JWT 的微服务架构参考
课程介绍
近几年,越来越多的 Web 网站、移动 App,都在支持使用微信、微博等账号登录的方案,来避免繁琐的注册流程。比如说,你第一次使用极客时间,就可以选择使用微信账号来登录。
这其实就是,你(用户)在授权极客时间(第三方软件)代表你使用在微信平台(授权服务)的个人信息(受保护资源)来登录。这背后用到的知识就是 OAuth 2.0。
从 2011 年发布 OAuth 2.0 草案到现在,OAuth 2.0 已经不再是一门新技术了,网上也已经有很多关于 OAuth 的资料了。但是,这并不意味着 OAuth 2.0 的学习很简单,只要找几篇文章看看就“万事大吉”了。
你在学习、实践 OAuth 2.0 的过程中,是不是也被下面这些问题困扰着:
- 在授权码许可类型中,为什么一定要有授权码?为什么要有两次重定向?
- 在 Web 应用中到底应该怎么使用授权码流程,移动 App 中还能使用授权码流程吗?
- 在开发应用时,如何解决授权码被拦截的安全问题?
为此,我们特意邀请了王新栋,他会结合自己在开放平台上的工作经验以及对 OAuth 2.0 的理解,一次性地给你说透授权这件事儿,力求给你带来最贴近本质的 OAuth 2.0 知识,让你能够用对、用好这个协议。
学习这门课程需要什么基础?
只要你有一定的工作经验,能够理解基本的 Web 通信协议,就能理解这门课程的内容。
这门课程在GitHub上提供了一套用 Java 语言来实现的简单、可落地的代码,代码中除了基本的 Servlet 技术外,没有引入任何其它的第三方内容,所以你只要能够理解 Request 和 Response,就没问题。
课程模块设计
本课程分为两大模块。
第一部分是基础篇,是你必须要掌握的 OAuth 2.0 的基础知识:用一个小明使用第三方“小兔打单软件”来打印自己在京东店铺的订单数据的例子,来细致讲解授权码许可类型的流程,以及资源拥有者凭据许可、隐式许可、客户端凭据许可的原理,以及如何选择适合自己实际场景的授权类型。
学完这个模块的内容以后,你就可以从容地把 OAuth 2.0 用到实际的工作场景了。
第二部分进阶篇的内容,侧重讲解 OAuth 2.0 “更高级” 的一些用法,让你知道如何更安全地用、扩展地用 OAuth 2.0。
这部分内容会包括如何在移动 App 中使用 OAuth 2.0,因使用不当而导致的 OAuth 2.0 安全漏洞有哪些,以及如何利用 OAuth 2.0 实现一个 OpenID Connect 用户身份认证协议。此外,我们还邀请了微服务技术领域的专家杨波老师,分享了一个基于 OAuth 2.0/JWT 的微服务参考架构案例。