
获得徽章 5
- OAuth 2 设计理念分析与实践之五——Abstract Protocol Flow
+--------+ +---------------+
| |--(A)- Authorization Request ->| Resource |
| | | Owner |
| |<-(B)-- Authorization Grant ---| |
| | +---------------+
| |
| | +---------------+
| |--(C)-- Authorization Grant -->| Authorization |
| Client | | Server |
| |<-(D)----- Access Token -------| |
| | +---------------+
| |
| | +---------------+
| |--(E)----- Access Token ------>| Resource |
| | | Server |
| |<-(F)--- Protected Resource ---| |
+--------+ +---------------+展开310 - OAuth 2 设计理念分析与实践之一—— Authorization 与 OAuth 2
授权概念来自于物理世界也广泛存在于信息世界,授权来自于权限,关乎隐私与安全。
举三个例子:
对于写字楼或者小区的访客管理,访客在得到业主的授权后,经过岗亭保安验证就可以放行;
本地生活应用当前使用最广泛的快递上门取件场景中,快递员可以通过获取取件码关联上寄件人与寄件物品;
APP 投放广告拉新下载的小游戏,在得到用户的同意后,不需要账号密码就可以使用原 APP 的用户信息直接登录到游戏中。
这三个例子覆盖了纯线下、线上线下结合、纯线上的三种场景,当然随着数字化的深入纯线下的也在向线上迁移。他们都涉及到了权限的转移与使用,也就是授权(Authorization),比如进入写字楼的权限、寄件的权限、登录 APP 的权限等。由此可见,授权有着大量应用场景,已然成为信息化基础设施的重要组成部分,OAuth 应运而生。
我们现在所熟知的 OAuth 2 就是一种授权协议,由 IETF OAuth 工作组制定的行业标准。实际上,OAuth 2 指的是 OAuth 2.0,2.0 版本在 2012 年发布的,通过多种许可类型解决了 1.0 大一统设计却无法满足各种应用场景的问题,是事实上的行业标准。文档内容可参见:datatracker.ietf.org 和
oauth.net。
OAuth 2 提供了 4 种许可类型:授权码许可(Authorization Code)、资源拥有者凭据许可(Resource Owner Password Credentials)、隐式许可(Implicit)和客户端凭据许可(Client Credentials)。借助令牌机制保证只有获得令牌的访问拥有对应的权限,并有效减少了网络受攻击面,也是一种系统安全管控手段。
事实上,应用最广泛的还是授权码许可类型,在 OAuth 2.1 设计中,Password 与 Implicit 类型都将被移除掉。后面也将重点介绍授权码类型的原理与使用。展开12