【问题标题】:Solr: Document & sub-document level securitySolr:文档和子文档级别的安全性
【发布时间】:2012-01-29 06:15:03
【问题描述】:

我有一个非常熟悉的 Solr 问题。该索引包含一组员工记录文档,这些文档具有一组公共访问字段和一组安全字段。基于用户的安全凭证(可能在文档中作为一个字段进行索引),如果文档匹配,则其所有公共字段和他有权访问的一些安全字段。此安全字段列表因同一索引中的文档而异。示例:一个部门的经理(属于一家公司)可以查看他手下员工(doc)的所有安全字段,但不能查看不在他手下工作的员工(无论是否在同一家公司)。但他仍然可以看到所有员工的所有公共字段(匹配和过滤的文档)。

因此,作为经理,我可以看到在我手下工作的每个人的所有(公共 + 安全)字段,但我的助手只能看到他手下的一些安全字段。如何在 Solr 中实现这一点。谢谢。

【问题讨论】:

    标签: search solr


    【解决方案1】:

    documentation 声明 Solr 不关心文档级别的安全性。

    Solr 旨在成为数据的索引,而不是数据库的替代品(访问控制是重要的数据库功能,只会增加索引的复杂性)

    我的建议:

    1. 从索引中删除所有敏感数据。每个 Solr 文档都可以包含对包含需要访问控制的敏感数据的第 3 方系统/数据库的引用(或链接)。
    2. 加密索引中的敏感内容 使用公钥/私钥加密,您可以控制谁能够解密 Solr 文档的敏感字段。 (此解决方案不能很好地扩展,也不允许搜索加密字段)
    3. 为每个经理创建敏感搜索索引:使用网络服务器的身份验证机制来控制对索引的访问并在那里加载敏感数据。

    【讨论】:

      【解决方案2】:

      我建议采取以下步骤:

      1. 将公开内容和安全内容分开,您可以使用两个独立的内核。
      2. 添加一个位于 User 和 SOLR webapp 之间的 ServletFilter,然后您可以在 SOLR 结果之上使用一些基于 ACL 的基本安全性来根据您的应用程序要求过滤掉内容。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-06-29
        • 1970-01-01
        • 1970-01-01
        • 2010-12-17
        • 1970-01-01
        • 2017-02-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多