Как поисковая система предприятия отображает результаты для пользователя и скрывает несанкционированные результаты? - PullRequest
3 голосов
/ 12 сентября 2010

Я хочу понять, как корпоративные поисковые решения решают проблему пользовательских разрешений.

Мой вопрос заключается в отображении результатов поиска для пользователей.Наивный подход будет отображать результаты поиска для пользователя, а затем, если пользователь щелкает документ, который он не имеет права просматривать, он не сможет открыть его.Тем не менее, даже запрещено отображать заголовок или выдержку из документа, если у пользователя нет прав на его чтение.Таким образом, различные механизмы корпоративного поиска:

  1. индексируют каждый документ вместе с его ACL?
  2. индексируют все документы без информации о разрешениях, но проверяют каждую ссылку в каждом результате поиска, чтобы увидетьзапрашивающий пользователь имеет разрешение на просмотр этой ссылки?

Вариант № 2 имеет для меня больше смысла, но также кажется намного медленнее, чем вариант № 1.Вариант № 1 страдает от необходимости постоянно обновлять изменения в разрешениях для проиндексированных документов.Я хочу понять, каков общий подход в существующих решениях на рынке сегодня.Есть ли третий вариант?

1 Ответ

1 голос
/ 17 января 2016

Я удивлен, увидев, что на этот пятилетний вопрос нет ответов, так как я думаю, что это довольно распространенная и важная проблема в поиске предприятий.

Как указано в вопросе, есть дваобщие подходы к защите на уровне документов:

  • раннее связывание -обезопасность: индексирование ACL вместе с контентом и
  • позднеесвязывание -security: обработка защиты во время запроса путем фильтрации protected results

Обработка защиты только на стороне содержимого никогда не рекомендуется, поскольку на данный момент конфиденциальноинформация, возможно, уже была раскрыта (например, заголовок или предварительный просмотр документа в результатах поиска).

Преимущество реализации защиты с помощью подхода с поздним связыванием заключается в том, что он очень гибкий,потому что нет необходимости переиндексировать содержимое после изменения ACL.Однако самый большой недостаток заключается в том, что при этом конфиденциальная информация может передаваться через значения фасетов, и невозможно получить и отобразить правильные числа фасетов.Также сложнее правильно заполнить список результатов и обработать нумерацию страниц.И последнее, но не менее важное: этот подход может значительно снизить производительность.

Преимущество реализации безопасности с подходом раннего связывания заключается в том, что он устраняет все перечисленные выше недостатки по ценеповторной индексации содержимого, как только изменяются ACL.Однако утечки все еще возможны, например, когда членство в группе или ACL только что изменилось и еще не отражено в поисковом индексе.Чтобы устранить этот пробел , два подхода с ранним связыванием и с поздним связыванием часто объединяются.

И последнее, но не менее важное:Третий вариант, в зависимости от используемой платформы поисковой системы предприятия: Active Security Attivio основан на соединениях запроса времени , что позволяет индексировать информацию о безопасности независимо от самого документа, но при запросеtime объединяет два документа, чтобы гарантировать, что только авторизованный контент попадет в результаты поиска.

...