企业搜索如何为用户显示结果并隐藏未经授权的结果?

时间:2010-09-12 10:46:47

标签: permissions search-engine enterprise attivio

我希望了解企业搜索解决方案如何解决用户权限问题。

我的问题是显示用户的搜索结果。天真的方法会向用户显示搜索结果,然后如果用户点击他无权查看的文档,他将无法打开它。但是,如果用户没有阅读权限,甚至禁止显示文档的标题或摘录。各种企业earch引擎也是如此:

  1. 将每个文档与其ACL一起索引?
  2. 索引没有权限信息的所有文档,但检查每个搜索结果中的每个链接,以查看查询用户是否有权查看此链接?
  3. 选项#2对我来说更有意义,但似乎比选项#1慢得多。
    选项#1需要不断更新索引文档的权限更改。

    我希望了解当今市场上现有解决方案的常用方法。还有第三种选择吗?

1 个答案:

答案 0 :(得分:1)

我很惊讶地看到这个5岁的问题没有得到任何答案,因为我认为这是企业搜索中一个非常常见和重要的问题。

如问题所述,处理文档级安全性有两种常用方法:

  • 早期绑定 - 安全性:索引ACL以及内容,
  • 后期绑定 - 安全:通过过滤掉受保护的结果,在查询时处理安全性

从不建议仅在内容方面处理安全性,因为此时机密信息可能已经泄露(例如搜索结果中的文档标题或预览)。

使用后期绑定方法实现安全性的优势在于,它非常灵活,因为无需在更改的ACL上重新索引内容。然而,最大的缺点是,通过这样做,机密信息可能会通过方面值泄露,并且无法检索和显示正确的方面计数。正确填充结果列表和处理分页也更加困难。最后但同样重要的是,这种方法可能会显着降低性能。

使用早期绑定方法实现安全性的优势在于,它在ACL更改后立即重新索引内容的价格解决了上述所有缺点。但是,泄漏仍然是可能的,例如当组成员身份或ACL刚刚更改并且尚未在搜索索引中反映时。要解决这个差距,通常会合并两种方法早期绑定后期绑定

最后但并非最不重要的可能是第三种选择,具体取决于您使用的企业搜索平台: Attivio的Active Security 基于查询时间加入,允许独立于文档本身索引安全信息,但在查询时合并这两个文档,以确保只有授权内容才能将其作为搜索结果。

相关问题