如何根据外部用户和组限制ElasticSearch文档访问?

qxgroojn  于 6个月前  发布在  ElasticSearch
关注(0)|答案(2)|浏览(44)

我们索引中的每个文档都应该只能由特定的(最终)用户访问。每个文档的索引可以是基于用户或基于组的。我们已经有了一个(DynamoDB)数据库,其中包含用户,组和他们可以访问的文档(即我们提供给ElasticSearch的文档)。
基于我们现有的用户和组数据库,在ElasticSearch中强制文档权限的正确方法是什么?

btxsgosb

btxsgosb1#

正确的方法是让elasticsearch处理检查。你可以通过在每个查询的顶部添加一个过滤器来自己做,但这很棘手,如果你的用户对查询的生成有一定的控制权,那么有办法绕过这样的过滤器。
因此,要正确地执行此操作,应该将XML与您的文档一起索引,并在每次文档更改时更新。在这种情况下,您可以将访问规则制定为模板化的角色查询。组和用户可以使用安全API与Elasticsearch的本机领域同步,或者更好地通过编写和部署custom realm plugin

5lwkijsr

5lwkijsr2#

你最好的选择是在Elastic搜索文档中扁平化(非规范化)这些数据,并根据你对Elasticsearch执行的查询执行安全检查。
反规范化是Elasticsearch效率的关键,但缺点是当user accessesuser groups发生变化时,您需要更新所有文档。

相关问题