SharePoint изнутри Интеграция с каталогом SharePoint

Пав Черны (Pav Cherny)

Загрузка кода возможна по следующей ссылке: SharePoint2008_09.exe(2,775 KB)

Cодержание

Служба управления каталогом SharePoint
Пользовательская служба управления каталогом
SharePoint и ILM
Заключение

В состав служб Microsoft Windows SharePoint Services (WSS) 3.0 и пакета Microsoft Office SharePoint Server (MOSS) 2007 входят средства синхронизации с каталогом в форме службы управления каталогом (Directory Management Service), который может предоставлять контакты с поддержкой почты и групповые объекты для ресурсов SharePoint в Active Directory. Предоставление этих типов

объектов получателей для ресурсов SharePoint® дает возможность пользователям выбирать библиотеки SharePoint, списки и группы прямо из адресной книги Microsoft® Outlook® при отправке документов и иной информации.

Объекты получателя SharePoint также предоставляют способ управления передачей сообщений и преобразования форматов в организации, использующей Exchange Server. Среди прочего можно предотвратить возможность отправки сообщений в библиотеки SharePoint пользователями, не прошедшими проверку подлинности, такими как спамеры, установкой ограничений доставки сообщений в Active Directory®.

Свойства управления каталогами SharePoint, однако, ограничены, и на момент написания статьи предполагается, что в качестве нижележащей системы обмена сообщениями используется Exchange Server 2003. Сейчас, если используется Exchange Server 2007 или другая система обмена сообщениями, потребуется расширить или заменить встроенные средства управления каталогом на собственное решение для достижения нужного уровня возможностей взаимодействия.

В этой статье я кратко опишу возможности средств управления каталогом в SharePoint, а затем представлю подход для обхода существующих ограничений. Моей предпосылкой является то, что встроенная служба управления каталогом соответствует только самым основным требованиям пользователей. Среды с множеством систем обмена сообщениями и платформ управления каталогом нуждаются в большей гибкости и функциональности. Заменив встроенные компоненты собственными решениями, можно синхронизировать информацию получателей SharePoint с любым решением для работы с каталогом, которое предоставляет интерфейс API или возможности импорта.

Чтобы доказать эту точку зрения, я покажу, как синхронизировать информацию получателей SharePoint таким образом, который совместим с Exchange Server 2007. Аналогично можно использовать собственное решение для синхронизации информации получателей с IBM Lotus Notes или другой системой.

Таким же образом приобретается возможность централизации процессов предоставления каталога, основанная на службе метакаталога, такой как Identity Information Server, который входит в состав Microsoft Identity Lifecycle Manager (ILM) 2007 Feature Pack 1 (FP1). Я покажу, как интегрировать SharePoint с ILM 2007 для координации предоставления объектов каталога для библиотек документов SharePoint. Средства, исходный код и поэтапные указания для построения этого решения можно найти в сопутствующем материале к этой статье, доступном в разделе загрузки кода на веб-узле technetmagazine.com.

Служба управления каталогом SharePoint

В отличие от Exchange Server, в котором используется Active Directory почти для всей информации о настройке и получателях, SharePoint основывается на базах данных настройки и содержимого. SharePoint должен, следовательно, распространять информацию получателей о библиотеках, списках и группах с поддержкой электронной почты из своей базы данных в такой каталог. В конце концов, клиенты, обменивающиеся сообщениями, предполагают найти получателя информации в адресной книге, которая обычно создается из объектов каталога.

По умолчанию в состав пакета SharePoint с этой целью входит служба управления каталогом, которая является частью веб-службы интеграции электронной почты (SharepointEmailWS.asmx). Ее можно настроить в центральной администрации SharePoint 3.0 на странице Operations («Эксплуатация») в пункте параметров входящей электронной почты. На рис. 1 показано, как работает встроенная служба управления каталогом.

fig01.gif

Рис. 1 Архитектура службы управления каталогом SharePoint (Щелкните изображение, чтобы увеличить его)

