【发布时间】:2020-04-27 16:16:40
【问题描述】:
据我了解:-
oauth 客户端可以获得的范围在授权服务器上针对客户端注册。
客户端可以使用的授权类型在授权服务器上针对客户端注册。
资源配置为允许包含与特定范围关联的访问令牌的请求。
在普通 OAuth 中是否有一种机制,在限制端点时除了使用范围之外还使用授权类型?
例如,给定范围=组织、图像和授权类型=客户端凭据、身份验证代码的客户端 A:
(在创建令牌时)
对于客户端 A 获取“组织”范围的访问令牌,只能使用客户端凭据授予类型。
对于客户端 A 获取“图像”范围的访问令牌,只能使用授权码授权类型。
或者(当它调用的资源端点)
当使用包含预期“组织”范围的访问令牌调用 /organisation 端点时,仅在使用客户端凭据授权类型获取访问令牌时才允许请求(如果任何其他授权类型被使用)。
当使用包含预期“图像”范围的访问令牌调用 /images 端点时,仅在使用授权码授权类型获取访问令牌时才允许请求(如果任何其他授权类型则失败已使用)。
据我所知,范围仅受为客户注册的内容所限制。
我能想到实现上述目标的唯一方法是为同一个实际客户端 (A) 注册两个客户端(例如 b、c),并为客户端凭据授予类型和组织范围和客户端配置客户端“b” 'c' 用于授权代码授权类型和图像范围。
更新
一个选项是沿着 OIDC 行添加角色范围,这意味着角色声明将被添加到访问令牌中。然后可以检查访问令牌以查看角色是第三方(客户端凭据授予)还是用户(授权代码授予)。 我仍然很想知道 oauth 中是否有任何专门用于通过授权类型进行限制的内容。
【问题讨论】:
标签: oauth-2.0