【发布时间】:2021-12-09 19:42:00
【问题描述】:
根据 OAuth 2.0 授权框架,当通过Client Credentials Grant 流程获得授权时,它说: “客户端凭据授予类型必须仅由机密客户端使用。”
我已经使用门卫(Ruby on Rails gem)实现了 OAuth 2.0 提供程序 API。但是,由 OAuth 2.0 提供程序创建的非机密客户端应用程序能够仅使用具有其 client_id 的客户端凭据授予流程,即没有 client_secret。这是预期的行为吗?
我在寻求保护我的资源服务器 API 时遇到了这个问题,这样即使对于不需要最终用户进行自动化的公共端点,即当客户端是资源所有者时,客户端仍然需要提供访问令牌。
在此用例中,授权代码授予流程不相关,因为资源所有者不是最终用户,并且根据最新的 OAuth 2.0 安全建议,不建议使用隐式授予流程。在此基础上,我发现 Client Credentials Grant 流程是最相关的流程,但我想仔细检查它是否适合使用,即使 OAuth 2.0 框架规定它必须仅供机密客户使用。
【问题讨论】:
标签: ruby-on-rails oauth-2.0 oauth doorkeeper