为了账号安全,请及时绑定邮箱和手机立即绑定

OAuth授权 和 Api Key, JWT三种的区别

OAuth授权 和 Api Key, JWT三种的区别

PHP
小唯快跑啊 2019-03-08 01:52:25
最近在研究restful api安全方面的相关知识, 于是就接触到了oauth2.0, jwt, apikey+secret+sign 等认证方案; 但实在搞不明白这三者怎么就都是做认证的? 首先 jwt 和 apikey 这两种方案的话, 都是带有对参数的完整性校验, 防replay 防篡改等数据传输的安全措施的, 而oauth最终只是使用access_token来向服务端证明客户端有访问该api的权限, 和之前几个完全没有什么可比性, 为什么一说到认证授权, 就直接把这几个摆在一起对比呢? 比如现在有三个角色: 这只是公司其中的一个系统A: 前端: H5/APP 后端: Server (api接口) 数据中心: datacenter (api接口) 首先对于A系统的后端来说, 要想访问数据中心, 肯定是需要经过授权的, 用什么方案? oauth? A系统的前端访问A系统后端如何保证数据安全, 以及接口授权, 还有用户的登录状态token和oauth的access_token也分不清楚? 完全懵逼中, 求指点??
查看完整描述

4 回答

?
烙印99

TA贡献1829条经验 获得超13个赞

首先分清楚一点。

JWT是一个“认证规范”,而OAuth是一个“开放标准网络协议”,并不是同一个类型的东西。

举个例子,你在服务器上存放了一些“资源”,JWT提供了一种用于发布接入令牌(Access Token),并对发布的签名接入令牌进行验证的方法,令牌(Token)本身包含了一系列声明,服务器可以根据这些声明限制用户对资源的访问。而你可以用这个token去访问你要访问的资源,而不需要每次都进行帐号密码认证。

而OAuth提供了一套详细的授权机制,你可以通过公开的或私有的设置,授权第三方应用访问特定资源。

上面的“你”指代用户。简单来说,JWT是用来证明你有权限访问特定资源,并提供一个安全方便的方式访问资源。而OAuth是你要授权第三方访问你的资源。

查看完整回答
反对 回复 2019-03-18
?
慕容森

TA贡献1853条经验 获得超18个赞

我之前也在了解相关知识, 楼主这么一说..... 本来有点了解, 现在基本上完全不懂这几个概念的应用场景了, 貌似能通用, 但又貌似不行 一起等待大神解答

查看完整回答
反对 回复 2019-03-18
  • 4 回答
  • 0 关注
  • 2523 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信