可以在授权码流OAuth中拦截访问令牌吗?

时间:2017-10-06 14:34:54

标签: oauth oauth-2.0

我一直在阅读不同的OAuth流程,并且对授权代码流程感到困惑。据说授权代码流更安全,因为即使授权代码在转移时被劫持,对黑客也没用,因为黑客需要客户端ID和客户端秘密来获取访问令牌 - 但是如果客户端在收到授权码后请求访问令牌,黑客攻击传输并获取访问令牌? 我不知道,但看起来授权代码只是增加了额外的安全层,但实际上并没有完全保护访问令牌。 我对吗?请纠正我。

2 个答案:

答案 0 :(得分:0)

授权代码流的典型用例是令牌请求(即交换访问令牌的授权代码的请求)是通过受TLS保护的反向通道完成的,这意味着攻击者无法访问它 - 除非他& #39;能够破解SSL,在这种情况下存在更大的问题。

但是对于前端通道用例,即浏览器内的Javascript应用程序或单页应用程序,你是对的:黑客几乎可以像重定向那样轻松拦截令牌请求。这就是为什么该用例不能使用机密客户端,因为这个秘密太容易暴露。

答案 1 :(得分:0)

当您有一个前端客户端,该客户端也可以访问可以安全地与auth服务器通信的后端时,授权代码流才有意义。

流程如下:

  • 前端客户端将用户重定向到身份验证服务器的网址
  • 身份验证服务器(登录后),将用户重定向回前端客户端redirectUri
  • 前端客户端从该URL中提取代码,并将其传递到后端。
  • 然后,后端通过直接与auth服务器进行交互,将此代码交换为访问令牌。

身份验证服务器通信的后端是黑客无法(轻松地)拦截的东西。