Oauth2客户端凭据授予范围验证

bxjv4tth  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(155)

我们正在尝试设置Oauth2客户端凭证授权,以保护我们部署在k8上的API。
1.我们使用OryHydra作为授权服务器,向客户端发布访问令牌

  1. nginx作为我们的入口控制器,对于每个API,我们使用auth-url注解将请求定向到自定义组件
    1.定制组件基本上检索JWT令牌并验证它。
    问题更多的是关于这个具有验证逻辑的自定义组件:
    1.我们想使用scope进行授权,但是我应该在哪里保存scope和上游API之间的Map呢?目前我们只是使用上下文路径。例如,如果api-a具有上下文路径api-a,则客户端将请求具有范围api-a的令牌,然后我们验证X-Original-Url前缀是否为issuer + scope。这似乎不是一个灵活的方法,只是想知道通常这个Map会保存在哪里?
    1.由于我使用jwt token作为访问令牌,这是否意味着我不再需要使用introspect调用授权服务器?因为我可以在本地验证jwt token的有效性?
mccptt67

mccptt671#

第一季度

可以检查入口中的作用域,但这可能会产生部署问题,例如,当API逻辑更改时,必须频繁地重新配置或重新部署入口。
最灵活的选择是将JWT转发到每个上游API,这样它们就可以使用OAuth令牌范围应用粗粒度授权,并使用OAuth令牌声明应用细粒度授权。
例如,这提供了一个设置,如果API编码正确,则可以避免OWASP 1号API漏洞broken object level authorization

第二季度

您不需要内省JWT。内省与不透明访问令牌一起使用,其作用通常是防止将敏感的访问令牌数据泄露给Internet客户端。

相关问题