Синхронизация каталогов между Lotus Domino и Exchange server 2007

Сегодня я опишу процесс настройки синхронизации каталогов между Lotus Domino и Exchange server 2007 с помощью утилиты "Microsoft Transporter Suite". На первый взгляд в процессе настройки синхронизации ничего сложного нет, но, как показывает практика, любая кажущаяся простой задача может перейти в разряд непростых, если не соблюдены определенные условия.

Лаборатория.

Лаборатория состоит из трех серверов:

  • Windows server 2003 R2 Standard Edition SP2 - контролер домена. Никакие обновления не установлены. На нем работают сервисы DNS, WINS.
  • Windows server 2003 R2 Standard x64 Edition SP2 - почтовый сервер Exchange. Установлены все обновления на момент эксперимента для операционной системы. Развернут Exchange server 2007 SP2 + 4 Rollup.
  • Windows server 2003 Standard Edition SP2 - почтовый сервер Lotus Domino. Из обновлений установлен только KB932039. Развернут Lotus Domino Server, Release 7.0.3FP1

На почтовые сервера установлен клиент Lotus Notes 7, Release 7.0.3. Все сервера работают в одной виртуальной сети. Все сервера являются членами одного домена LABORATORY.NET

Шаг №1 - установка

Читаем документацию "Материалы по взаимодействию и переходу с Lotus Domino". Скачиваем "Microsoft Transporter Suite" и "заметки о выпуске". Углубляемся в изучение "Microsoft Transporter Suite for Lotus Domino".

На этом шаге обращаем внимание на зависимости, которые влияют на работу транспортера, описанные в главе "Installation Tasks". Обязательное условие, чтобы был установлен Lotus Notes client (preferably 7.0.2 or later). Если его не соблюсти, то Вы в будущем получите ошибки по типу этой:

Тип события:    Ошибка
Источник события: .NET Runtime 2.0 Error Reporting
Код события:    5000
Компьютер:    EXCHANGE
Описание:
EventType clr20r3, P1 dxa.exe, ...

Также эта ошибка может возникнуть, если файл notes.ini будет находится не в папке куда установлен клиент Lotus Notes. У меня он находится в "C:Program Files (x86)\lotus\notes\notes.ini"

Транспортер я решил установить на почтовый сервер Exchange. Честно сказать было лениво разворачивать машину администрирования. Запустил клиент Lotus Notes и выполнил настройку клиента под учетной записью администратора почтового сервера Lotus Domino.

Устанавливаем Microsoft Transporter Suite. Здесь все проходит без проблем.

Шаг №2 - конфигурирование

Запускаем консоль Transporter for Lotus Domino. Выбираем слева "Connect" и жмем на "Create Directory Connector". Здесь ничего сложного. Даже вводить не нужно никаких данных.

Коннектор создан. Открываем его свойства. Здесь видим четыре закладки.

На первой устанавливаем интервалы синхронизации, указываем глобальный каталог, сервер Domino и пароль для доступа к серверу Domino:

lotus-01

Вторая закладка для импорта контактов с сервера Domino. Для того, чтобы не было путаницы с контактами, лучше для них создать отдельное подразделение в Active Directory:

lotus-02

Третья закладка для импорта контактов из Active Directory на сервер Domino.

lotus-03

Обратите внимание, что SMTP домены у меня разные. Т.е. Exchange обслуживает домен laboratory.net, а Lotus Domino laboratory.ru

С четвертой закладкой еще проще. Нужно синхронизировать группы - ставьте галочку, нет - снимите. Также можно внести в список группы, которые синхронизировать не нужно.

Шаг №3 - синхронизация

И так, все установили, сконфигурировали, пора и запускать процесс синхронизации.

Жмем правой кнопкой и выбираем "Synchronize Now". Запускается помощник. Мне интересна полная синхронизация, чтобы контакты были видны у предполагаемых пользователей Exchange и Lotus. Выбираем "Full Sinchronization" и "Full two way…"

lotus-04

И так, здесь все, вроде бы, в порядке. Но контакты с сервера Domino почему-то не появились в Active Directory. Смотрим лог "Приложения". И наблюдаем ошибки:

Тип события:    Ошибка
Источник события:    ExchangeDominoConnector
Категория события:    Domino Directory Synchronization
Код события:    8307
Компьютер:    EXCHANGE

Тип события:    Ошибка
Источник события:    MSExchangeADDXA
Категория события:    LDAP Operations
Код события:    8270
Компьютер:    EXCHANGE

Тип события:    Ошибка
Источник события:    MSExchangeADDXA
Категория события:    LDAP Operations
Код события:    8021
Компьютер:    EXCHANGE

Все ошибки связаны с тем, что у Вас нет доступа на создание объектов в Active Directory:

LDAP Add on directory dc for entry 'cn=user/DOMINO,OU=_Domino,DC=laboratory,DC=net' was unsuccessful with error:[0x32] Недостаточные права.

Возникает вопрос. Почему нет доступа? Вы работаете на почтовом сервере с правами "Администратора", доступ к Lotus Domino с правами "Администратора" Lotus. Заглянем на сервере Exchange в "Службы". Ищем службу "Microsoft Exchange Directory Connector Service For Lotus Domino". Посмотрим, под какими правами она запускается. После установки служба запускается под правами системной учетной записи. Вот и причина наших ошибок. Меняем запуск службы с локальных данных на доменные:

lotus-05

Заодно установим тип запуска службы в "Авто".

Повторно запускаем синхронизацию и видим, как в Active Directory начинают появляться контакты с сервера Lotus Domino.

Заглянем на всякий случай в логи на сервере и увидим там информационное сообщение:

Тип события:    Уведомление
Источник события:    ExchangeDominoConnector
Категория события:    Exchange Domino Connector
Код события:    8201
Компьютер:    EXCHANGE
Описание:
Service ExchangeDominoConnector: Calling StartServiceCtrlDispatcher.

Заключение

На этом с описанием настройки синхронизации можно и закончить. Процесс синхронизации будет автоматически запускаться через указанные Вами промежутки времени в настройках коннектора.

И немного о безопасности. Я проводил эксперименты в лаборатории и с правами "Администратора", а это не совсем правильно. Более подробную информацию при желании Вы сможете прочитать в "Microsoft Transporter Suite for Lotus Domino".