API网关级授权和响应时的策略强制执行



我目前正在寻找一种方法,将授权与API网关(Kong(集成到微服务架构中。对于身份验证,密钥斗篷正在通过Kong使用和强制执行。现在,我想创建策略,授予网关后面资源的访问权限(例如,资源只能由创建者或管理员访问(。OPA看起来非常适合,但它似乎不能用于从响应中剥离字段。例如,如果我想隐藏服务添加到客户端响应中的某些字段,或者只想在某些字段上允许PATCH,则不能使用OPA。我遗漏了什么吗?或者你知道我的用例有更好的解决方案吗?

我们最终是如何做到的:OPA和OSO都是非常好的授权解决方案,但它们与我们想要的不匹配。我们想要1。能够从数据库中收集关于用户属性或数据之间关系的信息以决定用户是否应该具有访问权限,以及2。能够从响应中删除某些字段。所有可用的开源解决方案似乎都无法提供这一点,所以我们决定开发自己的解决方案。

我们的服务能够处理基于json的策略dsm。策略可以包括对MongoDB、Neo4j或查询部分的查询。通过这种方式,我们可以为细粒度访问策略创建真正通用的策略。策略服务不是在网关级别部署的,而是作为中间件集成到需要Auth的微服务中。如果您想了解更多关于我们解决方案的信息,请查看我们关于该主题的文档。

最新更新