Когда вы включаете веб-ферму для управления каталогом и затем назначаете библиотеке, списку или группе адрес электронной почты для получения сообщений, как при использовании EmailSettings.aspx, вы неявно вызываете веб-службу интеграции электронной почты для предоставления соответствующих объектов получателей в Active Directory. Во-первых, SharePoint сохраняет информацию об адресах электронной почты в базе данных содержимого. Затем SharePoint отправляет запросы на подготовку от вашего имени веб-службе интеграции электронной почты, используя идентификацию учетной записи пула веб-приложений. Если запрос подготовки завершается сбоем, процесс заканчивается записью информации об адресе электронной почты в базу данных содержимого, но без размещения соответствующих объектов получателей в Active Directory.

Дополнительные материалы

Запросы подготовки могут закончиться сбоем по множеству причин. Самой частой причиной является отсутствие полномочий для доступа к метабазе IIS. Вследствие того, что SharepointEmailWS.asmx предназначен быть веб-службой для учетных записей групп приложений, эта веб-служба проверяет метабазу IIS, чтобы увидеть, является ли пул приложений вызывающей учетной записью, и если ответ отрицательный, отклоняет доступ вне зависимости от вашего узла SharePoint site и уровня полномочий Active Directory.

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

Конечно, повышенные полномочия на веб-сервере — источник проблем с безопасностью. Есть лучшие способы управления доступом к веб-службе ASP.NET. Более того, SharePoint предполагает найти службу управления каталогом на центральном административном узле, хотя этот сайт не доступен в веб-ферме постоянно, поскольку заблокирован для уменьшения возможностей для атак. Следовательно, если потребуется использовать встроенную службу управления каталогом в производственной среде SharePoint, нужно применить настройку ослабленной безопасности.

Невозможность реализовать собственную логику также предполагает, что не удастся настоить процесс подготовки, например для реализации пользовательских одобрений. SharePoint поддерживает процессы одобрений для групп, но эта возможность основана на узле центральной администрации. Только администраторы фермы SharePoint могут одобрить ожидающие запросы, хотя администраторы SharePoint не обязаны отвечать за одобрение процессов подготовки Active Directory.

Кроме того – и это, может быть, даже более важно, – нет процессов одобрения для поддерживающих электронную почту библиотек документов и списков. Если вы включите управление каталогом, то непременно дадите всем администраторам узлов вашей веб-фермы право создания контактов и групп в Active Directory с поддержкой электронной почты. Также невозможно структурировать управление получателями, основанное на организационных подразделениях (OU), поскольку все объекты получателей каждой веб-фермы размещены в том же организационном подразделении.

Нельзя переместить объекты получателей в другое организационное подразделение, потому что служба управления каталогом предполагает найти объекты в организационном подразделении SharePoint OU, и учетной записи группы центральной администрации SharePoint должны быть даны административные полномочия в Active Directory. Кроме того, нет способа реализовать двунаправленную синхронизацию между SharePoint и Active Directory. При изменении атрибутов объектов в Active Directory эти изменения не распространяются обратно в среду SharePoint.

Пользовательская служба управления каталогом

Поскольку мы установили, что встроенная служба управления каталогом оставляет мало возможностей для построения дополнительной гибкости, давайте рассмотрим несколько альтернатив. Хорошей новостью является то, что SharePoint позволяет реализовать собвственную службу управления каталогом. Нужно только зарегистрировать эту веб-службу как удаленную службу управления каталогом в центральной администрации SharePoint 3.0 на странице Operations в пункте параметров входящей электронной почты.

Для ознакомления с подробными поэтапными указаниями по развертыванию и регистрации пользовательской веб-службы вопользуйтесь электронной таблицей «Directory Integration Based on a Custom Directory Management Service.xps» в сопутствующем материале. Кроме того, данная пользовательская веб-служба позволяет увидеть, как помещать совместимые с Exchange Server 2007 объекты получателя в Active Directory без командлетов или средств управления сервером Exchange. Соответствующий исходный код находится в папке EmailIntegrationService. На рис. 2 показана архитектура решения.

