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

发布于 2022-09-06 02:00:37 字数 566 浏览 17 评论 0

最近在研究restful api安全方面的相关知识, 于是就接触到了oauth2.0, jwt, apikey+secret+sign 等认证方案;

但实在搞不明白这三者怎么就都是做认证的?

  1. 首先 jwt 和 apikey 这两种方案的话, 都是带有对参数的完整性校验, 防replay 防篡改等数据传输的安全措施的, 而oauth最终只是使用access_token来向服务端证明客户端有访问该api的权限, 和之前几个完全没有什么可比性, 为什么一说到认证授权, 就直接把这几个摆在一起对比呢?
  2. 比如现在有三个角色:

    这只是公司其中的一个系统A:
        前端: H5/APP 
        后端: Server (api接口) 
        
    数据中心: datacenter (api接口)
    
    首先对于A系统的后端来说, 要想访问数据中心, 肯定是需要经过授权的, 用什么方案? oauth?
    A系统的前端访问A系统后端如何保证数据安全, 以及接口授权, 还有用户的登录状态token和oauth的access_token也分不清楚?
    

    完全懵逼中, 求指点??

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

音盲 2022-09-13 02:00:37

首先分清楚一点。

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

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

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

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

简单气质女生网名 2022-09-13 02:00:37

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

冷心人i 2022-09-13 02:00:37

个人认为Ouath只是针对对外访问,前后端交互,和数据中心交互,应该是走内部的,不会对外开放,如果还是不放心,可以自己去做对称加密,至于Ouath协议可以对外接口那里去用,让第三方用户去你这里获得授权,确认身份以后再给他数据等。

天涯离梦残月幽梦 2022-09-13 02:00:37

oauth授权是针对第三方提供的解决方案,类似微信公众号的网页授权,正常的内部调用接口是不会对外开放的,暂时还不太了解你说的JWT,apikey+secret+sign主要是为了验证数据的合法性,防止篡改

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文