如何防止刷新被盗的访问令牌

Art*_*hur 5 token access-token oauth-2.0 jwt refresh-token

场景是:您拥有有效期较长的刷新令牌和有效期较短的访问令牌。

设置:有客户端、应用程序服务器和身份验证服务器。

  • 客户端存储访问令牌。
  • 应用服务器存储刷新令牌。
  • 身份验证服务器分发刷新 + 访问令牌。

优点之一是被盗的访问令牌只能在其有效时间内使用。

假设黑客窃取了有效期为 30 分钟的访问令牌。当黑客在 30 分钟后使用有效但已过期的被盗访问令牌进行请求时,应用服务器将使用刷新令牌对其进行刷新,从而黑客获得一个新的有效且未过期的访问令牌。

如何防止这种情况发生?

ian*_*man 1

应用程序服务器不应具有刷新令牌。

在 OAuth2.0 中client应该存储刷新令牌。

要使用刷新令牌创建新的访问令牌,应将client刷新令牌(以及客户端 ID 和密钥)提供给授权服务器。