Oauth 2.0 刷新令牌是否过期?如果过期,何时过期?

Oauth 2.0 刷新令牌是否过期?如果过期,何时过期?,oauth-2.0,podio,Oauth 2.0,Podio,我读过这本书。我特别考虑了以下关于使用刷新\u令牌的声明: 此请求返回与上面相同的数据,您可以继续 反复这样做,以保持应用程序的身份验证 无需要求用户重新验证 这是否意味着refresh\u令牌将无限期有效或过期: 签发后X天;或 上次使用it获取新的access\u令牌后X天 编辑:请看这篇文章,它提出了相同的问题,但似乎没有给出关于Oauth2.0协议的PODIO实现的任何结论性答案。您的问题的答案: 这是否意味着refresh_令牌将无限期地有效 它过期了吗 …可以从OAuth 2.0规

我读过这本书。我特别考虑了以下关于使用
刷新\u令牌的声明:

此请求返回与上面相同的数据,您可以继续 反复这样做,以保持应用程序的身份验证 无需要求用户重新验证

这是否意味着
refresh\u令牌将无限期有效或过期:

  • 签发后X天;或
  • 上次使用it获取新的
    access\u令牌后X天


  • 编辑:请看这篇文章,它提出了相同的问题,但似乎没有给出关于Oauth2.0协议的PODIO实现的任何结论性答案。

    您的问题的答案:

    这是否意味着refresh_令牌将无限期地有效 它过期了吗

    …可以从OAuth 2.0规范的和中得出结论

    第1.5节刷新令牌状态介绍:

    刷新令牌由授权服务器颁发给客户端 和用于在当前访问失败时获取新的访问令牌 令牌变为无效或过期,或获取额外访问权限 范围相同或更窄的令牌(访问令牌可能具有 较短的生存期和权限比 资源所有者)

    第10.4节刷新令牌状态的安全注意事项:

    授权服务器必须验证刷新之间的绑定 只要可以使用客户端标识,就可以使用令牌和客户端标识 认证的。如果无法进行客户端身份验证,则 授权服务器应该部署其他方法来检测刷新令牌 虐待

    例如,授权服务器可以使用刷新令牌
    每次访问都会发出新刷新令牌的循环
    令牌刷新响应。上一个刷新令牌无效,但 由授权服务器保留。如果刷新令牌是
    受到威胁,随后被攻击者和攻击者使用
    合法客户端,其中一个将显示无效刷新
    令牌,它将通知授权服务器违规


    可以得出结论,如果授权\u服务器能够验证
    刷新\u令牌
    与向其发出该令牌的客户端之间的绑定,则
    刷新\u令牌
    可用于获取多个
    访问\u令牌
    ,并且永不过期。否则,授权服务器将使旧的
    刷新\u令牌无效,并在每次访问令牌刷新响应时生成新的
    刷新\u令牌。

    刷新令牌将在创建后X天(或小时)过期。根据您的安全要求,此过期时间为1个月或1小时

    您必须在做出决策时注意功能和安全性等方面

    • 如果您决定优先考虑安全性,短时间的过期可能会使您的应用程序对用户产生影响
    • 如果您决定优先考虑功能,您的应用程序可能更容易受到攻击
    TL;博士 刷新令牌最终将过期或失效,您应该做好准备

    两种情况:

  • 面向用户的服务(例如:授权授予流)-也许可以忽略该问题,因为人们善于关闭和再次打开该服务,也可以刷新页面:-)

  • 服务器端长时间运行服务(例如:客户端凭据流)-当访问或刷新令牌都不起作用时,您应该做好准备,重新启动身份验证

  • 现实生活 刷新令牌可能有到期时间,也可能没有到期时间,这取决于您的提供商。刷新令牌从不过期,只要它们最近使用过,在数月或数小时内都不会过期。依赖于您将使用刷新的访问令牌接收新的刷新令牌这一事实可能很棘手

    超时不是令牌失效的唯一方式。考虑以下描述的场景:

    虽然刷新令牌通常是长期存在的,但授权服务器 可以使它们失效。刷新令牌可能不再可用的一些原因 有效期包括:

    • 授权服务器已吊销刷新令牌
    • 用户已撤销其授权许可
    • 刷新令牌已过期
    • 资源的身份验证策略已更改(例如。, 最初资源只使用用户名和密码,但现在它 (需要MFA)
    此外,令牌(访问、刷新)可以存储在身份验证提供程序服务的非持久性存储中,因此,如果服务重新启动(崩溃、更新),您的令牌可能会丢失

    结论
    如果您正在编写需要可靠的长时间运行的服务,请不要依赖于能够通过刷新令牌永久刷新授权的身份验证。

    @Sureaj:我想答案最终取决于Podio对oath2.0协议的实现。该实现不需要与
    刷新\u令牌
    的使用相关的身份验证,因此我看不出它们如何验证
    刷新\u令牌
    与客户端之间的绑定。它也不应用旋转原则,因为在接收新的
    访问\u令牌时,
    刷新\u令牌
    保持不变。看到这个帖子了吗?我不认为它对我的问题给出了任何结论性的答案:@rabbitco,是的,它完全取决于授权服务器的实现。我的回答是关于标准实施RFC-6749。在您的情况下,正如Andreas Garnæ的评论,问题在于数据库中不存在刷新令牌。看起来最后有点问题。从上面我没有得出相同的结论。我看到很多OAuth实现都有过期的刷新令牌和