Я удивлен, увидев, что на этот пятилетний вопрос нет ответов, так как я думаю, что это довольно распространенная и важная проблема в поиске предприятий.
Как указано в вопросе, есть дваобщие подходы к защите на уровне документов:
- раннее связывание -обезопасность: индексирование ACL вместе с контентом и
- позднеесвязывание -security: обработка защиты во время запроса путем фильтрации protected results
Обработка защиты только на стороне содержимого никогда не рекомендуется, поскольку на данный момент конфиденциальноинформация, возможно, уже была раскрыта (например, заголовок или предварительный просмотр документа в результатах поиска).
Преимущество реализации защиты с помощью подхода с поздним связыванием заключается в том, что он очень гибкий,потому что нет необходимости переиндексировать содержимое после изменения ACL.Однако самый большой недостаток заключается в том, что при этом конфиденциальная информация может передаваться через значения фасетов, и невозможно получить и отобразить правильные числа фасетов.Также сложнее правильно заполнить список результатов и обработать нумерацию страниц.И последнее, но не менее важное: этот подход может значительно снизить производительность.
Преимущество реализации безопасности с подходом раннего связывания заключается в том, что он устраняет все перечисленные выше недостатки по ценеповторной индексации содержимого, как только изменяются ACL.Однако утечки все еще возможны, например, когда членство в группе или ACL только что изменилось и еще не отражено в поисковом индексе.Чтобы устранить этот пробел , два подхода с ранним связыванием и с поздним связыванием часто объединяются.
И последнее, но не менее важное:Третий вариант, в зависимости от используемой платформы поисковой системы предприятия: Active Security Attivio основан на соединениях запроса времени , что позволяет индексировать информацию о безопасности независимо от самого документа, но при запросеtime объединяет два документа, чтобы гарантировать, что только авторизованный контент попадет в результаты поиска.