【问题标题】:Doorkeeper - limit grant types on specific endpointDoorkeeper - 限制特定端点的授权类型
【发布时间】:2016-05-10 15:29:37
【问题描述】:

我有一个提供一些端点的葡萄 API,以及处理授权的门卫。默认情况下,门卫启用授权码授予以及客户端凭据授予。所以我只能通过这两个授权请求访问令牌。

我想知道门卫是否有办法限制或至少获取用于请求提供的访问令牌的授权类型?

例如,如果有人使用授权码授权请求令牌,当他在 API 上请求资源时,我想知道他使用授权码授权来获取他的令牌。然后,我可以检查给定令牌是否来自授权代码授予的每个请求,以及是否提供资源。

我知道有应用程序的范围来处理特定的授权,但我想知道是否有解决此问题的方法。这可能不是一个合法的问题,我可能在 OAuth 规范中遗漏了一些东西,所以欢迎所有 cmets!

【问题讨论】:

    标签: ruby grape grape-api oauth2 doorkeeper


    【解决方案1】:

    客户端凭据流发布的访问令牌不与任何资源所有者相关联。因此,在您的用例中,您可以通过检查访问令牌是否与资源所有者相关联来判断访问令牌是否已由授权代码流或客户端凭据流发出。

    【讨论】:

    • 你说得对,这是我在问完这个问题后才想到的,但是其他赠款呢?隐式授权和密码授权?
    • 看门卫的实现是否可以获取颁发访问令牌的授权类型。如果当前的实现没有提供这样的特性,你必须修改 doorkeeper 的实现。至少,即使是自省访问令牌的官方规范 (RFC 7662) 也没有涵盖您的用例。
    • 我不知道那个 Token Introspection RFC,谢谢!另外,如果我理解正确,知道令牌来自的授权类型是没有用的,所以我在实现背后的想法是错误的。所以我只会使用授权范围来“过滤”传入的请求并相应地响应它们。感谢您的帮助!您的答案实际上是任何人都可以对这个问题给出的唯一答案,所以我会将其标记为已接受的答案。
    猜你喜欢
    • 2015-10-29
    • 2021-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多