Корпоративный поиск - авторизация
Хорошо сделанный поиск внутри компании - это залог здоровья и долголетия её сотрудников и клиентов! А почему нет? Поисковая строка поможет разработчику быстро найти нужную программную библиотеку, у менеджера отыщется отчетный документ, для секретарши - это спасательный круг в океане писем, для директора - она есть способ повысить эффективность работы подчиненных, а клиенты будут восхищены проявленной о них заботой.
Самые сложные конфигурации может иметь поисковая программа для корпоративных сетей. Это обусловлено тем, что внутри крупной компании всего, что так или иначе связано с поиском, может быть вагон и маленькая тележка. Что именно вселяет такое разнообразие:
- Много машин на которых находится нужная информация.
- Различная пропускная способность сетей.
- Много источников документов. Таковыми могут быть интранет веб серверы, базы данных, файловые хранилища, системы документооборота, почтовые сервисы, сервисы обмена мгновенными сообщениями.
- Дополнительные, необычные для веба специфические форматы файлов.
- Требования мгновенной доступности определенных групп документов для поиска.
- И, конечно же, авторизация, дающая возможность ограничивать списки документов, доступных пользователю для поиска, а также настраивать порядок сортировки найденных документов.
Для задания прав доступа используют групповые и/или индивидуальные политики. Если используются индивидуальные политики - то к каждому документу приписывается список пользователей, имеющих к нему доступ. При использовании групповых политик, пользователи и документы попадают в группы доступа. Информация о том, какие группы и пользователи имеют доступ к документу, должна учитываться при поиске.
Рассмотрим пример, в котором поиск выполняется с помощью построенного заранее индекса (например, с помощью программ Lucene/Sphinx/Яндекс.Сервер). Схема работы программы-индексатора может выглядеть так:
Программа-индексатор ходит по дебрям интранета в поисках свежей информации. Наткнувшись на не обойденный ранее источник, она начинает высасывать из него документы до последнего байта. При этом индексатор может проконсультироваться с хранилищем данных насчет того, кому показывать данные на поиске, а кому нет, но может и сам решить. Например, если индексируется система контроля версий в софтверной компании, то индексатор может сразу задать всем документам видимость только для разработчиков. А если индексируется почтовый ящик пользователя, то никому кроме самого пользователя и директора эти письма не показывать.
Для построения поискового индекса не существует универсального швейцарского ножика. Чем более разнообразны данные и запутаннее права доступа к ним, тем больше потребуется индивидуальной настройки. Или в результате всё получится как обычно.
И вот, индекс построен. Теперь осталось довинтить программу поиска. Если используются индивидуальные политики безопасности, то схема работы поиска довольно проста:

На этой схеме единственной "неродной" деталью поисковой программы является переформулировка запроса. Для этого серверу нужно сначала авторизовать пользователя, а потом добавить в поисковый запрос ограничение.
При использовании групповых политик безопасности схема усложняется. Перед первым запросом нужно запросить у сервера авторизации список групп, а потом выполнить переформулировку запроса. В качестве сервера авторизации может выступать любая БД.

Внимание, акция! Присылайте в комментариях или по почте описание структуры своей локальной сети и требования к поиску - и мы совершенно бесплатно нарисуем вам детализированную схему внедрения.
В разделе: Блог - Эта статья входит в категорию: Корпоративный поиск




Комментарии
RSS лента комментариев этой записи.