1 什么是开放平台(Open Platform)
在软件行业和 络中,开放平台指软件系统通过公开其API使外部程序可增加该软件系统的功能或使用该软件系统的资源,而无需更改该软件系统的源码。
在互联 时代,把 站的服务封装成一系列计算机易识别的数据接口开放出去,供第三方开发者使用,这种行为就叫做Open API,提供开放API的平台本身就被称为开放平台。
很多应用都提供微信登录方式,减少了用户注册的繁琐。- 第一次使用牛客 时,相信很多人是直接使用三方帐 (比如QQ、微信、微博)登录
其实该场景使用的就是授权码许可(Authorization Code)类型。它是 OAuth 2.0 中最经典、最完备、最安全、应用最广泛的许可类型。
3 为什么用 OAuth 2.0/h2>
理解完上面两种场景,可以想象关于授权,最容易的方案就是提供令牌。你要去华为南研所面试,那接待大厅小姐姐就给你张通行证;xx要获取你的订单信息,你就把你的用户名密码给它。但稍微有些安全意识,我们都不会这样做。
因为你有了临时通行证,那以后都能自由出入园区了。所以,华为有一套完善的机制,通过给你一张临时的通行证,达到在保证安全情况下,还能让你进入园区。这就是 OAuth 2.0。它通过给xx软件一个访问令牌,而不是让xx拿着你的用户名密码获取订单。
OAuth 2.0 授权协议,就是保证三方软件只有在获得授权后,才可进一步访问授权者的数据。因此也常被称为一种安全协议。
4 OAuth 2.0 的执行流程
我:“我已经能够看到我的文章了,现在就开始一键排版了。”
xx是拿换取的。那xx又是如何拿到的我授权后才产生授权码,后续流程,都是在我对xx软件授权发生以后才产生的。所以究其本质流程:
生成授权码 => 生成访问令牌 => 使用访问令牌
所以 OAuth 2.0 授权核心就是颁发访问令牌、使用访问令牌。
5 总结
OAuth 2.0 的核心是授权许可,即令牌机制。互联 中受保护资源,几乎都以 Web API 的形式提供访问,比如xx软件要获取我的文章数据,三方软件通过 OAuth 2.0 取得访问权限后,我也便把这些权限委托给了xx这种三方软件,所以 OAuth 2.0 是一种委托协议。
也正因为这种三方软件,每次都是用访问令牌而非用户名密码来请求用户数据,也大大减少数据安全风险。
参考
- 《OAuth 2 in Action》
- OAuth 2 协议规范
- OAuth 2.0是要通过什么方式解决什么问题
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!