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

Oauth 2.0 如何防止刷新被盗的访问令牌,oauth-2.0,jwt,token,access-token,refresh-token,Oauth 2.0,Jwt,Token,Access Token,Refresh Token,场景是:您有一个在较长时间段内有效的刷新令牌和一个在较短时间段内有效的访问令牌 设置:有客户端、应用服务器和身份验证服务器 客户端存储访问令牌 应用服务器存储刷新令牌 身份验证服务器分发刷新+访问令牌 优点之一是被盗访问令牌只能在其有效的时间内使用 假设一个黑客窃取了有效期为30分钟的访问令牌。当黑客在30分钟后使用有效但过期的被盗访问令牌发出请求时,应用服务器将使用刷新令牌刷新该请求,从而黑客获得一个新的有效且未过期的访问令牌 如何防止这种情况发生?应用程序服务器不应具有刷新令牌 在OAu

场景是:您有一个在较长时间段内有效的刷新令牌和一个在较短时间段内有效的访问令牌

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

  • 客户端存储访问令牌
  • 应用服务器存储刷新令牌
  • 身份验证服务器分发刷新+访问令牌
优点之一是被盗访问令牌只能在其有效的时间内使用

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


如何防止这种情况发生?

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

在OAuth2.0中,
客户端
应该存储刷新令牌


要使用刷新令牌创建新的访问令牌,
客户端应将刷新令牌(连同客户端id和密码)提交给授权服务器。

除非

  • 原始用户重置密码,身份验证服务器删除所有以前的刷新令牌

  • 将刷新令牌的有效时间缩短到接近accesstoken的有效时间


  • 在这两种情况下,我们都依赖于使刷新令牌无效

    嘿,亚瑟。如果您找到了这个问题的最佳解决方案,请告诉我。我对这一行以及如何防止这一点感到非常困惑?:--><代码>假设黑客窃取了有效期为30分钟的访问令牌。当黑客在30分钟后使用有效但过期的被盗访问令牌发出请求时,应用程序服务器将使用刷新令牌刷新该令牌,从而黑客获得一个新的有效且未过期的访问令牌。