Усиление безопасности в поисковой веб-службе
У меня есть веб-приложение, которое использует веб-службу поиска SharePoint 2007 (http://localhost/_vti_bin/search.asmx
). Моя область содержит несколько источников контента, все они содержат бизнес-данные (контент сканируется с помощью запросов SQL во внешних базах данных). Мне нужен один из этих источников контента, чтобы обеспечить мне урезанные результаты безопасности. Проще говоря, у меня есть две таблицы:
- Таблица A с содержанием: NodeId, Title, Content
- Таблица B с разрешениями: NodeId, Имя пользователя
Теперь сканер индексирует таблицу A без проблем. Однако моя проблема заключается в том, что при выполнении поиска с помощью веб-службы запросов я не могу найти решение для подстройки безопасности результатов. Веб-служба используется с учетной записью службы, без олицетворения вошедшего в систему пользователя. Есть ли возможность каким-либо образом передать имя пользователя объекту querypacket или каким-либо другим способом, который будет проверять таблицу B, имеет ли имя пользователя доступ к NodeId?
Так как я планирую перейти на SP2013, может быть, некоторые из вас также знают решение для этой версии Sharepoint, если нет пути в MOSS2007?
1 ответ
Существует три основных варианта настройки безопасности результатов поиска SharePoint. Они включают:
- ISecurityTrimmerPre - Новое в SharePoint 2013. Позволяет добавлять дополнительные утверждения для пользователя перед выполнением поискового запроса.
- ISecurityTrimmerPost - также известный как ISecurityTrimmer2 в более ранних версиях SharePoint. Позволяет обрезать результаты поиска на основе 1 к 1 после выполнения поискового запроса
- Коннекторы индексации Business Connectivity Services - позволяют предоставлять списки ACL для индексатора поиска, когда он сканирует источник контента.
Существует большой набор статей в блогах, которые показывают, как реализовать каждый параметр.
Кроме того, вот отличное видео о сеансе SharePoint Conference 2012 по пользовательской настройке безопасности.
НТН
-Eugene