fig02.gif

Рис. 2 Архитектура пользовательской службы управления каталогом (Щелкните изображение, чтобы увеличить его)

Интерфейс пользовательской веб-службы должен соответствовать интерфейсу службы управления каталогом, как описано в пакете SDK для SharePoint. Если выполнить поиск строки «SharepointEmailWS» на веб-узле MSDN® (msdn.microsoft.com), можно найти все требуемые детали. Можно также ознакомиться с файлом Service.cs в папке EmailIntegrationService\App_Code в сопутствующем материале. Этот файл реализует требуемый интерфейс веб-службы, тогда как актуальный код для подготовки объектов Active Directory находится в SPRecipient.cs. Например, функция UpdateRecipientAttributes в SPRecipient.cs создает требуемые атрибуты Exchange Server 2007. SPRecipient.cs — кодовый файл, который нужно заменить, если нужно разработать свою службу управления каталогом.

Пользовательская служба управления каталогом — хорошее средство для преодоления требования повышенных полномочий и интеграции SharePoint с другими системами каталога или обмена сообщениями. Не надо проверять метабазу IIS для ограничения доступа веб-службы к учетным записям группы приложений. Вместо этого можно добавить раздел <authorization> в файл web.config веб-службы (пример есть в сопутствующем материале).

Однако остается несколько сложностей, так как нельзя проверить, вызывает ли SharePoint вызывает вашу службу управления каталогами, а если это происходит, то когда именно. Среди прочего, SharePoint не вызывает службу управления каталогом, когда удаляется библиотека документов или список с поддержкой электронной почты и, таким образом, в Active Directory остается неверный объект получателя. Независимо от того, используете вы встроенную службу управления каталогом или пользовательское решение, нельзя гарантировать, что информация о получателях в Active Directory соответствует ресурсам SharePoint.

SharePoint и ILM

Для получения надежной интеграции каталога следует рассмотреть развертывание профессионального пакета управления каталогом, такого как ILM. Эта система основана на модели синхронизации с каталогом по принципу получения информации. Управляющие агенты получают информацию из связанных с ними ресурсов, импортируют ее в общий метакаталог и экспортируют информацию из метакаталога в связанные с ними системы. Системы-источники обычно не выкладывают свою информацию в метакаталог. Получая информацию, можно гарантировать соответствие на каждом цикле синхронизации.

Другое преимущество состоит в том, что в состав ILM по умолчанию входит несколько агентов управления для поддержки Active Directory, Lotus Notes и множества других систем. Нужно только реализовать пользовательский управляющий агент для SharePoint с целью синхронизации информации SharePoint с другой поддерживаемой в среде платформой каталога.

Данная логика должна быть реализована для получения необходимой информации из SharePoint, ее сохранения в файле импорта и передачи импортированной информации в метакаталог. Но не нужно реализовывать эту логику для экспорта информации из метакаталога в Active Directory или другую платформу каталога. На рис. 3 показано, как реализовать синхронизацию от SharePoint к Active Directory при помощи ILM. Также возможно достигнуть синхронизации в другом направлении для подготовки ресурсов SharePoint для объектов каталога, хотя этот вопрос можно рассматривать как необязательный или дополнительный.

fig03.gif

Рис 3. Интеграция каталога на основе ILM (Щелкните изображение, чтобы увеличить его)

Хорошей начальной точкой для разработки управляющего агента SharePoint является статья Алекса Черняховского (Alex Tcherniakhovski) «Подключение ILM 2007 к спискам служб SharePoint» по адресу blogs.msdn.com/alextch/archive/2007/09/02/wsslistsandilm.aspx. Алекс показывает, как построить основанное на ILM решение для управления каталогом, которое базируется на построенных на InfoPath® запросах подготовки, отправляемых к библиотеке документов. Управляющий агент Алекса извлекает все одобренные запросы из библиотеки документов и создает соответствующий метакаталог объектов, который затем может быть экспортирован в подключенные к нему каталоги.

