【发布时间】:2019-10-21 18:29:43
【问题描述】:
我看到大多数人说当我们使用刷新令牌交换新的访问令牌时,身份验证服务器会发出一个新的刷新令牌并使之前的刷新令牌无效。参考 OAuth Refresh Token Best Practice
但是来自 OAuth 网站 https://www.oauth.com/oauth2-servers/access-tokens/refreshing-access-tokens/
它说身份验证服务器可以“可选地发出一个新的新令牌作为响应,或者如果我们不包含新的刷新令牌,客户端假定当前的刷新令牌将继续有效”
因此,OAuth2 标准似乎可以接受这两个选项(保留或更新刷新令牌)。
我的问题是:
1) 这两个选项是否同样安全?
2) 如果认证服务器返回一个新的刷新令牌,但客户端接收失败(例如网络错误),客户端无法使用已经失效的现有刷新令牌重新获得访问令牌。对吗?
3) 如果刷新令牌已经泄露给其他人,攻击者和受害者客户端都可以使用它。如果auth server采用renew方式,那么只有第一个使用refresh token的人才能重新获得access token。因此,如果受害者发现刷新令牌不再有效,它可能会认为刷新令牌已被泄露。这就是“更新方式”的原因吗?
【问题讨论】: