Появилась задумка сделать в фирме корпоративный чат, для данной цели был выбран сервер OpenFire, но т.к. людей довольно много, а вбивать их всех в базу лень, то пришлось освоить процесс связи его с доменом (AD).

Все манипуляции будут проводиться на Linux Ubuntu Server 8.10. Домен крутиться на Windows 2003 Server.

Итак, качаем сам OpenFire с сайта разработчика — www.igniterealtime.org (на данный момент последняя версия – 3.6.4, но я буду работать с 3.6.3, т.к. лень качать новую) и устанавливаем его командой:

sudo dpkg -i openfire_3.6.3_all.deb

Предварительно придется скачать и поставит Java 5 или выше (см. Installation Guide)
Если все прошло успешно, то вы увидите строчку Starting openfire: openfire. Далее в терминале мы ни чего больше делать не будем, а перейдем непосредственно к конфигурированию OpenFire`a.

Здесь все предельно просто, все основные настройки делаются через web-интерфейс. Открываем любимый браузер и забиваем адрес hттp://192.168.1.4:9090/, где 192.168.1.4 – это IP машины, куда вы поставили OpenFire, который в свою очередь поднялся по умолчанию на порте 9090. Если все хорошо, то вы увидите приветственное окно с приглашением начать настройку сервера. Если окна вы не увидели, то можно попробовать перезапустить OpenFire командой

sudo /etc/init.d/openfire start

Итак, считаем, что у нас все установилось и приветственное окно открылось. Далее в первом окне выбираем язык, кому какой ближе. Давим на Continue и в окне Server Settings вписываем имя сервера, на который потом будут коннектиться пользователи, по умолчанию он совпадает с именем машины, но это не всегда удобно, лично я вписал имя chat и добавил соответствующую запись на dns сервер (чтобы не путать пользюков, т.к. на данной машине у меня еще много чего крутиться и её имя им ни о чем не скажет, …экономия, однако :) ).
На странице Database Settings я выбрал встроенную базу данных (Embedded Database), т.к. пользователей у меня не очень много и делать что-то на MySQL и т.п. не обязательно.

Далее начинается самое интересное, а именно – настройка того кто и как будет подключаться. Мы хотим связать наш OpenFire с AD, следовательно на странице Profile Settings выбираем пункт Directory Server (LDAP)
Далее проводим настройки подключения к серверу:

1. Server Type – Active Directiry;
2. Host – имя вашего контроллера домена, например serverdc;
3. Base DN – имя домена в виде dc=«firma»,dc=«local» соответственно для домена firma.local
4. Далее логин и пароль учетки, из под которой будут читаться данные из AD

Давим на кнопку Test Settings и если видим Status: Success! – значит все ОК, если нет, то проверяем выше введенные данные, особенно обращаем внимание на строчку Base DN в плане наличия пробелов, их там быть не должно!

В следующем окне оставляем все как есть и нажимаем кнопку Test Settings, если видим табличку с данными какой-нить доменной учетки (выбирается рандомно), то все хорошо, если нет, то возвращаемся и проверяем настройки подключения к AD. На данном этапе лично я ещё установил фильтр выбора данных из АД, для этого в Advanced Settings вместо (objectClass=organizationalPerson) вписываем следующее значение:

(objectClass=user)(objectCategory=person)(!(userAccountControl:1.2.840.113556.1.4.803:=2))

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

На 3-м шаге все вроде понятно и можно оставить как есть.
И наконец последнее – вписываем учетную запись из АД, которая будет использоваться для администрирования (можно несколько).
ВАЖНО! Если мы изменили имя нашего сервера, т.е. если имя машины server, а в настройках OpenFire`a – chat, то надо пользователей добавлять в виде admin@chat, а не просто admin.

Ну вот и все, основные настройки сделаны, сложно, как мы видим ни чего нет.

Логинимся на наш новый сервер, заходим в закладку Users/Groups и радуемся тому, как много народа у нас есть и теперь не нужно всех вбивать руками, чего и требовалось :). Осталось только сделать группы и включить в них пользователей, чтобы у все они были в ник-листе по умолчанию. Это совсем не сложно – идем в закладку Groups, находим нужную группу, открываем её, вписываем название, ставим галочку Share group with additional users, внизу наблюдаем список пользователей, которые в неё входят и сохраняем. Все, теперь эта группа будет по-умолчанию в ник-листе у всех пользователей.

Осталось выбрать клиента и настроить подключение.
Лично я предпочитаю Pandion, хотя слышал, что Spark круче, вроде как он дает возможность централизованно управлять настройками клиента с сервера, да и распространяется в виде msi пакета, что дает возможность устанавливать через АД, но это не проверенная информация…

Что касается Pandion`а — пишем в поле Адрес — логин пользователя в формате user@chat, где user – это имя пользователя из АД, а chat – это имя сервера в настройках OpenFire`a, остальные настройки подключения я оставил без изменений, если после нажатия Enter видим в открывшемся окне список ранее созданных групп, значит все хорошо и можно порадовать пользюков тем, что теперь у них есть свой внутрикорпоративный чат.

В качестве послесловия:

1. У OpenFire c недавнего, на сколько я знаю, многие плагины, входящие раньше в Enterprise версию, стали бесплатными. Из мне понравившихся хочется выделить MotD (Message of the Day) – сам говорит за себя, Monitoring Service и Client Control , после их установки в меню Server появляется вкладка Archiving, в которой можно просматривать всю переписку пользователей, что само по себе не очень хорошо, но очень интересно ;)

2. Для себя я настроил доступ к OpenFire в QIP Infun, таким образом получив ICQ и корпоративный чат в одном окне, слышал, что можно и так связать ICQ с OpenFire`ом через какой-то плагин, но не пробовал, если есть у кого-то инфа – поделитесь, плз.
Для того, чтобы QIP Infun работал с OpenFire`ом настройках в настройках Qip учетная запись->Jabber->Настроить->Дополнительно поставить галочку "Отключить аутентификацию SASL (старые сервера)" и все будет успешно коннектиться.

Ну вот и все, удачи!