写在前面
文中很多专有名词在初次使用时我会标注一下中文,但是在后面使用过程中我还是会使用英文来表示,因为所有的标准的出处都是英文,中文的翻译并没有标准,用英文会减少歧义通俗易懂。
背景
分布式的事物、注册中心都是在上云之路上绕不开的坑。说到注册中心与鉴权,OAuth2模型又首当其冲,Spring Cloud本身对于OAuth2的支持很不错,这一块叫做Spring Cloud Security,默认就是使用OAuth2的模型来支持。本文把自己做架构过程中积累的技术以及插图分享出来,简要介绍OAuth2的架构原理。
概述
介绍OAuth2模型
本文主要描述OAuth2的模型以及基本运行原理,内容略略抽象,尽最大限度用图来描述,结合后续的基于Spring Cloud的代码和架构图理解会更为便捷。
正文
OAuth2
我们经常所说的OAuth2,顾名思义,就是OAuth模型的第二版。此版本允许第三方应用获取资源访问权限,并且在很多大型互联网企业中进行使用。
基础知识
Roles 角色
OAuth2定义的4个角色
- Resource Owner :资源拥有者,电脑前的你。
- Resource Server :资源服务器,托管受保护的数据的服务器。
- Client :客户端,请求访问资源服务器的应用。可以是网站,可以是javascript脚本,也可以是任何app等。
- Authorization Server :授权服务器,向Client(客户端)发放token(令牌)的服务器,token用于Client请求Resource Server。