当前位置: 首页 > 知识库问答 >
问题:

OAuth2刷新令牌作用域

易研
2023-03-14

我正在实现一个支持刷新令牌的OAuth2服务器,但是,有一些东西我不能完全理解。

当用户通过refresh_tokengrant_type请求新的访问令牌,并且他/她请求的范围小于原始访问令牌的范围(5个范围中的3个)时。刷新令牌应该具有原始作用域还是刷新令牌应该具有请求的新作用域?

>

  • 如果刷新令牌请求了新的作用域,这是否意味着如果它们继续请求较小的作用域,它们最终将耗尽作用域?

    刷新令牌是否应保留原始作用域?这意味着返回的访问令牌对于刷新令牌中存储的内容将具有不同的作用域,并且下一个获取新访问令牌的请求可能导致比当前访问令牌更多的作用域。

    请问谁能在这个问题上给我一些启发吗?

    我读过RFC文档,有一个观点说

    如果发出新的刷新令牌,则刷新令牌范围必须与请求中客户端包含的刷新令牌的范围相同。

  • 共有1个答案

    谷飞星
    2023-03-14

    对于刷新令牌授予:

    • 基本行为是在响应中只接收一个新的访问令牌
    • 然后多次重用原始刷新令牌。

    某些授权服务器支持刷新令牌循环,还可能:

      null

    至少理论上是这样的,尽管您需要对特定的授权服务器进行测试。来自微软、AWS等厂商的支持差别很大。

     类似资料:
    • 我对oauth2中的刷新令牌有点困惑。如它所说的访问令牌限制了黑客可以使用用户凭证的1小时的时间窗口,刷新令牌是万岁令牌,可以用来重新创建访问令牌。 我很困惑,如果有人从cookie中窃取了访问令牌,他也可以窃取刷新令牌,并可以使用刷新令牌创建新的访问令牌,因为我在JQuery中有ajax请求(客户端)

    • 请求你分享你的想法。 提前道谢。

    • 我理解客户机应用程序使用refresh_token(连同它的凭据)为最终用户(资源所有者)获取新的访问令牌,而不是存储最终用户的用户名/密码,并在每次access_token过期时发送它们。 然而,在我看来,这听起来像refresh_token和access_token一样好,它几乎只是一个额外的服务器调用,所以为什么不直接使用它,即如果refresh token是有效的授予访问权限呢?

    • 我以前在一个OAuth2应用程序中工作过,其中的逻辑是在旧的访问令牌过期后通过刷新令牌生成新的访问令牌。 如果访问令牌在30分钟后过期,然后您只需要传入刷新令牌(但没有重新生成),那么刷新令牌的意义是什么?

    • 是否可以将oauth1 3LO访问令牌和机密迁移到oauth2刷新令牌? 1){“错误”:“unauthorized_client”} 从云控制台使用有效的client_id和client_secret。看起来client_secret是错误的,但我们重新检查并使用了不同的应用程序--同样的问题。 2)我们有一个测试web oauth2应用程序,错误为:{“error”:“disabled_cli