В первой из трех статей, посвященных функциям социальных сетей в SharePoint я рассказал о том, что User Profile играет ключевую роль в сборе информации о сотрудниках (см. статью «SharePoint 2010 становится социальной сетью, часть 1», опубликованную в Windows IT Pro/RE № 11 за 2011 год). На этот раз речь пойдет о популяризации профиля User Profile через синхронизацию с другими источниками информации, из службы каталогов, в частности с Active Directory Domain Services (AD DS). .
Понимание синхронизации профиля
У многих организаций есть несколько мест, где хранится пользовательская информация: от баз данных отдела кадров до информационных справочников предприятия. Некоторые хранилища предназначены исключительно для приложений, тогда как другие являются многоцелевыми. Служба каталогов Active Directory (AD) — как раз такого рода. Она используется как хранилище данных для аутентификации и как хранилище информации для приложений, например Microsoft Exchange Server. Именно поэтому многие организации используют централизованный каталог предприятия в качестве главного справочника. Также этот каталог служит им для синхронизации контента с другими хранилищами, если требуется.
Профиль пользователя User Profile представляет собой другое хранилище, которое содержит информацию о сотруднике. Поскольку важно именно единообразное по стилю хранение пользовательской информации во всех хранилищах, требуется решить, будете ли вы предоставлять своим пользователям право видоизменять эти данные. Это решение влияет на синхронизацию данных с внешними источниками.
SharePoint Server 2010 Profile Synchronization позволяет синхронизировать пользовательскую и групповую информацию с хранилищем User Profile, когда эта информация поступает от внешних служб каталога LDAP (таких, как AD DS) или из бизнес-систем, которые были идентифицированы через службу Business Data Connectivity (SAP или Siebel). Вы интегрируете эту информацию, определяя соединения к внешним системам и сопоставляя свойства профиля индивидуального пользователя с подходящими свойствами из внешнего источника.
Более того, вы можете указать, должно ли каждое из сопоставляемых свойств пользователя синхронизироваться при импорте или экспорте (замечу, что сопоставление с бизнес-системами не поддерживает возможность экспорта). Когда вы соединяете возможность сопоставлять свойства для экспорта с разрешением пользователю редактировать свойства своего профиля, эти сдвоенные функции позволяют вам отдавать отслеживание значений свойства в руки пользователей. Однако, поскольку бывает важно поддерживать данные неизменными, вы можете исходить из того, что эта возможность в вашей ситуации неприемлема.
Microsoft Forefront Identity Manager — это реально действующий механизм, который используется для выполнения и мониторинга синхронизации между исходными каталогами. Этот механизм действует как метакаталог для всех каталогов, вовлеченных в синхронизацию. Данный компонент не активирован по умолчанию, но установлен как часть структуры Profile Synchronization.
Настройка Profile Synchronization и AD DS
Прежде чем вы возьметесь за выполнение задач, которые требуются для настройки синхронизации с AD DS, важно отметить, что Profile Synchronization не поддерживается при установке на одном сервере, а поддерживается только установка на ферме серверов (в целях развертывания и тестирования ферма серверов может быть заменена одним сервером, на котором запущены все роли).
Вот главные задачи, которые должны быть выполнены во время синхронизации:
- запуск User Profile Synchronization Service;
- определение соединений с AD;
- определение свойств, которые должны быть сопоставлены;
- вызов и мониторинг синхронизации.
Для запуска процесса требуется знать имя учетной записи фермы. Это имя, которое вы задаете, когда запускаете SharePoint Configuration Wizard после установки SharePoint. Это единственная учетная запись, которую вы будете использовать для того, чтобы получить доступ к базе данных конфигурации; та же самая учетная запись служит идентификатором для пула приложения SharePoint Central Administration в Microsoft IIS. Если вы забудете имя учетной записи своей фермы, вы можете найти его в IIS.
Запуск User Profile Synchronization Service
User Profile Synchronization Service — это служба, которая выполняет всю основную работу, связанную с синхронизацией. Она задействует службы Forefront Identity Manager, не активированные по умолчанию.
При первом запуске User Profile Synchronization Service вы полностью завершаете установку нужных служб Forefront Identity Manager. Не беспокойтесь, если этот шаг займет у вас значительное время. Службы Forefront Identity Manager запускаются под учетной записью фермы, и они должны быть приведены в соответствие некоторым условиям, прежде чем учетная запись сможет принять участие в процессе синхронизации. Таким образом, прежде чем запускать User Profile Synchronization Service в первый раз, необходимо удостовериться, что выполнены следующие условия.
- Учетная запись фермы — член локальной группы Administrators на сервере SharePoint, на котором будет запущена User Profile Synchronization Service.
- С учетной записью фермы можно зарегистрироваться локально на том же самом сервере SharePoint.
- Если вы используете лес Windows Server 2003 AD, то учетная запись фермы является членом группы Pre-Windows 2000 Compatible Access в домене, с которым осуществляется синхронизация.
- У вас на ферме запущено приложение User Profile Service. Обычно этим приложением управляют после процесса установки с помощью мастера Farm Configuration Wizard, но его можно настроить через Central Administration. Чтобы это сделать, нажмите кнопку New на странице Manage Service Applications, которую вы можете открыть со страницы Application Management.
Первое предварительное условие влияет только на первоначальную инициализацию программного обеспечения Forefront Identity Manager. Таким образом, вы можете удалить учетную запись фермы из локальной группы Administrators, когда процесс запуска пройдет гладко. Однако замечу, что такое действие нарушает последовательность синхронизации. Если у вас появляются несоответствия после удаления учетной записи фермы, попытайтесь устранить неполадки, вернув учетную запись на место. Это предварительное условие необходимо потому, что нужно гарантировать, что для служб Forefront могут быть сгенерированы правильные ключи шифрования во время первоначальной инициализации. Если вы не добавляете учетную запись фермы в локальную группу Administrators до развертывания службы синхронизации, вы должны будете сначала восстановить все настройки, прежде чем повторите развертывание службы. Чтобы это сделать, перезагрузите сервер и остановите службу User Profile Synchronization Service, используя Windows PowerShell. Для остановки службы установите ее GUID, используя команду Get-SPServiceInstance, затем передайте этот GUID команде Stop-SPServiceInstance.
После того как вы убедитесь, что учетная запись фермы соответствует предварительным условиям, можете перейти к запуску User Profile Synchronization Service, щелкнув по ссылке Manage Services on server в разделе System Settings в Central Administration. Удостоверьтесь, что выбранный сервер, указанный вверху страницы, является единственным сервером, на котором запущено служебное приложение User Profile. Затем свяжите этот сервер с User Profile Synchronization Service. После этого статус службы изменится на Starting. Теперь можно подождать, пока завершится настройка служб Forefront Identity Manager и необходимых соединений с важными базами данных SQL Server. Этот этап может занять до 15 минут. Его успешное завершение фиксируется индикатором, изменяющимся со статуса Starting на статус Started. Заметьте, что, если Central Administration запускается на том же сервере, вы должны перезапустить IIS после запуска службы.
Есть несколько вещей, которые можно проверить, для того чтобы проконтролировать завершение процесса настройки. Так, службы Forefront Identity Manager и Forefront Identity Manager Synchronization Windows должны быть запущены. Также эти службы должны быть связаны с учетной записью вашей фермы и иметь тип запуска Automatic. Не стоит запускать эти службы вручную. Они должны быть запущены при помощи User Profile Synchronization Service. Наконец, убедитесь, что была создана папка %Programfiles%\Microsoft Office Servers\14.0\Synchronization Service\MaData и что внутри нее было создано несколько пустых папок.
Задание соединений с Active Directory
Profile Synchronization позволяет задействовать Active Directory в качестве основного источника наполнения SharePoint User Profile. Это значит, что как только пользовательские и групповые объекты создаются, обновляются и удаляются в Active Directory, они также создаются, обновляются и удаляются в SharePoint User Profile.
Для того чтобы указать в Active Directory те объекты, которые вы хотите синхронизировать, создается элемент Synchronization Connection. В процессе создания вы определяете тип службы каталогов, к которому относится соединение, а также объекты, которые вы хотите синхронизировать. Ниже перечислены некоторые факторы, влияющие на этот процесс.
Необходимо знание лесов Active Directory. Вы должны быть знакомы с такими элементами установки Active Directory, как леса, контроллеры домена и организационные единицы. Таким образом, вы можете нацелить соединения на те контейнеры, которые содержат пользовательские и групповые объекты, которые вы хотите синхронизировать. Также нужно знать, были ли изменены номера портов по умолчанию для доступа по LDAP и требуется ли от вас использование шифрованных соединений LDAP (то есть требуется ли SSL).
Может потребоваться фильтрация объектов. Вы можете указать фильтр для соединения и использовать его для детализации объектов и групп, которые вы хотите «перетянуть» из Active Directory в User Profile. Если ваша организация использует свойства Active Directory как часть процесса развертывания для определения круга пользователей, которых вы хотите включить в SharePoint User Profile, вам нужно знать, какие свойства используются.
Поддержка ресурсных лесов. Поддержка нужна, если у вас два леса Active Directory: один используется для аутентификации (лес, где пользователи регистрируются, — это лес учетных записей или лес регистрации), а второй — для ресурсов (таких, как Exchange или SharePoint). В этом случае объекты в ресурсном лесу имеют соответствующую систему безопасности и могут быть задействованы пользователями, которые регистрируются в лесу учетных записей. Записи в User Profile ссылаются на свои копии в Active Directory посредством SID пользователя, который ассоциирован с объектом учетной записи пользователя в лесу. По этой причине в сценарии с ресурсным лесом нужно выполнить связывание объектов посредством леса учетных записей и получить большую часть атрибутов, которые требуют синхронизации, из леса ресурсов. Чтобы следовать этой схеме, требуется установить два соединения: одно для леса учетных записей и одно для леса ресурсов. User Profile будет содержать SID для объекта в лесу регистрации и SID из связанного объекта в лесу ресурсов.
Учетной записи требуются соответствующие разрешения. Необходимо использовать учетную запись, у которой есть соответствующие разрешения для фактической синхронизации. Эта учетная запись будет назначена как служебная учетная запись для агента Metadirectory Services Active Directory Management (то есть Forefront Identity Manager). Эта учетная запись должна соответствовать следующим требованиям, для того чтобы иметь соответствующие разрешения.
- Учетная запись должна иметь разрешения Domain Administrative; она должна принадлежать к группе Domain Administrators или ей должны быть предоставлены разрешения Replicating Directory Changes для каждого домена в лесу, к которому агент управления имеет доступ. Вы можете использовать редактор ACL или ADSI Edit для добавления записи управления доступом к объекту домена, которая предоставит вашей учетной записи разрешения Replicating Directory Changes.
- Если имя NETBIOS отличается от имени домена, контейнер конфигурации cn= должен как минимум иметь разрешение Replicating Directory Changes. Ознакомьтесь с разделом справки PowerShell Help по команде Get-SPServiceAppliction для получения более детальной информации о том, как имена NETBIOS сделать доступными приложению User Profile Service.
- Учетная запись должна быть членом группы Farm Administrators либо учетная запись должна быть назначена администратором User Profile Service.
- Если вы намерены экспортировать пользовательские свойства из SharePoint в AD DS, учетная запись должна иметь разрешения Replicating Directory Changes на объект и на все дочерние объекты для доменов AD DS, в которые вы хотите экспортировать данные. Если вы собираетесь экспортировать свойства картинки, то также требуется разрешение «чтение/запись» на контейнер, который хранит атрибут, являющийся контейнером, в который вы хотите осуществить экспорт. Например, разрешение «чтение/запись» требуется на контейнер, который содержит атрибут ThumbnailPhoto для картинок профиля.
Когда вы уже владеете нужной информацией, можете использовать Central Administration для создания соединения с Active Directory, выбрав пункт Configure Synchronization Connections в разделе Synchronization на странице User Profile Service Application.
Щелкнув по Populate в разделе Containers на странице User Profile Service Application, вы сможете перемещаться по Active Directory и выбирать контейнеры, в которых есть нужные объекты. Чтобы сделать выбор, установите флажок рядом с именем контейнера. Необходимо выбрать как минимум один контейнер. Заметьте, что выбор контейнера автоматически выбирает все объекты, содержащиеся в нем. Также заметьте, что, хотя вы и можете выбрать индивидуальные объекты на этой стадии, чаще выбирают контейнер высокого уровня, в котором находятся искомые объекты, и использование фильтра для извлечения только релевантных объектов из этих контейнеров. Пример успешного соединения можно увидеть на экране 1, где выбран контейнер Users.
Для точной настройки импортируемых объектов можно определить фильтры-исключения на странице Manage Connections. Для этого наведите указатель мыши на соединение, откройте контекстное меню и щелкните Edit Connection Filter. На открывшейся странице можно определить фильтры-исключения как для объектов группы, так и для пользовательских объектов. На экране 2 показано, что объекты должны быть исключены, если значение extentionsAttribute1 не равно единице. Другой фильтр, который вы видите на экране 2, исключает неактивные объекты. Это делается с помощью настройки в AD DS значения атрибута userAccountControl. Второй бит этого значения установлен, если учетная запись не активирована.
Экран 1. Просмотр контейнеров |
Экран 2. Настройка фильтров-исключений |
Определение сопоставляемых свойств
Теперь вам нужно решить, сопоставление каких свойств профиля пользователя в Active Directory должно быть выполнено. Также необходимо определить, как напрямую сопоставить каждое свойство. Свойство может быть импортировано или экспортировано. В процессе импорта значение атрибута Active Directory записывается в сопоставляемое свойство пользовательского профиля. В процессе экспорта свойство пользовательского профиля записывается в сопоставляемом атрибуте Active Directory.
У вас изначально есть доступ к стандартному набору соответствий для соединения к Active Directory, как показано в таблице. Обращаю ваше внимание, что все свойства по умолчанию отмечены как Import. Вы можете аннулировать большую часть этих сопоставлений в соответствии со своими нуждами. Также можно добавлять новые сопоставления для свойств, которые вы определили в своем User Profile. Например, вы можете обновить расширенный атрибут Active Directory для пользовательского свойства, которое пользователи могут редактировать, применяя собственные профили. Это пользовательское свойство потом может быть доступно другим приложениям, которые задействуют имеющуюся службу Active Directory. Чтобы определить такие сопоставления, щелкните по ссылке Manage User Properties на странице User Profile Service Application и выберите пункт Edit.
Таблица. Сопоставления по умолчанию |
Вызов и мониторинг синхронизации
Процесс синхронизации включает несколько стадий и может занять много времени. Он должен выявить изменения в обоих исходных каталогах. Кроме того, процесс синхронизации должен определить, какие изменения применять к каким объектам (то есть какие изменения должны быть записаны из Active Directory в пользовательский профиль и какие — из пользовательского профиля в Active Directory). Наконец, служба метакаталога должна обработать изменения, которые могут включать обновления, дополнения и удаления.
Существует два режима, в которых вы можете выполнять синхронизацию: полная и инкрементная. Полная синхронизация требуется, только если вы хотите выполнить полное обновление User Profile. Инкрементная синхронизация является более предпочтительным процессом, потому что идет обработка только тех объектов, которые были изменены в любом исходном каталоге со времени последней синхронизации. Во время процесса синхронизации любые новые объекты Active Directory, которые были найдены в сопоставляемых контейнерах и которые не исключены никакими фильтрами, добавляются в User Profile. Эти объекты добавляются с требуемыми сопоставляемыми атрибутами. Метакаталог использует атрибут objectSID для соединения с пользовательским объектом в Active Directory и User Profile. Даный атрибут используется для определения местоположения существующих User Profile для объектов Active Directory, которые были скорректированы или удалены.
Синхронизация может быть вызвана вручную, и вы можете установить расписание для запуска инкрементальной синхронизации тогда, когда сочтете нужным. Поскольку синхронизация — это ресурсоемкий процесс, рассмотрите вариант ее запуска вне рабочего времени.
Вы запускаете синхронизацию, используя пункт Start Profile Synchronization на странице User Profile Service Application. Во время запуска процесса можно контролировать его состояние в разделе Profile Synchronization Settings на правой стороне экрана. Данный раздел также позволяет останавливать процесс синхронизации и следить за тем, как он идет. Количество ступеней в процессе зависит от количества и типа соединений, настройки которых вы задали. Ход каждой стадии показан на странице, которая появится, когда вы выберете пункт Synchronization.
После завершения процесса синхронизации можно просмотреть все пользовательские профили, нажав пункт Manage User Profiles. Однако сразу вы ничего не увидите. Настройка просмотра выполнена по умолчанию. Для просмотра профилей нужно ввести строку фильтра и нажать кнопку Filter, чтобы были показаны записи, которые соответствуют строке. Хороший способ перечислить все записи — ввести имя домена своих объектов Active Directory в качестве строки. Ведь все записи User Profile будут иметь имя домена как значение в Account Name User Property.
С прицелом на будущее соединение
Процесс поддержания актуальной информации в User Profile будет проще при оптимальном использовании важного ресурса — сотрудников организации. Синхронизация с хранилищами, такими как Active Directory, — это лучший способ убедиться в том, что информация передается непротиворечиво по всему предприятию. В третьей статье цикла мы рассмотрим, как использовать информацию, содержащуюся в User Profile, для объединения сотрудников с помощью возможностей социальных сетей.
Кевин Лаахс (kevin.laahs@hp.com) — специалист по стратегическим технологиям в HP Enterprise Services