По умолчанию, однако, SharePoint не создает основанные на InfoPath запросы на подготовку, когда включается поддержка почты для списка или группы. Можно достигнуть этого, используя пользовательскую службу управления каталогом, но тогда обнаружатся вопросы согласованности, упомянутые выше, потому что SharePoint не вызывает службу управления каталогом ни при каких обстоятельствах. Поэтому я рекомендую, чтобы пользовательский агент управления извлекал требуемую информацию получателей SharePoint напрямую из списков и групп набора узлов. Если нужен процесс одобрения, можно затем создать основанные на InfoPath запросы подготовки для новых ресурсов в управляющем агенте, а потом последовательно обработать все одобренные запросы.

Есть несколько вариантов для извлечения информации SharePoint. Можно прочесть эту информацию напрямую из базы данных содержимого, используя объектную модель SharePoint, или воспользоваться преимуществами веб-служб SharePoint.

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

Прямое использование объектной модели SharePoint в управляющем агенте также непросто выполнить, потому что эта объектная модель требует локального запуска кода, кроме того, установка ILM на веб-сервере в каждой ферме SharePoint в среде может усложнить инфраструктуру управления каталогом.

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

Кажется, что лучше всего реализовать пользовательскую веб-службу SharePoint, которая использует объектную модель SharePoint для извлечения желаемой информации и возвращает эту информацию инициатору запроса в форме документа XML. Сейчас можно централизовать развертывание ILM и интегрировать любое количество наборов ферм и узлов через индивидуальные экземпляры веб-служб SharePoint, как показано на рис. 3.

Остался один аспект, требующий упоминания: основанная на ILM интеграция каталога не устранит необходимость в пользовательской службе управления каталогом. Эта пользовательская служба не требует какой-либо работы, потому что ILM предоставляет объекты каталога, кроме того, нужно предоставить пользовательскую службу, чтобы можно было включить управление каталогом в центральной администрации SharePoint 3.0. Иначе, например, нельзя будет назначить адреса электронной почты группам в первую очередь. На рис. 4 показана архитектура полученного решения.

fig04.gif

Рис 4. Интеграция каталога со SharePoint на основе веб-службы (Щелкните изображение, чтобы увеличить его)

Можно превратить пользовательскую службу управления каталогом, приведенную в сопровождающем материале, в службу-заглушку, установив параметр OpMode в файле web.config (<add key="OpMode" value="dummy"/>). В этой настройке пользовательская служба всегда возвращает SUCCESS («Успешно») в ответ на запросы подготовки без осуществления какой-либо работы.

Кроме того, в пользовательской службе используется метод ResolveUsers, поэтому управляющий агент SharePoint может попросить разрешить основанные на NetBIOS имена учетных записей пользователей в различенные имена, что представляет собой обязательный шаг при подготовке групп. (SharePoint возвращает информацию о членстве в группе как список основанных на NetBIOS имен учетных записей пользователей, но для Active Directory требует различенные имена.) Вот и все. Подробные сведения о том, как развернуть полученное решение, находятся в файле «Configuring Directory Integration based on ILM 2007.xps» в сопровождающем материале.

В состав WSS 3.0 и MOSS 2007 входит служба управления каталогом для интеграции SharePoint с Exchange Server 2003 для основанной на обмене сообщенияями кроссплатформенной совместной работы.

Однако есть несколько ограничений. Пользователи должны заменить встроенную службу управления каталогом на пользовательское решение. Следует также использовать профессиональное решение для управления каталогом, такое как ILM, для интеграции SharePoint в инфраструктуру управления каталогом. Оно предоставляет высочайший уровень гибкости и может обеспечить соответствие информации через основанную на получении модель синхронизации.

Пав Черны – специалист по информационным технологиям и автор, специализирующийся на технологиях совместной работы и единой среды связи корпорации Майкрософт. В число его публикаций входят статьи, руководства и книги по продуктам и книги по эксплуатации информационных систем и системному администрированию. Пав является президентом корпорации Biblioso —компании, которая занимается услугами по управлению документооборотом и локализации.