Настройка openfire active directory: Подробный гайд по установке OpenFire в среде Active Directory / Песочница / Хабр
Подробный гайд по установке OpenFire в среде Active Directory / Песочница / Хабр
Установка OpenFire + MS AD + SQL server 2005 + Pandion 2.5 (auto NTLM):
Вводные данные:
Версия OS контроллера домена Active Directory: Windows 2008 Server Enterprise Edition SP2 x64 EN
Функциональный уровень леса и домена Active Directory: Windows 2008 Native
Версия OS: Windows 2003 Server R2 Enterprise Edition SP2 x86 EN
Версия OpenFire: 3.6.4
Версия SASL/SSPI патча от Normann: 7.2
Версия СУБД: SQL 2005 Server Standard Edition SP3 x86 EN
FQDN Active Directory домена: contora.local
NetBios-Name Active Directory домена: contora
FQDN сервера OpenFire: jabber.contora.local
Имя XMPP (Jabber) домена: jabber.contora.local
Используемый Jabber-клиент: Pandion 2.5
Версия Clarity Pandion патчей: датированы 19.02.2008
Редактор XML: AkelPad или Notepad ++
Браузер структуры Active Directory: Active Directory Explorer
Порядок установки сервиса IM:
1) Устанавливаем дистрибутив, отменяем немедленный запуск.
2) Устанавливаем сервис Openfire:
Start -> Run…- > «C:\Program Files\Openfire\bin\openfire-service.exe» /install
3) Создаем базу в MS SQL 2005:
Имя базы: openfire
Совместимость базы: 90 (MS SQL 2005)
Модель восстановления: Full
Расположение файлов базы: D:\Databases\openfire
4) Импортируем sql-схему в базу openfire:
a) В Management Studio открываем File -> New -> Database Engine Query
b) Нажимаем Connect
c) Выбираем файл схемы File -> Open ->File -> C:\Program Files\Openfire\resources\database\openfire-sqlserver.sql, OK
d) Нажимаем Parse, при успехе – Execute.
e) На ошибку длины индексов не обращаем внимания.
5) Включаем доступность SQL Server для входящих соединений:
a) В SQL Server Configuration Manager открываем SQL Server 2005 Network Configuration -> Protocols for -> TCP/IP -> IP Addresses
b) Во всех опциях TCP port устанавливаем 1433
c) Нажимаем OK.
d) Перезапускаем все сервисы SQL Server’а.
6) Создаем записи типа SRV на DNS-сервере для автоматического нахождения TCP/IP параметров сервера с доменом Jabber в текущем домене Active Directory:
SRV recond 1:
service: _xmpp
protocol: _tcp
priority: 0
weigth: 100
port: 5269
hostname: jabber.contora.local.
SRV recond 2:
service: _xmpp-server
protocol: _tcp
priority: 0
weigth: 100
port: 5269
hostname: jabber.contora.local.
SRV recond 3:
service: _xmpp-client
protocol: _tcp
priority: 0
weigth: 100
port: 5222
hostname: jabber.contora.local.
Проверяем корректность SRV-записей
Start -> Run… -> cmd -> nslookup -type=srv _xmpp-client ._tcp.contora.local
7) Заходим в админконсоль по 127.0.0.1:9090
7.1. В поле Domain водим имя домена Jabber – jabber. contora.local
7.2. Тип соединения с базой – внешняя — Standard Database Connection.
7.3. Database Driver Presets: Microsoft SQL Server
7.4. JDBC Driver Class: net.sourceforge.jtds.jdbc.Driver
7.5. Database URL: jdbc:jtds:sqlserver://jabber.contora.local:1433/openfire;appName=jive
7.6. Username: sa
7.7. Password: пароль для учетной записи sa.
7.8. Maximum Connection: 10000
7.9. Choose the user and group system to use with the server –> Directory Server (LDAP).
7.10. Server Type — > Active Directory.
7.11. Host -> sdc01.contora.local
7.12. Port -> 389
8) При конфигурировании доступа к LDAP устанавливаем следующие параметры:
Base DN: DC=contora,DC=local
Administrator DN: Administrator@contora, также вводим его пароль.
Нажимаем Test Settings должно появится Status – Success.
9) Настройка User Mapping (как и каких пользователей AD нужно найти):
а) Нажимаем Advanced Settings.
b) LDAP-фильтр пользователей User Filter: ((objectCategory=Person)(memberOf=CN=IMUsers,OU=Services Groups,OU=Head Office,DC=contora,DC=local)) — (искать только членов группы безопасности IMUsers).
c) В разделе User Profiles (vCard) отмечаем Store avatar in database if not provided by LDAP (хранить аватары пользователей в базе данных если не поддерживается в LDAP).
d) Нажимаем Test Settings должно появится окно с случайным пользователем этой группы безопасности Active Directory.
10) Настройка Group Mapping (члены какой группы безопасности будут клиентами Jabber):
a) Нажимаем Advanced Settings.
b ) Group Filter: (&(objectClass=group)(cn=IMUsers)) — (искать только группу безопасности IMusers).
c) Нажимаем Test Settings должно появится окно с названием найденной группы безопасности, с описанием и кол-вом членов.
11) Установка патча для автоматической NTLM авторизации клиентов OpenFire:
a) Распаковываем патч для NTLM.
b) Открываем из директории, куда мы уставили OpenFire файл \jre\lib\security\java.security для редактирования и после строк:
security.provider.8=sun.security.smartcardio.SunPCSC
security.provider.9=sun.security.mscapi.SunMSCAPI
вставляем строку
security.provider.10=net.za.darkskies.security.sasl.SSPIProvider
Сохраняем, закрываем.
c) Копируем файлы патча в каталог с установленной программой:
bin\SaslSspi.dll
lib\sasl-sspi.jar
plugins\saslmechanisms.jar
d) Перезапускаем OpenFire.
12) Включаем серверную поддержку прозрачной NTLM-аутентификации:
a) Заходим в консоль администрирования Server Manger > System Property и находим параметр sasl.realm. Значением параметра устанавливаем NETBIOS-NAME домена, то есть в нашем случае CONTORA(заглавными буквами). Если параметра нет – создаем новый.
b) Там же находим параметр sasl.approve.realms и СТИРАЕМ его значение, т. е. поле должно остаться пустым. Если параметра нет – создаем новый с пустым значением.
e) Параметр xmpp.domain вводим jabber.contora.local.
f) Параметр sasl.mechs — ANONYMOUS,PLAIN,NTLM. Если параметра нет – создаем новый.
13) Перезапускаем сервер — все должно работать.
14) Включаем пользователей в доменную группу IM Users.
15) Устанавливаем клиент Pandion 2.5 на КС.
Настройки Pandion по умолчанию для автоматического входа по NTLM:
Все настройки находятся в C:\Program Files\Pandion\settings\ в файлах с расширением *.XML.
После установки Pandion скопировать настройки в соответствующие файлы:
Разделы в brand.xml
(Указываем к какому Jabber домену присоединятся автоматически, используя NTLM-аутентификацию, вид авторизации и тип шифрования.
jabber.contora.local
jabber.contora.local
tls
ntlm
Разделы в servers.xml
Указываем, что в этом Jabber домене есть сервис конференций, и XMPP server (он же домен Jabber):
jabber. contora.local
9) Данные о файлах настройки Pandion
bookmarks.xml — Contains a list of conference rooms that are bookmarked by default for each user. Copied on profile creation to %APPDATA$/Pandion/Profiles/[user@server] in Windows XP /2003 and C:\Users\ikorzh\AppData\Roaming\Pandion \Profiles\[user@server] in Windows Vista/2008
brand.xml — Application configuration values that are loaded at runtime into external.globals.
default.xml — Standard settings for each user profile. Settings are stored per user in %APPDATA$/Pandion/Profiles/[user@server].
servers.xml — List of XMPP servers for the sign-up wizard and MUC services for conference room creation.
Установка сервера Openfire на Debian в домене AD2008 с прозрачной авторизацией пользователей
Здравствуйте!
Хочу поделиться опытом установки сервера Openfire на Debian в домене AD Windows Server 2008 с использованием SSO клиентом Spark.
Сама установка проста и занимает немного времени, основные сложности для меня возникли при настройке kerberos-авторизации всей связки ПО.
Инфраструктура:
Openfire 3.8.2 устанавливаем на Debian 7.0 «Wheezy» x64 с использованием СУБД MySQL.
Имя Debian-сервера: openfireserver.
Служба Active Directory развернута на Windows 2008 Server Standard (Kerberos использует шифрование RC4-HMAC-NT по умолчанию).
Домен realm.local.
Рабочие станции Windows XP Pro и Windows 7 Pro x32/x64 с установленным клиентом Spark 2.6.3.
Инсталляция по шагам (на Debian уже предустановлены MySQL, Samba, Sun/Oracle Java):
1) Логинимся под root-ом.
2) Проверяем предустановленный софт:
# cat /etc/issue
Debian GNU/Linux 7.0 \n \l
# smbd -V
Version 3.6.6
# mysql -V
mysql Ver 14.14 Distrib 5.5.31, for debian-linux-gnu (x86_64) using readline 6.2
# java -version
java version «1.7.0_21»
Java(TM) SE Runtime Environment (build 1.7.0_21-b11)
Java HotSpot(TM) 64-Bit Server VM (build 23.21-b01, mixed mode)
3) Создаем базу данных «openfire» и пользователя MySQL «openfire»:
# mysql -p
Enter password: [набираем пароль пользователя root в MySQL]
Welcome to the MySQL monitor. Commands end with; or \g.
Your MySQL connection id is 49
Server version: 5.5.31-0+wheezy1 (Debian)
Copyright 2000, 2013, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.
mysql> CREATE DATABASE openfire;
Query OK, 1 row affected (0.00 sec)
mysql> GRANT ALL PRIVILEGES ON openfire.* TO 'openfire'@'localhost' IDENTIFIED BY 'PasswordGoldFish' WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
mysql> exit
Bye
4) Загружаем и устанавливаем Openfire сервер.
# cd /tmp # wget http://www.igniterealtime.org/downloadServlet?filename=openfire/openfire_3.8.2_all.deb
100%[==================================>] 12 838 026 2,92M/s за 7,6s
2013-05-28 12:58:04 (1,62 MB/s) — «downloadServlet?filename=openfire%2Fopenfire_3. 8.2_all.deb» saved [12838026/12838026]
/tmp# cp downloadServlet\?filename\=openfire%2Fopenfire_3.8.1_all.deb openfire_3.8.2_all.deb /tmp# rm downloadServlet\?filename\=openfire%2Fopenfire_3.8.2_all.deb /tmp# dpkg -i openfire_3.8.2_all.deb
Warning: /var/lib/openfire
Starting openfire: openfire
# /etc/init.d/openfire stop
Stopping openfire: openfire.
Меняем владельца:
# chown -R openfire:openfire /var/lib/openfire # /etc/init.d/openfire start
Starting openfire: openfire.
5) Переходим в браузере по адресу (я использую Mozilla Firefox):
http://openfireserver:9090
Выбираем язык (русский перевод кривой, я оставил English)
Набираем Domain name: openfireserver.realm.local
Далее выбираем «Standard Database Conncection»
Выбираем Preset MySQL
Исправляем [hostname] на localhost и [database-name] на openfire
Набираем Username: openfire
Набираем Password: PasswordGoldFish
Нажимаем «Continue»
Настройка Profile, Step 1:
Выбираем «Directory Server (LDAP)»
Выбираем Server Type: Active Directory
Набираем Host: realm. local
Набираем Base DN: ou=Jabber,ou=Company_Users,dc=realm,dc=local
Набираем Administrator DN: cn=LDAP,cn=Users,dc=realm,dc=local
Набираем Password: Password_LDAP
Для этого шага я предварительно создал пользователя в AD с именем LDAP и вечным паролем: Password_LDAP
Сохраняем и продолжаем.
Шаги 2 и 3 сохраняем без изменений.
Добавляем администраторов Openfire, это могут быть любые пользователи из Base DN.
Просто набираем их логины и нажимаем «Add».
Если пользователи успешно добавились, жмем «Continue».
На этом установка Openfire закончена, можно зайти в консоль администратора.
Если зайти в раздел Users можно увидеть, что все пользователи из Base DN уже есть.
Все уже работает и пользователь могут авторизовываться обычным способом, но моя цель SSO (главная проблема — блокировка учетных записей в AD после смены пароля).
Для этого идем дальше…
6) Настраиваем Samba:
# nano /etc/samba/smb. conf
[global] workgroup = REALM realm =REALM.LOCAL security = ADS encrypt passwords = true dns proxy = no socket options = TCP_NODELAY kerberos method = secrets and keytab winbind refresh tickets = yes password server = realm.local domain master = no local master = no preferred master = no os level = 0 domain logons = no load printers = no show add printer wizard = no printcap name = /dev/null disable spoolss = yes
7) Настраиваем Kerberos:
# nano /etc/krb5.conf
[libdefaults] default_realm = REALM.LOCAL kdc_timesync = 1 forwardable = true proxiable = true default_tkt_enctypes = rc4-hmac des3-cbc-sha1 des-cbc-crc des-cbc-md5 default_tgs_enctypes = rc4-hmac des3-cbc-sha1 des-cbc-crc des-cbc-md5 permitted_enctypes = rc4-hmac des3-cbc-sha1 des-cbc-crc des-cbc-md5 [realms] REALM.LOCAL = { kdc = realm.local admin_server = realm. local default_domain = REALM.LOCAL } [domain_realm] .realm.local = REALM.LOCAL realm.local = REALM.LOCAL
8) Перезапускаем Samba
# /etc/init.d/samba restart
9) Присоединяем Debian сервер к AD:
# net ads join -U DomainAdminAccount -D REALM.LOCAL
или
# net rpc join -U DomainAdminAccount
10) Проверяем как присоединилось:
# net ads testjoin
Join is OK
# net rpc testjoin
Join to ‘REALM’ is OK
11) Проверка DNS:
# nslookup > openfireserver
Server: 192.168.1.1
Address: 192.168.1.1#53
Name: openfireserver.realm.local
Address: 192.168.1.22
> 192.168.1.22
Server: 192.168.1.1
Address: 192.168.1.1#53
22.1.168.192.in-addr.arpa name = openfireserver.realm.local.
> exit
Следующие пять шагов выполняем на контроллере домена Windows Server 2008:
12) Создаем в AD пользователя xmpp-openfire с вечным паролем и включенной опцией «Do not require Kerberos preauthentication» (Без предварительной проверки подлинности Kerberos).
13) Создаем SPN и связываем ее с пользователем xmpp-openfire:
Запускаем командную строку с привилегиями Администратора.
>setspn -A xmpp/[email protected] xmpp-openfire >ktpass -princ xmpp/[email protected] -mapuser [email protected] -pass * -ptype KRB5_NT_PRINCIPAL
Вводим пароль пользователя xmpp-openfire.
14) Если для генерации keytab-файла будем использовать JRE, тогда создаем файл C:\Windows\krb5.ini с содержимым:
[libdefaults] default_realm = REALM.LOCAL [realms] REALM.LOCAL = { kdc = realm.local admin_server = realm.local default_domain = REALM.LOCAL } [domain_realm] .realm.local = REALM.LOCAL realm.local = REALM.LOCAL
15) Создаем keytab-файл (должно быть установлено Sun/Oracle JRE6):
cd C:\Program Files (x86)\Java\jre6\bin> C:\Program Files (x86)\Java\jre6\bin>ktab -k xmpp.keytab -a xmpp/openfireserver. [email protected]
Вводим пароль пользователя xmpp-openfire.
Или можно воспользоваться другим способом, без JRE
>ktpass -princ xmpp/[email protected] -mapuser [email protected] -pass * -ptype KRB5_NT_PRINCIPAL -out xmpp.keytab
Вводим пароль пользователя xmpp-openfire.
16) Проверяем созданный keytab-файл (нужно JRE):
C:\Program Files (x86)\Java\jre6\bin>kinit -k -t xmpp.keytab xmpp/[email protected]
17) Переносим проверенный файл xmpp.keytab на Debian сервер в /usr/share/openfire/resources
Меняем владельца:
# chown openfire:openfire xmpp.keytab
18) Проверяем файл xmpp.keytab на Debian сервере:
# kinit -V -k -t /usr/share/openfire/resources/xmpp.keytab xmpp/[email protected]
19) Создаем на Debian сервере файл \etc\openfire\gss.conf с содержимым:
com.sun.security.jgss.accept { com.sun. security.auth.module.Krb5LoginModule required storeKey=true keyTab="/usr/share/openfire/resources/xmpp.keytab" doNotPrompt=true useKeyTab=true realm="REALM.LOCAL" principal="xmpp/[email protected]" isInitiator=false debug=true; };
20) Заходим браузером в консоль администратора Openfire и в разделе System properties добавляем параметры:
sasl.gssapi.config = /etc/openfire/gss.conf
sasl.gssapi.debug = false
sasl.gssapi.useSubjectCredsOnly = false
sasl.mechs = GSSAPI
sasl.realm = REALM.LOCAL
xmpp.fqdn = openfireserver.realm.local
21) Перезапуск Openfire
# /etc/init.d/openfire restart
22) Устанавливаем на рабочие станции Jabber-клиента Spark 2.6.3 with JRE.
23) Правим реестр:
В раздел
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa\Kerberos\Parameters
(For XP: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa\Kerberos)
добавляем параметр типа DWORD
AllowTGTSessionKey со значением 1.
24) Создаем в C:\Windows файл kbd5.ini с содержимым:
[libdefaults] default_realm = REALM.LOCAL default_tkt_enctypes = rc4-hmac default_tgs_enctypes = rc4-hmac [realms] REALM.LOCAL = { kdc = realm.local admin_server = realm.local default_domain = REALM.LOCAL } [domain_realm] .realm.local = REALM.LOCAL realm.local = REALM.LOCAL
25) Перезагружаем рабочую станцию.
26) В Spark выбираем опцию «Use Single Sign-On (SSO) via GSSAPI», набираем openfireserver в поле «Сервер» и подключаемся.
В Windows XP нет проблем, но в Windows 7 SSO в Spark работает из коробки только с непривилегированными пользователями.
Если вы работаете под учетной записью администратора — запускайте Spark от имени Администратора или отключите UAC.
Удачи!
По мере освоения продукта следует продолжение…
Openfire на связь с Active Directory
Прочитано:
3 410
Задача: настроить OpenFire на связь с AD с последующей прозрачной регистрацией клиентов
Итак, как выдались свободные минуты я решил, что пора задокумментировать, как настроить связку сервиса OpenFire и Active Directory чтобы не создавать учетные записи, а брать их из сервиса где и так все пользователи локальной сети имеют место быть. Да и контролировать удобнее, к примеру уволился человек и помимо блокировки доменной учетной записи блокируется доступ и к общему чату компании. Плюс можно мониторить переписку сотрудников, конфиденциально обсуждать технические вопросы не выводя переписку сторонним сервисам.
Мои характеристики системы на которых я тестируя связь сервиса OpenFire и Active Directory: CPU 2, RAM 2, HDD 50
Пожалуй начну свое документирование действий которыми я достиг практической части:
ekzorchik@srv-trusty:~$ sudo rm -Rf /var/lib/apt/lists
ekzorchik@srv-trusty:~$ sudo apt-get update && sudo apt-get upgrade -y
ekzorchik@srv-trusty:~$ sudo apt-get install linux-generic-lts-xenial linux-image-generic-lts-xenial -y
ekzorchik@srv-trusty:~$ sudo nano /etc/hosts
10.10.10.12 srv-trusty.polygon.local srv-trusty
10. 10.10.2 srv-dc.polygon.local srv-dc
ekzorchik@srv-trusty:~$ sudo nano /etc/hostname
srv-trusty.polygon.local
ekzorchik@srv-trusty:~$ sudo service hostname start
ekzorchik@srv-trusty:~$ sudo reboot
ekzorchik@srv-trusty:~$ uname -a
Linux srv-trusty.polygon.local 4.4.0-83-generic #106~14.04.1-Ubuntu SMP Mon Jun 26 18:10:19 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
ekzorchik@srv-host:~$ sudo tasksel install lamp-server
New password for the MySQL "root" user:712mbddr@
Repeat password for the MySQL "root" user:712mbddr@
Как всегда создаю пользователя, пароль и базу для работы сервиса OpenFire:
ekzorchik@srv-trusty:~$ mysql -u root -p712mbddr@ -e "create database db_openfire"
ekzorchik@srv-trusty:~$ mysql -u root -p712mbddr@ -e "create user 'openfire'@'localhost' identified by '612mbddr@'"
ekzorchik@srv-trusty:~$ mysql -u root -p712mbddr@ -e "grant all on db_openfire. * to 'openfire'@'localhost'"
ekzorchik@srv-host:~$ sudo apt-get install openjdk-7-jre openjdk-7-jdk -y
ekzorchik@srv-trusty:~$ java -version
java version "1.7.0_131"
OpenJDK Runtime Environment (IcedTea 2.6.9) (7u131-2.6.9-0ubuntu0.14.04.2)
OpenJDK 64-Bit Server VM (build 24.131-b00, mixed mode)
Теперь скачиваю с официального сайта самую последнюю версию пакета для организации корпоративного чата:
ekzorchik@srv-trusty:~$ wget -c https://www.igniterealtime.org/downloadServlet?filename=openfire/openfire_4.1.5_all.deb
ekzorchik@srv-trusty:~$ sudo mv downloadServlet\?filename\=openfire%2Fopenfire_4.1.5_all.deb openfire_4.1.5_all.deb
ekzorchik@srv-trusty:~$ file openfire_4.1.5_all.deb
openfire_4.1.5_all.deb: Debian binary package (format 2. C
→ нажимаю сочетание клавиш для выхода, т. е. Ctrl + C
ekzorchik@srv-trusty:~$ sudo nano -Y sh /etc/krb5.conf
[libdefaults]
default_realm = POLYGON.LOCAL
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetieme = 24h
kdc_timesync = 1
ccache_type = 4
forwardable = yes
rdns = no
default_keytab_name = /etc/openfire/openfire.keytab
default_tgs_enctypes = des-cbc-crc rc4-hmac des-cbc-md5
default_tkt_enctypes = des-cbc-crc rc4-hmac des-cbc-md5
permitted_enctypes = des-cbc-crc rc4-hmac des-cbc-md5
clock_skew = 300
[realms]
POLYGON.LOCAL = {
kdc = srv-dc.polygon.local
admin_server = srv-dc. polygon.local
default_domain = POLYGON.LOCAL
}
[domain_realm]
.polygon.local = POLYGON.LOCAL
polygon.local = POLYGON.LOCAL
Затем в аплете DNS домена polygon.local создаю DNS записи текущей системы, а записи вида A и вида PTR в соответствующей для этого зоне.
После в оснастке Active Directory Users and Computers домен контроллера нужно создать специализированного пользователя ответственного за связь Ubuntu системы с контроллером домена. Итак это учетная запись: openfire с паролем Aa1234567. После создаю keytab файл, копирую его через winscp на Ubuntu и перезапускаю krb5:
C:\Windows\system32>mkdir c:\keytab
C:\Windows\system32>ktpass -princ HTTP/srv-trusty. [email protected] -mapuser openfire -pass Aa1234567 -ptype KRB5_NT_PRINCIPAL -crypto ALL -out c:\keytab\openfire.keytab
ekzorchik@srv-trusty:~$ sudo mv openfire.keytab /etc/openfire/
ekzorchik@srv-trusty:~$ sudo chmod 640 /etc/openfire/openfire.keytab
ekzorchik@srv-trusty:~$ sudo chown -R openfire:openfire /etc/openfire
ekzorchik@srv-trusty:~$ sudo kinit -kV -p HTTP/srv-trusty.polygon.local
Using default cache: /tmp/krb5cc_0
Using principal: HTTP/[email protected]
Authenticated to Kerberos v5
ekzorchik@srv-trusty:~$ sudo klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: HTTP/[email protected]
Valid starting Expires Service principal
07/14/2017 09:30:45 07/14/2017 19:30:45 krbtgt/POLYGON. [email protected]
renew until 07/15/2017 09:30:45
Теперь перехожу к установке сервера OpenFire:
http://IP&DNS:9090
Setup Progress — Choose Language (English) и нажимаю Continue
Server Settings:
XMPP Domain Name: srv-trusty.polygon.local
Server Host Name (FQDN): srv-trusty.polygon.local
Admin Console Port: 9090
Secure Admin Console Port: 9091
Property Encryption via: Blowfish
и нажимаю Continue
Database Settings: выбираю Standard Database Connection и нажимаю Continue
заполняю параметры соединения с внешней базой
Database Driver Presets: MySQL
JDBC Driver Class: com. mysql.jdbc.Driver
Database URL: jdbc:mysql://localhost:3306/db_openfire?rewriteBatchedStatements=true
Username: openfire
Password: 612mbddr@
и нажимаю Continue
Теперь вместо дефолтного месторасположения хранения в базе аутентификационных данных я указываю что данные брать из Directory Server (LDAP) и нажимаю Continue, следом запускается мастер настройки подключения к LDAP серверу который в моем случае это Active Directory текущего домена на базе Windows Server 2012 R2 Std
Шаг №1: Connection Settings
Server Type: (Тип Сервера) Active Directory
Host: (Хост) srv-dc.polygon.local
Port: (Порт) 389
Base DN: (База DN) DC=polygon,DC=local
Authentication: (Аутентификация)
Administrator DN: (Администратор DN) [email protected] (Пользователи домена)
Password: (Пароль) Aa1234567
Нажимаю Test Settings (Настройка теста), если Вы видите в появившемся окне:
Test: Connection Settings (Настройка соединений)
Status: Error
Unknown host address
, то просто вместо имени контроллера домена укажите его IP адрес Host: 10.10.10.2 (либо в файле /etc/hosts вы не прописали и адрес сервера где работает DNS), тогда в появившемся окне будет положительный результат:
Test: Connection Settings
Status: Success! (Успех)
A connection was successfully established to the LDAP server using the settings above. Close this test panel and continue to the next step.
У меня же так хорошо сделано, что вводить IP адрес нет нужды все подхватилось и по DNS имени.
Следом нажимаю Save & Continue (Сохранять & Продолжить) для применения настроек.
Шаг №2: User Mapping:
Username Field: samaccountname
Advanced Settings:
User Filter: (objectClass=user)(objectCategory=person)(!(userAccountControl:1.2.840.113556.1.4.803:=2))
Нажимаю Test Settings, а после Save & Continue
Шаг №3: Group Mapping:
Group Field: cn
Member Field: member
Description Field: description
Advanced Settings:
Posix Mode: No
Group Filter: (objectCategory=Person)
Нажимаю Test Settings, а после Save & Continue
На следующем шаге Administrator Account ввожу именование учетной записи с полномочиями Администратора:
Add Administrator: ввожу openfire (ту которую создали в AD), нажимаю Add, а после Continue.
Если все прошло успешно, то вы увидите надпись вида:
Setup Complete!
Нажимаю Login to the admin console и авторизуюсь:
http://IP&DNS:9090/login.jsp
Username: ekzorchik
Password: 712mbddr@ (точно такой же пароль и на доменную учетную запись)
и я успешно авторизовался
После проверяю, а вижу ли я учетные записи Active Directory:
http://IP&DNS:9090/index.jsp — Пользователи/Группы (Users/Groups) — Пользователи (Users) — Все пользователи (User Summary) и вижу все учетные записи моего домена:
Отлично что и задумывалось, а если перейти в группы (Groups) то также вижу, что представлены все доменные группы моего домена:
После делаю некоторые настройки с сервером openfire в панели администрирования.
Server — Server Manager — Language and Time → Choose Language = Русский (ru_RU) и нажимаю Save Settings
Сервер — Настройки сервера — Регистрация и вход
Регистрация учетной записи: Выключено
Изменение пароль: Включено
Анонимный вход: Выключено
После запускаю клиент Spark и настраиваю (нажимаю Advanced) подключение к серверу Openfire с использование доменной учетной записи:
Вкладка General
Automatically discover host and port: снимаю галочку
Host: srv-trusty.polygon.local
Port: 5222
Use hostname as resource: отмечаю галочкой
Accept all certificates (self-signed/expired/not trusted): отмечаю галочкой
Disable cerfificate hostname verification (not recommended): отмечаю галочкой
После нажимаю OK для выхода из окна Advanced connection preferences и указываю параметры аутентификации, точнее они будут доменными:
Username: alektest
Password: Aa1234567
Domain: polygon.local
Save password: отмечаю галочкой
Auto login: отмечаю галочкой
и подключаюсь нажатием кнопки Login. И вот я подключен
Если выйти из клиента и запустить его снова, то благодаря параметру Auto Login авторизация клиента происходит само. Работает все что выше проверено. На этом у меня всё, до новых заметок, с уважением автор блога Олло Александр aka ekzorchik.
Заметки IT-шника
1. Подготовка.
В оснастке Active Directory – пользователи и компьютеры создадим подразделение (к примеру, название вашей компании, я же его назвал Company), а уже в этом подразделении создадим подразделение, в котором будут храниться пользователи (можно использовать и существующую вкладку Users, но мне кажется не очень удобным, поскольку там содержится куча групп, которые нам в чате не нужны), назовем его Users.
Необходимо в созданном подразделении Users создать пользователя в качестве администратора Openfire. Я создал пользователя с именем openfire, ни в какие группы его добавлять не нужно, этот пользователь создается только в качестве администратора Openfire, вход в систему под ним осуществляться не будет. Только поставьте галочку в пункте “Срок действия пароля не ограничен”. А так же сразу создадим группу в которую будут входить все пользователи, я назвал ее All.
2. Установка Openfire.
Установите Openfire, снимите галочку запуска его после установки. Откройте папку с установленным Openfire, перейдите в папку bin и откройте здесь командную строку. Установим службу Openfire командой openfire-service.exe -install
Откройте Службы и убедитесь, что служба Openfire запущена.
Откройте браузер и перейдите по адресу 127.0.0.1:9090.
1. Выбор языка.
Я бы вам советовал оставить английский язык, т.к. русский язык переведен машинно.
2. Настройки сервера.
В поле Domain у вас сразу должно быть указано имя сервера, но я бы рекомендовал указать FQDN сервера, в моем случае это server.company.lan. Номера портов оставляем как есть.
3. Настройка базы данных.
Здесь необходимо выбрать встроенную базу данных (Embedded Database).
4. Настройки профиля.
Здесь необходимо выбрать LDAP.
5. Настройки профиля. Шаг 1 — Настройка подключения.
В поле Тип сервера (Server Type) выбрать Active Directory.
В поле Хост (Host) указать FQDN вашего сервера, в моем случае этоserver.company.lan.
Номер порта оставляем неизменным.
В поле База DN (Base DN) необходимо указать путь, где у нас в AD хранятся пользователи. У меня пользователи хранятся в подразделении Users, которая, находится в подразделении Company, а мой домен company.lan, поэтому моя запись Base DN имеет следующий вид:OU=Users,OU=Company,DC=company,DC=lan.
В поле Администратор DN (Administrator DN) необходимо указать администратора контроллера домена, в моем случае это встроенная учетная запись Администратор, а имя моего домена company.lan, поэтому запись имеет вид: Администратор@company.lan.
В поле Пароль (Password) необходимо ввести пароль администратора контроллера домена.
Теперь необходимо выбрать Тест настроек (Test Settings) и если тест успешен, выбрать Сохранить и продолжить (Save & Continue). Если же тест был не успешен, проверьте правильность заполнения всех полей.
6. Настройки профиля. Шаг 2 – Отображение пользователей.
Здесь ничего изменять не нужно. Выберете Тест настроек (Test Settings) и если тест успешен, выбрать Сохранить и продолжить (Save & Continue).
7. Настройки профиля. Шаг 3 – Отображение групп.
Здесь ничего изменять не нужно. Выберете Тест настроек (Test Settings) и если тест успешен, выбрать Сохранить и продолжить (Save & Continue).
8. Аккаунт администратора.
Здесь необходимо указать имя пользователя, которого мы создали в качестве администратора Openfire, в моем случае это пользователь openfire. Необходимо, чтобы эта учетная запись находилась в подразделении, которое мы описывали в базе DN (Base DN), иначе Openfire ее попросту не увидит. Добавляем пользователя и кликаем продолжить.
На этом установка завершена. Теперь вам предложат войти в консоль администратора, используя логин и пароль администратора Openfire.
3. Настройка NTLM.
В папке с установленным Openfire перейдите по пути \jre\lib\security и откройте с помощью блокнота (я бы советовал использовать Notepad++, т.к. стандартный блокнот не переносит все нормально по строкам, и вам будет сложно с помощью его редактировать данный файл) файл java.security. И после строк:
security.provider.8=sun.security.smartcardio.SunPCSC
security.provider.9=sun.security.mscapi.SunMSCAPI
добавьте строку:
security.provider.10=net.za.darkskies.security.sasl.SSPIProvider
и сохраните изменения в файле.
Далее необходимо поставить NTLM патч, для этого просто скопируйте все три файла архива по такому же пути в папку с установленным Openfire.
Зайдем в веб-консоль Openfire и перейдем Server -> Server Manager -> System Properties. Спустимся в самый низ, до пункта Add new property и добавим следующие настройки. Там две строчки, первая Property Name (имя правила) и вторая Property Value (значение). Добавьте четыре настройки, согласно приведенной таблице.
Property Name | Property Value |
sasl.approved.realms | Поле значений оставьте пустым |
sasl.mechs | ANONYMOUS,PLAIN,NTLM |
sasl.realm | NetBIOS имя домена, у меня имя домена company.lan, соответственно NetBIOS имя домена будет COMPANY |
xmpp.fqdn | FQDN имя сервера, на котором установлен Openfire, в моем случае этоserver.company.lan |
4. Отображение списка пользователей.
В веб-консоли Openfire перейдем Users/Groups -> Groups -> Group Summary. И кликнем на созданную группу, у меня это группа All. Поставим галочку напротивShare group with additional users и выберем All users, в строке Enter contact list group name необходимо указать имя группы с которым она будет отображаться в Pandion, я назвал ее Company (в этой группе будут содержаться все сотрудники, в дальнейшем вы можете создать группы с именами отделов и включить в них только сотрудников данного отдела), сохраним изменения.
После всех настроек Openfire – перезапустите его службу.
5. Настройка Pandion.
Хотелось бы, чтобы у любого пользователя домена при входе в систему запускался Pandion, не спрашивая ни каких настроек, логинов, паролей. Для этого установим Pandion прямо на нашем сервере. После установки перейдем в папку, куда установлен Pandion и в папке settings с помощью блокнота откроем файл brand. Найдем строку <sspiserver></sspiserver> и в ней укажем FQDN своего сервера, в моем случае это выглядит так: <sspiserver>server.company.lan</sspiserver>. Спускаемся в самый низ файла, в строке <serveraddress></serveraddress> так же указываем FQDN вашего сервера, у меня<serveraddress>server.company.lan</serveraddress>. В строке <serverport></serverport> необходимо указать номер порта, номер необходимого нам порта 5222, тогда строка будет иметь следующий вид <serverport>5222</serverport>. Строку <encryption>optional</encryption> оставить без изменения, а в строке<authentication>normal</authentication> слово normal на ntlm. А так же отключим обновление и окно приветствия, для этого найдем строки:
<installupdates>yes</installupdates>
<welcomescreen>yes</welcomescreen>
и параметр yes заменим на no.
Сохраните изменение в файле.
6. Разлитие Pandion на локальные машины.
Скопируем всю папку программы Pandion в общую папку на сервере. У меня есть папка SOFT доступна группе пользователей Пользователи домена только для чтения, вот туда я ее и скопирую. Осталось разливать Pandion при первом входе пользователя в систему, для этого напишем небольшой бат файл. Содержимое моего бат файла:
if not exist %homepath%\AppData\Pandion\Application\pandion.exe xcopy \\server\soft\Pandion %homepath%\AppData\Pandion\ /S /E
start %homepath%\AppData\Pandion\Application\pandion.exe
Для хранения пандиона на клиентских машинах я выбрал папку AppData в их домашнем каталоге, т.к. она по умолчанию является скрытой и простой пользователь там лазить не будет. Первая строка моего бат файла проверяет наличие файла pandion.exe в каталоге %homepath%\AppData\Pandion\Application\, если такого не существует, то с сервера копируется папка с пандионом по указанному раннее пути. \\server\soft\Pandion — сетевой путь к папке пандиона на моем сервере, замените его на свой. Вторая строка запускает сам пандион. Сохраним свой бат файл.
Откроем Пуск -> Администрирование -> Управление групповой политикой, далее развернем вкладку Лес, Домены и развернем свой домен. На вкладкеDefault Domain Policy кликнем правой кнопкой мыши Изменить. Далее перейдем Конфигурация пользователя -> Политики -> Конфигурации Windows -> Сценарии (вход/выход из системы) откроем Вход в систему. Далее Сценарии -> Добавить укажем имя сценария (я указал Pandion), кликнем обзор, и в открывшиеся окно перетянем наш бат файл, выберем его, и кликнем Открыть.
7. Проверка.
Собственно проверка, пришел на работу новый сотрудник, по имени Вася Пупкин, ему создам учетную запись в домене. В оснастке Active Directory – пользователи и компьютеры перейдем в наше созданное подразделение Company -> Users и создадим пользователя и зададим ему пароль. А так же добавим нашу созданную группу, у меня это Company.
Нашему пользователю выделили компьютер, он вводит свой логин и пароль для входа в систему.
И ему копируется Pandion и автоматически авторизуется. Вася может общаться с коллегами =).
Если у вас Pandion не может авторизоваться, и вы уверены, что выполнили все правильно, проверьте брандмауэр на вашем сервере.
Установка OpenFire (Jabber-сервер) в Debian 7. Авторизация через Active Directory (LDAP)
В качестве корпоративной «аськи» мы долгое время использовали Bimoid. Отличное решение, красивый клиент (автор проекта бывший разработчик QIP), стабильная работа. За два года применения продукта проблем не возникало. Не возникло бы и сейчас, если мы не решились на тотальную оптимизацию. В этом ключе Bimoid перестал нам подходить. Почему? Попробую объяснить по пунктам.
Почему решили отказаться от Bimoid
Начну с наболевшего — отсутствие интеграции с Active Directory. У нас не сильно большая компания, но держать в актуальном состоянии информацию даже о 100 юзерах напряжно. Люди приходят и уходят, а аккаунты должны быть в актуальном состоянии. Тем более в компании уже развернут AD и было здорово использовать эту базу для всевозможных программа, требующих базу пользователей. Bimoid пока не имеет поддержки LDAP/AD и со временем отсутствие этой функции стало нас сильно раздражать.
Следующим существенным минусом мы отметили отсутствие серверной части под Linux. Мы стараемся максимально разграничивать роли серверов и выделять отдельную лицензию на MS Windows ради корп. чата как-то не хочется. Вот мы подумали-подумали и решили внести небольшие изменения в корпоративную среду. Прогуглив тему, решили развернуть корпоративный jabber-сервер. Из всех найденных вариантов нам больше все приглянулся OpenFire. Вот сейчас мы и посмотрим как установить OpenFire в корпоративной среде.
Установка OpenFire в Debian 7
Первым делом отправляемся на официальный сайт и скачиваем последнюю версию OpenFire. Сохраняем deb пакет и запускаем установку:
dpkg -i downloadServlet?filename=openfire%2Fopenfire_3.9.3_all.deb
Результатом должно быть:
Setting up openfire (3.9.3) ... best java alternative in: /usr/lib/jvm/java-7-openjdk-amd64/jre Starting openfire: openfire.
Далее открываем браузер и вбиваем адрес хоста на котором запустили установку OpenFire. В качестве порта указываем 9090:
http://hostname:9090
Перед нами откроется мастер установки. В первом окне нас попросят выбрать язык. Несмотря на наличие варианта «Русский», я рекомендую выбрать «English». Как показала практика, качество перевода интерфейса на русский местами сильно хромает. Выбираем и нажимаем «Continue».
Здесь нас просят ввести имя хоста, а также указать ключ шифрования. Заполняем и нажимаем «Continue». Заодно запоминаем номер портов по которому будет доступна консоль управления.
Теперь нам требуется определиться с базой данных в которой OpenFire будет хранить все необходимые для работы данные. Нам доступно два варианта:
- Standart Database Connection – внешняя СУБД. OpenFire умеет работать со всеми популярными (MS SQL, MySQL, Oracle, PostgreSQL) базами данных.
- Embedded Database – локальная база данных HSQLDB. В этом случае OpenFire будет использовать свою БД и вам не придется самостоятельно устанавливать MySQL или любую другую БД.
У нас уже MySQL установлен, поэтому выбираем первый вариант: “Standart Databae Connection”. Жмем «Continue».
В разделе «Database Settings – Standart Connection» нам требуется ввести настройки для подключения к СУБД. У меня в качестве БД используется MySQL, соответственно в качестве JDBC Driver Class я выбираю com.mysql.jdbc.Driver. Строка соединения в итоге получилась такой:
jdbc:mysql://localhost:3306/openfire?rewriteBatchedStatements=true
Важно! Нигде не говорится на счет отсутствия БД. Изначально я думал, что OpenFire создаст ее самостоятельно, но я ошибался. Постоянно возникала ошибка, поэтому пришлось самостоятельно создать нового пользователя и базу. После этого OpenFire успешно соединялся с СУБД и пропустил меня к следующему шагу “Profile Settings”.
На предпоследнем шаге на предлагают варианты интеграции с внешними системами хранения информации о пользователях и группах. Доступно три варианта:
- Default. Вариант по умолчанию. Группы и пользователи будут храниться в OpenFire. Такой вариант подойдет если в компании отсутствуют централизованные хранилища информации о пользователях/группах.
- Directory Server (LDAP). Интеграция по протоколу LDAP. Если в компании развернута ActiveDirectory, то это оптимальный вариант. Все учетные записи пользователей будут подтягиваться из AD.
- Clearspace Integration. Интеграция с Clearspace. Если честно, то с данным продуктом я никогда не сталкивался, поэтому прокомментировать не смогу.
У меня в организации давно уже развернут Active Directory, поэтому мне интересней выбрать второй вариант – Directory Server (LDAP). Выбираю, нажимаю “Continue”.
Если вы, как и я выбрали «Directory Server (LDAP)», то вам необходимо указать настройки для соединения с сервером LDAP. Заполняем по порядку:
- Server Type. Тип сервера. В моем случае Active Directory.
- Host. Адрес сервера. Можно указать ip, а можно доменное имя.
- Port. Номер порта. Для Active Directory оставляем по умолчанию – 389.
- Base DN. Определяем место в каталоге с учетными записями. У меня все записи хранится в отдельном OU (Organization Unit), поэтому запроса будет такой:
OU=Офис,DC=company,DC=local
Подробней про именования объектов вы можете почитать в Wikipedia.
Определяем соответствия полей между пользователями AD и OpenFire. Я здесь ничего не изменяю. Жмем “Continue”.
Настройка соответствия групп. Тоже ничего не меняем. Жмем “Continue”.
Остался последний шаг – выбрать пользователей, которые будут обладать административными правами. Вводим имена (без доменной части) и нажимаем Add. Если вылетает ошибка и пользователь не находится, то возвращаемся к настройками соединения с Active Directory.
Жмем “Continue” и попадает в долгожданный экран Setup Complete. Остается только нажать на кнопку «Login to the admin cosole» и ввести данные от своей учетной записи. Установка OpenFire завершена.
Openfire — настройка Часть 2
Openfire — XMPP-сервер, являющийся кроссплатформенным программным обеспечением. Jabber сервер написан на Java (раньше было название Wildfire) под управлением Jetty. Данный продукт разрабатывается и поддерживается с 2002 года.
Администрируется сервер с помощью удобной веб-панели, поддерживает плагины, которые также написаны на Java (плагины могут быть загружены через веб-интерфейс или непосредственно плагин копируется в папку для плагинов сервера Openfire и тогда происходит автоматическая установка плагина). Имеется поддержка WEB-клиента, кластеризация (возможно сделать несколько серверов для работы с распределенной базой данных, таким образом поддерживается работа несколько десятков тыс. одновременных пользователей. Имеется поддержка шифрования (поддержка SSL/TLS). Для хранения профилей пользователей Openfire работает с базами данных, прежде всего встраиваемая база данных HSQLDB, но рекомендуется использовать полноценную СУБД — это MySQL, PostgreSQL, а также Microsoft SQL Server, IBM DB2, Adaptive Server Enterprise. Имеется интеграция с LDAP.
Работает сервер Openfire c различными клиентами, прежде всего это Spark, также Miranda IM, Pandion, Trillian Pro, Psi, Pidgin, QIP Infum и др.
Произведем настройку сервера openfire.
Увеличиваем количество оперативной памяти, которую использует сервер Openfire и установим и запустим службу openfire.
1. По умолчанию сервер openfire использует до 256 МБ памяти и запускать сервер надо вручную. Исправим это. Создаём в директории с установленным openfire — bin\ (С:\Program Files (x86)\Openfire\bin\ три файла:
openfire.vmoptions — загрузка сервера с помощью файла openfire.exe, т.е. с графической оболочкой
openfired.vmoptions — загрузка сервера с помощью файла openfired.exe, т.е. без графической оболочки, консольно-командной строкой
openfire-service.vmoptions — загрузка сервера с помощью службы
В каждом файле следующие настройки, указывающие на минимальное и максимальное значение памяти:
-Xms512m
-Xmx1024m
2. Установим и запустим службу openfire, для этого запускаем командную строку с административными правами и выполняем команды:
cd «C:\Program Files(x86)\Openfire\bin»
openfire-service /install
openfire-service /start
3. Открываем консоль администратора сервера openfire и осуществляем вход на сервер (вводим имя пользователя и пароль). Проверяем новые настройки по добавлению памяти Java:
Следующим шагом создадим группы для работы с сервером openfire и добавим пользоателей домена в созданные группы.
1. Для этого открываем Active Directory — пользователи и компьютеры и создаем группы openfire1 и openfire2:
2. Добавляем в группы доменных пользователей:
3. Зададим имена и возможность взаимодействия (видимости) групп на сервере openfire. Для этого на вкладке «Пользователи/Группы» заходим в «Группы» и в группах openfire1 и openfire2 задаем следующие настройки:
Вводим имя списка контактов группы (например Department1 для группы openfire1) и ставим чексбокс напротив «Расшаренная группа пользователей», далее «Сохранить список настроек контактов. Такие настройки производим и для группы openfire2
Таким образом, при добавлении пользователи в группу в Active Directory данный пользователь будет попадать в соответствующую группу на сервере openfire автоматически.
Также что и как настраивать можно посмотреть здесь:
Читайте также:
Openfire - установка Часть 1
Openfire - настройка кэша Часть 3
Spark установка и настройка Часть 4
Openfire установка плагинов Часть 5
Openfire: Руководство по LDAP
Введение
В этом документе подробно описано, как настроить установку Openfire для использования
внешний каталог, например Open LDAP или Active Directory. Интеграция с каталогом
позволяет пользователям аутентифицироваться, используя свое имя пользователя и пароль каталога. По желанию вы можете
настроить Openfire для загрузки профиля пользователя и информации о группе из каталога. Любая группа в
Openfire можно обозначить как общую группу, что означает, что вы можете предварительно заполнить
реестры с использованием каталоговых групп.
Фон
LDAP (облегченный протокол доступа к каталогам) стал доминирующим стандартом.
для аутентификации пользователя и для хранения данных профиля пользователя. Он служит
мощный инструмент для крупных организаций (или организаций, объединяющих множество
приложения), чтобы упростить управление пользователями. Доступно множество серверов LDAP,
например, Open LDAP,
Active Directory,
и Novell eDirectory.
По умолчанию Openfire хранит все пользовательские данные в своей базе данных и выполняет
аутентификация с использованием поиска в базе данных.Модуль LDAP заменяет это
функциональность и позволяет Openfire:
- Используйте сервер LDAP для аутентификации личности пользователя.
- Загрузить информацию профиля пользователя из каталога LDAP.
- Загрузить информацию о группе из каталога LDAP.
Примечание. Openfire рассматривает каталог LDAP как доступный только для чтения.
Этот документ проведет вас через настройку поддержки LDAP в Openfire. Эти
инструкции предполагают, что вы компетентный пользователь LDAP и знакомы
с проблемами установки Openfire.
Конфигурация
Инструмент настройки Openfire включает простой в использовании мастер настройки LDAP.
Выберите опцию LDAP на странице настроек профиля, чтобы настроить интеграцию каталогов.
Мастер вместе со встроенной справкой проведет вас через остальную часть процесса.
Конкретные советы по работе с Active Directory приведены ниже.
Если вы уже завершили процесс установки, но вам нужно включить интеграцию LDAP, вы
можно повторно запустить инструмент настройки.Для этого:
- Остановите Openfire.
- Отредактируйте conf / openfire.xml в папке установки Openfire и установите
true наfalse . - Перезапустите Openfire и войдите в инструмент настройки.
Microsoft Active Directory — это широко развернутая система каталогов, которая поддерживает
Протокол LDAP. Вам будет предложено ввести несколько полей LDAP при подключении к Active Directory.
серверы, некоторые из которых подробно описаны ниже:
- Базовый DN
Базовый DN описывает, куда загружать пользователей и группы.Если вы используете значение по умолчанию
Настройка Active Directory, все учетные записи пользователей и группы расположены в
Папка «Пользователи» в вашем домене. В форме LDAP это cn = Users; dc =.
Чтобы быть более конкретным, предположим, что ваш домен — activedirectory.jivesoftware.com. В таком случае,
ваше базовое DN будет cn = Users; dc = activedirectory, dc = jivesoftware, dc = com. Если
вы настроили место хранения пользователей, вам просто нужно реплицировать эту папку
структура с использованием синтаксиса LDAP. - DN администратора
По умолчанию Active Directory не разрешает анонимные подключения LDAP. Следовательно,
вам нужно будет ввести DN пользователя, которому разрешено подключаться к серверу и читать
все данные пользователей и групп. Если вы не создали специальную учетную запись пользователя для этого
Цель, простой выбор — использовать встроенную учетную запись администратора. По умолчанию,
DN администратора имеет вид cn = Administrator, dc = <Ваш домен>.Используя наш предыдущий пример,
cn = администратор, cn = пользователи, dc = activedirectory, dc = jivesoftware, dc = com.
Редактирование файла конфигурации вручную
Если вы предпочитаете отредактировать файл конфигурации, чтобы напрямую включить интеграцию LDAP, используйте следующий
инструкции. Откройте файл конфигурации conf / openfire.xml из вашего Openfire
установка в вашем любимом
редактор и добавьте или измените следующие настройки. Свойства, отмеченные (
* )
должен быть установлен.Свойства, отмеченные ( ** ), должны быть установлены в порядке
включить группу LDAP
support, все остальные свойства необязательны:
- Основные настройки
- Providerr.user.className * — установите значение
«org.jivesoftware.openfire.ldap.LdapUserProvider». - provider.auth.className * — установить значение
«org.jivesoftware.openfire.ldap.LdapAuthProvider». - ldap.host * — хост сервера LDAP; е.грамм. localhost или
machine.example.com и т. д. Можно использовать много серверов LDAP, но все они
должен использовать ту же конфигурацию (например, SSL, baseDN, учетную запись администратора и т. Д.).
Чтобы указать несколько серверов LDAP, используйте в качестве разделителя запятую или пробел. - ldap.port — номер порта сервера LDAP. Если это свойство не установлено, значение по умолчанию —
389. - ldap.readTimeout — значение этого свойства является строковым представлением целого числа.
представляющий тайм-аут чтения в миллисекундах для операций LDAP.Если провайдер LDAP не
получить ответ LDAP в течение указанного периода, он прерывает попытку чтения. Целое число должно
быть больше нуля. Целое число меньше или равное нулю означает, что тайм-аут чтения не указан,
эквивалентно ожиданию ответа бесконечно, пока он не будет получен, что по умолчанию
к исходному поведению. Требуется Java 1.6 или новее. - ldap.baseDN * — начальное DN, которое ищет пользователей
будет выполнено с.Поиск учетных записей пользователей будет выполняться во всем поддереве под базовым DN. - ldap.alternateBaseDN — при желании можно указать второй DN в каталоге. Если установлено,
альтернативный базовый DN будет использоваться для аутентификации, загрузки отдельных пользователей и отображения
список пользователей. Содержимое базового DN и альтернативного DN будет рассматриваться как одно целое. - ldap.adminDN — DN администратора каталога. Все операции с каталогом будут
выполнено
с этим аккаунтом.Администратор должен иметь возможность выполнять поиск и загружать записи пользователей. В
пользователь делает
нет необходимости вносить изменения в каталог, так как Openfire обрабатывает
каталог только для чтения.
Если это свойство не установлено, будет предпринята попытка анонимного входа на сервер. - ldap.adminPassword — пароль администратора каталога.
- ldap.usernameField — имя поля, по которому будет выполняться поиск имени пользователя.Если
это свойство не установлено, значение по умолчанию — uid. Пользователи Active Directory
следует попробовать значение по умолчанию sAMAccountName. - ldap.nameField — имя поля, содержащего имя пользователя. Если это свойство не
set, значение по умолчанию — cn. Пользователи Active Directory должны использовать значение по умолчанию
показать имя. - ldap.emailField — имя поля, содержащего адрес электронной почты пользователя. Если это свойство
не установлен, значение по умолчанию — mail.Пользователи Active Directory должны использовать
значение по умолчанию mail. - ldap.searchFields — поля LDAP, которые будут использоваться для пользовательского поиска. Если
это свойство не установлено, будет выполняться поиск в полях имени пользователя, имени и адреса электронной почты. Пример
значение этого поля — «Имя пользователя / uid, Имя / cname». Это ищет в полях uid и cname
в каталоге и помечает их как «Имя пользователя» и «Имя» в пользовательском интерфейсе поиска. Можете добавить
столько полей, сколько хотите, используя пары «DisplayName / Field», разделенные запятыми.Вам следует
убедитесь, что все поля, используемые для поиска, правильно проиндексированы, чтобы результаты поиска возвращали
быстро. - ldap.searchFilter — дополнительный фильтр поиска, добавляемый к фильтру по умолчанию, когда
загрузка пользователей. Фильтр поиска по умолчанию создается с использованием атрибута, указанного в
ldap.usernameField. Например, если в поле имени пользователя указано «uid», то поиск по умолчанию
фильтр будет «(uid = {0})», где {0} динамически заменяется именем пользователя, в котором выполняется поиск
за.Чаще всего фильтр поиска используется для ограничения записей, которые являются пользователями
на основе objectClass. Например, разумный фильтр поиска для Active Directory по умолчанию
установка: «(objectClass = organizationPerson)». В сочетании со значением по умолчанию
фильтр, фактический выполненный поиск будет
«(& (sAMAccountName = {0}) (objectClass = organizationPerson))». - ldap.subTreeSearch — по умолчанию Openfire будет искать все поддерево LDAP (начиная с
на базовом DN) при попытке загрузить пользователей.Если для этого свойства установлено значение false, то
поиск в поддереве отключен, и пользователи будут загружаться только непосредственно из базового DN.
Отключение поддерева может улучшить производительность, но не сможет найти пользователей, если ваш каталог
настроен на использование подпапок под базовым DN. - Providerr.group.className ** — установите значение на
«org.jivesoftware.openfire.ldap.LdapGroupProvider». - ldap.groupNameField ** — имя поля, которое является именем группы
поиск будет выполняться по.Если это свойство не установлено, значение по умолчанию — cn. - ldap.groupMemberField — имя поля, в котором содержатся члены группы. Если это свойство
не установлен, значение по умолчанию — член. - ldap.groupDescriptionField — имя поля, содержащего описание группы. Если это
свойство не задано, значение по умолчанию — описание. - ldap.posixMode ** — значение «истина» означает, что пользователи
хранятся в группе только по имени пользователя.Значение «false» означает, что пользователи
хранятся под всем их DN в группе. Если это свойство не установлено, значение по умолчанию
ложно. Режим posix должен быть правильно настроен для вашего сервера в
Порядок работы групповой интеграции. Режимы Posix для распространенных серверов LDAP: - ldap.groupSearchFilter — дополнительный фильтр поиска, добавляемый к фильтру по умолчанию, когда
погрузочные группы. Фильтр поиска группы по умолчанию создается с использованием указанного атрибута
пользователя ldap.groupNameField. Например, если в поле имени группы указано «cn», то по умолчанию
фильтр поиска группы будет иметь вид «(cn = {0})», где {0} динамически заменяется группой
имя, которое ищут.Чаще всего фильтр поиска используется для ограничения записей, которые являются группами
на основе objectClass. Например, разумный фильтр поиска для Active Directory по умолчанию
установка — «(objectClass = group)». В сочетании со значением по умолчанию
фильтр, фактический выполненный поиск будет
«(& (cn = {0}) (objectClass = group))». - ldap.debugEnabled — значение «истина», если отладка должна быть включена. Когда включен, трассировка
информация о буферах, отправленных и полученных поставщиком LDAP, записывается в
System.out - ldap.sslEnabled — значение «истина» для включения SSL-соединений с вашим сервером LDAP. Если
вы
включить SSL-соединения, номер порта сервера LDAP, скорее всего, следует изменить на
636. - ldap.initialContextFactory — имя класса, которое следует использовать в качестве начального
контекст
завод. если это значение не указано, будет использоваться com.sun.jndi.ldap.LdapCtxFactory
вместо.
Большинству пользователей не нужно устанавливать это значение. - ldap.autoFollowReferrals — значение «истина» указывает, что ссылки LDAP должны быть
автоматически последовал. Если это свойство не установлено или имеет значение «false», используемая политика рефералов остается.
до провайдера.Реферал — это объект, который используется для перенаправления запроса клиента на
другой сервер. Ссылка содержит названия и расположение других объектов. Он отправляется сервером на
указывают, что запрошенную клиентом информацию можно найти в другом месте (или
местоположения), возможно, на другом сервере или нескольких серверах. - ldap.connectionPoolEnabled — значение «false» отключает пул соединений LDAP. Если это
свойство не установлено, значение по умолчанию — «истина».
Настройки группы
Параметры подключения
Ниже приведен пример раздела файла конфигурации:
<джайв> ...<провайдер> <пользователь> 389 uid cn почта ou = Люди; dc = example; dc = com cn = Администратор каталогов орг.jivesoftware.openfire.ldap.LdapUserProvider <группа> org.jivesoftware.openfire.ldap.LdapAuthProvider org.jivesoftware.openfire.ldap.LdapGroupProvider ...
Скорее всего, вы захотите изменить имена пользователей, которым разрешено входить в
консоль администратора.По умолчанию только пользователь с именем «admin» может войти в систему. Однако,
в вашем каталоге LDAP могут быть разные пользователи, администраторами которых вы хотите быть. В
список авторизованных имен пользователей контролируется через admin.authorizedUsernames
свойство. Например, чтобы позволить пользователям с именами «joe» и «jane» войти в консоль администратора:
<джайв> ... <админ> ...Джо, Джейн ...
Фильтр пользовательского поиска
По умолчанию Openfire загружает все объекты с базовым именем,
иметь атрибут, указанный в ldap.usernameField. в
если в поле имени пользователя установлено значение «uid», поиск всех пользователей
будет «(uid = *)». Однако бывают случаи, когда эта логика
не работает — например, когда каталог содержит другие объекты, кроме
пользователи, но все объекты имеют «uid» как поле уникального идентификатора.В этом
случае вам может потребоваться указать настраиваемый фильтр поиска, используя
ldap.searchFilter. Например, поисковый фильтр для всех пользователей
со значением «uid» и «cn» для «joe»
быть:
(& (uid = {0}) (cn = joe))
Значение «{0}» в фильтре выше — это токен, который должен присутствовать в
все настраиваемые фильтры поиска. Он будет динамически заменен на «*», когда
загрузка списка всех пользователей или имени пользователя при загрузке одного пользователя.
Некоторые настраиваемые фильтры поиска могут включать зарезервированные объекты XML, такие как
«&».В этом случае вы должны ввести фильтр поиска в openfire.xml
файл с использованием CDATA:
Завод настраиваемого начального контекста
Некоторые серверы LDAP или серверы приложений могут потребовать, чтобы другой LDAP
будет использоваться фабрика начального контекста, а не фабрика по умолчанию (com.sun.jndi.ldap.LdapCtxFactory).Вы можете установить собственную фабрику начального контекста, добавив в openfire.xml следующее:
... здесь другие настройки ldap com.foo.factoryClass
Пул соединений
Поставщик LDAP по умолчанию (Sun) поддерживает объединение подключений к LDAP
сервер. Пул соединений может значительно повысить производительность, особенно на
системы с высокой нагрузкой.Пул соединений включен по умолчанию, но может
можно отключить, установив свойство Jive ldap.connectionPoolEnabled
на ложь:
... здесь другие настройки ldap false
Вы должны установить несколько свойств системы Java, чтобы изменить настройки пула по умолчанию.
Для получения дополнительной информации см. Следующие страницы:
Обратите внимание, что если вы включите отладку LDAP, пул соединений не будет включен.Если включен режим SSL LDAP, необходимо установить системное свойство, чтобы разрешить объединение
Соединения SSL LDAP.
Интеграция с LDAP vCard
Провайдер LDAP vCard будет предоставлять информацию профиля LDAP как данные vCard для XMPP
клиенты, поддерживающие расширение XMPP vCard. Сначала включите провайдера:
<провайдер> ...... org.jivesoftware.openfire.ldap.LdapVCardProvider
Затем вы должны добавить сопоставления между полями LDAP и полями vCard в файле openfire.xml.
Атрибуты vcard настраиваются путем добавления атрибута attrs = «attr1, attr2» к vcard.
элементы. Для значений элементов можно использовать произвольный текст, а также стиль MessageFormat.
заполнители для атрибутов ldap. Например, если вы хотите сопоставить атрибут LDAP
displayName в элемент vcard FN, фрагмент XML будет таким:
XML vCard должен быть экранирован в CDATA и также должен быть правильно сформирован.Это точный
XML, который этот провайдер отправит клиенту после удаления атрибутов attr и заполнения
заполнители с данными, полученными из LDAP. Эта система должна быть достаточно гибкой, чтобы
обрабатывать любой формат vCard клиента. Ниже приводится пример сопоставления.
{displayName} {uid} {доб} <ГЛАВНАЯ /> <ТЕЛ> <ГЛАВНАЯ /> <ГОЛОС />Ste 500 317 SW Alder St Портленд Орегон 97204 США {phoneNumber} <ПОЧТА> <ИНТЕРНЕТ />{mail} {title} {o} {labeledURI} uid: {uidNumber} home: {homeDirectory} оболочка: {loginShell} ]]>
Часто задаваемые вопросы по LDAP
Могу ли я создавать новых пользователей через Openfire при использовании LDAP?
- Нет, Openfire рассматривает каталоги LDAP только для чтения.Следовательно, это
невозможно создавать или редактировать пользователей через приложение.
Почему список имен пользователей не отсортирован в консоли администратора при использовании LDAP?
- Некоторые популярные серверы LDAP, такие как OpenLDAP, не поддерживают серверную
сортировка результатов поиска. На этих серверах пользователи будут отображаться не по порядку.
Однако вы можете включить сортировку результатов поиска на стороне клиента, установив
ldap.clientSideSorting значение true в файле конфигурации XML.
Я переключился на LDAP и теперь не могу войти в консоль администратора. Что случилось?
- Если вы больше не можете войти в консоль администратора после переключения, один из двух
наиболее вероятные события произошли:
- По умолчанию только имя пользователя «admin» может входить в
консоль администратора. В вашем каталоге не может быть пользователя с именем пользователя
от «админа». В этом случае вам следует изменить список авторизованных имен пользователей.
для входа в консоль администратора (см. выше). - Возможно, вы установили неверное значение baseDN. Модуль LDAP
рекурсивно ищет пользователей под узлом в указанном каталоге
по baseDN. Если baseDN неверен, пользователи не будут найдены.
Вы также можете включить отладку, чтобы получать больше информации из модуля LDAP. Чтобы
сделай это, добавь истину
в ваш файл conf / openfire.xml. Выписки журнала будут записаны
в файл logs / debug.log.
Openfire: Руководство по установке базы данных
Openfire хранит все данные во внутренней базе данных.Если вы решите не использовать встроенный
database, необходимо настроить внешнюю базу данных для приложения и управлять ею.
Этот документ содержит инструкции по установке для всех поддерживаемых в настоящее время баз данных.
Драйверы JDBC 2.0 необходимы Openfire для связи с вашей базой данных. Предлагаемый
драйверы для конкретных баз данных указаны ниже, где это применимо. Openfire связывает JDBC
драйверы для MySQL, Postgres, Microsoft SQL Server и HSQLDB.
Полный список доступных драйверов JDBC см .:
http: // промышленность.java.sun.com/products/jdbc/drivers.
Все схемы базы данных можно найти в каталоге ресурсов / базы данных
Установка Openfire.
Обратите внимание, что могут поддерживаться дополнительные базы данных помимо перечисленных в этом списке.
Пожалуйста, проверьте дистрибутив на наличие схемы базы данных для вашей базы данных или
рассмотрите возможность создания схемы самостоятельно, если она не предоставляется.
Для получения сведений о настройке выберите свою базу данных из списка ниже:
- Драйверы JDBC
- драйвер: com.mysql.jdbc.Driver
- сервер: jdbc: mysql: // [ВАШ_ХОСТ] / [ИМЯ БАЗЫ ДАННЫХ]
Драйвер JDBC для MySQL входит в состав Openfire, поэтому вам не нужно
скачать и установить отдельный драйвер.
В инструменте настройки Openfire используйте следующие значения:
где [YOUR_HOST] и [DATABASE_NAME] — фактические значения для вашего сервера.
Во многих случаях localhost является подходящим значением для [YOUR_HOST], когда
ваша база данных работает на том же сервере, что и ваш веб-сервер.
Инструкции по установке
- Убедитесь, что вы используете MySQL 4.1.18 или новее (рекомендуется 5.x) ¹.
- Создайте базу данных для таблиц Openfire:
mysqladmin create [databaseName]
(примечание: «databaseName» может быть чем-то вроде «openfire») - Импортируйте файл схемы из каталога resources / database папки установки:
Unix / Linux:cat openfire_mysql.sql | mysql [имя_базы_данных];
Windows:введите openfire_mysql.sql | mysql [имя_базы_данных];
- Запустите инструмент настройки Openfire и используйте соответствующее соединение JDBC
настройки.
¹ Поля символов больше 255 не поддерживаются предыдущими версиями
в MySQL 4.1.18. Если вы не можете обновить MySQL до последней версии, вам нужно будет изменить
скрипты базы данных. В частности, замените VARCHAR (1024) на VARCHAR (255) в
resources / database / openfire_mysql.sql скрипт.
Проблемы с кодировкой символов
MySQL не имеет надлежащей поддержки Unicode, что делает вспомогательные данные
на незападных языках сложно.Однако у драйвера MySQL JDBC есть обходной путь.
который можно включить, добавив
в раздел
При использовании этого параметра следует также установить кодировку символов Jive.
в utf-8 в инструменте администратора.
Дополнительная помощь
Если вам нужна помощь в настройке MySQL, обратитесь к
следующие сайты:
http://www.mysql.com/doc.html
http: // www.devshed.com/Server_Side/MySQL
- Драйверы JDBC
- драйвер: oracle.jdbc.driver.OracleDriver
- сервер: jdbc: oracle: thin: @ [YOUR_HOST]: 1521: [DATABASE_NAME]
Рекомендуются «тонкие» драйверы Oracle 9i или 10g, которые можно загрузить с
Сайт Oracle.
Доступны различные версии тонких драйверов, но драйвер «ojdbc14.jar» рекомендуется для использования с Openfire.
Скопируйте драйвер JDBC в каталог lib / вашей установки Openfire.
В веб-инструменте настройки Openfire используйте следующие значения:
где [YOUR_HOST] и [DATABASE_NAME] — фактические значения для вашего сервера.
Во многих случаях localhost
является подходящим значением для [YOUR_HOST], когда
ваша база данных работает на том же сервере, что и ваш веб-сервер.
Инструкции по установке
Сначала создайте пользователя Jive или другого пользователя
которые будут «владеть» таблицами Jive. Это не обязательно, но сделать это
позволит вашим таблицам существовать в отдельном табличном пространстве.
Затем импортируйте схему из каталога ресурсов / базы данных установки.
используя sqlplus (или ваш любимый инструмент Oracle, например
как Жаба). Для sqlplus: скопируйте файл «openfire_oracle.sql» в тот же
каталог, в котором установлен sqlplus (должно быть что-то вроде
/ Oracle / Ora81 / bin /). Затем войдите в sqlplus и затем выполните команду:
@ openfire_oracle
Это импортирует файл схемы. Ваша база данных теперь настроена.
- драйвер — net.sourceforge.jtds.jdbc.Driver
- сервер — jdbc: jtds: sqlserver: // [имя-хоста]: [номер-порта] / [имя-базы данных]; appName = jive
SQL Server
Драйверы JDBC
Openfire включает драйвер Free TDS JDBC, который
— рекомендуемый способ подключения к базам данных SQL Server.Чтобы
подключитесь к SQL Server, просто используйте следующие значения в Openfire
веб-инструмент настройки:
где [host-name] — это имя хоста или IP-адрес вашего сервера базы данных,
и [номер-порта] — это порт, который прослушивает SQLServer (обычно 1433)
и [имя-базы-данных] — имя базы данных (этот параметр не является обязательным).
Инструкции по установке
- Создайте новую базу данных с помощью Enterprise Manager, если у вас еще нет
базу данных, которую вы хотите использовать. Вы можете назвать базу данных «openfire». - Создайте пользователя для доступа к базе данных, если у вас его еще нет, вы бы
нравится использовать. Рассмотрите возможность сделать базу данных по умолчанию для пользователя
тот, который вы создали на шаге 1. - Откройте Query Analyzer и подключитесь к серверу.
- Выберите базу данных, которую вы хотите использовать для Openfire
из раскрывающегося списка БД (созданного на шаге 1, если вы используете новую базу данных). - Откройте файл openfire_sqlserver.sql.
- Нажмите F5, чтобы запустить сценарий. Скрипт запустится и создаст
необходимые таблицы. - Перейдите к инструменту настройки Openfire и используйте соответствующие настройки JDBC
при появлении запроса.
- Драйверы JDBC
- драйвер — org.postgresql.Driver
- сервер — jdbc: postgresql: // [HOST_NAME]: [PORT_NUMBER] / dbname
Драйвер JDBC для Postgres поставляется вместе с Openfire, поэтому вам не нужно
скачать и установить отдельный драйвер.
В веб-инструменте настройки Openfire используйте следующие значения:
Если не указывать, по умолчанию используется localhost (а не 127.0.0.1), а для порта — 5432.
Инструкции по установке
- Создайте базу данных. Например, используя
Утилита PostgreSQL"createdb"
:
createdb -E UNICODE openfire
- Импортируйте схему из каталога ресурсов / базы данных установки.Используйте psql (или ваш любимый Postgres sql
утилита) для импорта схемы базы данных Openfire:
psql -d openfire -f openfire_postgresql.sql
- Перейдите к настройке Openfire и используйте соответствующие настройки JDBC, когда
подсказал.
- Драйверы JDBC
- драйвер:
COM.ibm.db2.jdbc.app.DB2Driver
- сервер:
jdbc: db2: [ИМЯ БД, например JIVE]
- драйвер:
COM.ibm.db2.jdbc.net.DB2Driver
- сервер:
jdbc: db2: [ИМЯ БД, например JIVE]
Используйте драйвер, совместимый с JDBC 1.2, db2java.zip (1293 КБ),
находится в каталоге «% DB2PATH% \ java2». Скопируйте драйвер JDBC в lib /
каталог вашей установки Openfire.
Значения для файла конфигурации:
Если вы используете удаленную базу данных, вам необходимо использовать следующие значения для файла конфигурации:
Инструкции по установке
Вам необходимо создать новую базу данных (например,грамм. JIVE) или используйте существующий
один. Подключитесь к базе данных, используя любое допустимое имя пользователя, которому разрешено создавать
таблицы и индексы. Имейте в виду, что DB2 UDB применяет имя пользователя
как схему таблицы. Используйте того же пользователя при настройке Jive с
интерфейс администрирования. Команды следующие:
DB2 CREATE DB JIVE ALIAS JIVE
DB2 ПОДКЛЮЧИТЬСЯ К ПОЛЬЗОВАТЕЛЮ JIVE [DBUSER] ИСПОЛЬЗУЯ [DBPASSWORD]
(или вы можете использовать графический интерфейс командного центра)
Запустите командное окно DB2 (в Windows) или оболочку пользователя в
Unix и импортируйте схему в каталог ресурсов / базы данных
установка с:
db2 -tvf openfire_db2.sql
Или используйте Центр команд DB2 и запустите сценарий
через папку «Источники репликации» в дереве базы данных.
База данных настроена.
- Особое примечание
- драйвер:
org.hsqldb.jdbcDriver
- сервер:
jdbc: hsqldb: [PATH_TO_DB_FILES / DB_NAME]
Openfire связывает hsqldb как свою встроенную базу данных. Если вы решите использовать встроенную базу данных,
его можно настроить с помощью установщика Openfire. Если у вас автономная установка
HSQLDB, следуйте инструкциям ниже, чтобы подключиться к нему.
Драйверы JDBC
Поскольку hsqldb встроен в Openfire, скачивать
Драйвер JDBC отдельно. Значения для файла конфигурации:
Например, URL-адрес сервера может быть jdbc: hsqldb: ../ database / defaultdb.
Инструкции по установке
Создайте базу данных для таблиц Openfire.Предполагается, что у вас установлен HSQLDB
в собственном каталоге и работает правильно.
- Запустите диспетчер баз данных HSQLDB, перейдя в папку, в которой
hsqldb.jar находится и введите следующеезатем нажмите Enter. Теперь вы увидите приложение с графическим интерфейсом. Обратите внимание: вы не увидите файл hsqldb.jar
в дистрибутиве Openfire — это относится к hsqldb.jar из HSQLDB
распространение. - При появлении запроса в окне подключения введите org.hsqldb.jdbcDriver
в качестве драйвера и укажите URL-адрес вашей базы данных в
поле URL. Пароль по умолчанию уже введен. - Теперь скопируйте и вставьте содержимое openfire_hsql.sql из
каталог ресурсов / базы данных установки в
командное окно и нажмите «Выполнить». Если ошибок нет
сообщил, значит, ваша база данных настроена правильно. - Наконец, вы должны изменить имя пользователя и пароль для входа в
база данных: просто откройте файл.файл сценария в вашем
папку базы данных и измените соответствующие значения. Убедитесь, что вы
не используйте пустой пароль, так как Openfire не примет
один.
Openfire Single Sign On (SSO)
Я баловник, люблю баловаться.
В то время как большинство людей с удовольствием используют Google Talk, чат Facebook, Skype и тому подобное, я занимаюсь игрой со своим собственным сервером чата, пишу для него плагины и смотрю, смогу ли я получить такие вещи, как система единого входа (SSO), DNS Сервисная документация и федерация работают.Это отнимает много времени, временами расстраивает, но в конечном итоге полезно. Одна особенно неприятная проблема, с которой я недавно столкнулся, — это единый вход с помощью Openfire (сервер обмена сообщениями Jabber / XMPP).
Моя базовая настройка, вероятно, отражает большинство корпоративных сетей:
- Контроллер домена Windows Active Directory с установленными инструментами поддержки Windows
- Openfire 3.8 привязан к Windows DC
- Клиенты терминального сервера Windows XP / Windows, работающие под управлением Pandion / Pidgin
- Клиенты Mac OS X под управлением Adium
Первый шаг — убедиться, что у вас есть работающая сеть Windows AD вместе с работающей установкой Openfire.
- Домен AD: EXAMPLE.COM
- Хост AD: DC.EXAMPLE.COM
- Домен Openfire (XMPP): EXAMPLE.COM
- Хост Openfire: OPENFIRE.EXAMPLE.COM
- Учетная запись Keytab: xmpp-openfire
Убедитесь, что у вас есть A и обратная запись DNS для вашего сервера Openfire, а затем настройте свои записи службы DNS для Openfire следующим образом:
_xmpp-client._tcp.example.com. 86400 IN SRV 0 0 5222 openfire.example.com. _xmpp-server._tcp.example.com. 86400 IN SRV 0 0 5269 openfire.example.com.
После завершения DNS создайте две новые учетные записи Active Directory. Первая учетная запись предназначена для привязки сервера Openfire к домену (пропустите эту учетную запись, если вы уже привязали Openfire к своему домену).
Учетная запись номер два предназначена для привязки имени участника-службы (SPN), чтобы клиенты Kerberos могли находить и аутентифицироваться с помощью SSO с вашим сервером Openfire.
Для второго аккаунта проверьте в свойствах Учетная запись , что Пользователь не может изменить пароль, Пароль никогда не истекает и Не требует предварительной аутентификации Kerberos проверяются .
Теперь в контроллере домена Windows необходимо создать SPN и keytab. SPN (имя участника-службы) используется клиентами для поиска имени сервера Openfire для SSO. Вкладка keytab содержит пары участников службы и зашифрованные ключи, которые позволяют службе автоматически аутентифицироваться в контроллере домена без запроса пароля.
Создание SPN:
Я создал две записи, поскольку кажется, что некоторые клиенты ищут xmpp / [email protected] , а некоторые ищут xmpp / openfire.example.com .
setspn -A xmpp/[email protected] xmpp-openfire setspn -A xmpp / openfire.example.com xmpp-openfire
Сопоставление SPN с учетной записью keytab xmpp-openfire и при появлении запроса введите пароль xmpp-openfire:
ktpass -princ xmpp / openfire.example.com @ EXAMPLE.COM -mapuser [email protected] -pass * -ptype KRB5_NT_PRINCIPAL
Создать keytab:
Я обнаружил, что Java keytab не работает в моей системе Openfire, и в этом случае я использовал Утилита Windows ktpass для его создания.Некоторые пользователи сообщают об обратном, поэтому посмотрите, какой вариант подходит вам:
Генерация Java keytab:
ktab -k xmpp.keytab -a xmpp/[email protected]
Windows keytab generation:
ktpass -princ xmpp/[email protected] -mapuser [email protected] -pass * -ptype KRB5_NT_PRINCIPAL -out xmpp.keytab
Скопируйте keytab в свой каталог Openfire, обычно / usr / share / openfire или / opt / openfire .Полный путь будет выглядеть так:
/usr/share/openfire/xmpp.keytab
Настройка Linux для Active Directory
Настроить Kerberos
Сначала нам нужно установить ntp, kerberos и samba
apt-get install ntp krb5-config krb5-user krb5-doc winbind samba
Введите имя своей рабочей группы:
например. ПРИМЕР.COM
Настроить /etc/krb5.conf
[журнал] по умолчанию = ФАЙЛ: / var / log / krb5libs.журнал kdc = ФАЙЛ: /var/log/krb5kdc.log admin_server = ФАЙЛ: /var/log/kadmind.log [libdefaults] dns_lookup_realm = правда dns_lookup_kdc = правда ticket_lifetime = 24 часа forwardable = да [appdefaults] pam = { отладка = ложь ticket_lifetime = 36000 Renew_lifetime = 36000 forwardable = true krb4_convert = ложь }
Проверьте соединение с Active Directory, введя следующие команды:
: ~ # kinit [email protected]
Проверьте, был ли запрос на билет Active Directory успешным, с помощью команды kinit
: ~ # klist
Результат этой команды должен быть примерно таким:
Кэш билетов: ФАЙЛ: / tmp / krb5cc_0 Принципал по умолчанию: xmpp-openfire @ EXAMPLE.COM Действительный начиная с истечения срока действия принципала обслуживания 11.07.13 21:41:31 13.07.13 07:41:31 krbtgt/[email protected] продлить до 07/12/14 21:41:31
Присоединиться к домену
Настройте свой smb.conf следующим образом:
# ГЛОБАЛЬНЫЕ ПАРАМЕТРЫ [Глобальный] рабочая группа = ПРИМЕР realm = EXAMPLE.COM предпочтительный мастер = нет строка сервера = Тестовая машина Linux security = ADS шифровать пароли = да уровень журнала = 3 файл журнала = / var / log / samba /% m максимальный размер журнала = 50 printcap name = чашки печать = чашки winbind enum users = Да winbind enum groups = Да winbind использует домен по умолчанию = Да Вложенные группы winbind = Да разделитель winbind = + idmap uid = 600-20000 idmap gid = 600-20000 ; template primary group = "Пользователи домена" шаблон оболочки = / bin / bash [дома] comment = Домашняя директория допустимые пользователи =% S только чтение = Нет browseable = Нет [принтеры] comment = Все принтеры путь = / var / spool / cups browseable = нет printable = да guest ok = yes
Присоединяйтесь к домену:
: ~ # net ads join -U administrator
Вам будет предложено ввести пароль администратора AD.
Убедитесь, что вы можете перечислить пользователя и группы в домене:
: ~ # wbinfo -u
: ~ # wbinfo -g
Проверка работы keytab:
В системе Openfire выполните следующую команду:
kinit -k -t /usr/share/openfire/resources/xmpp.keytab xmpp/[email protected] -V
Вы должны увидеть:
Authenticated to Kerberos v5
Затем создайте GSSAPI файл конфигурации с именем gss.conf в папке конфигурации Openfire, как правило, в / etc / openfire или / opt / openfire / conf .Убедитесь, что вы установили путь к вашему файлу xmpp.keytab:
com.sun.security.jgss.accept { com.sun.security.auth.module.Krb5LoginModule требуется storeKey = true keyTab = "/ usr / share / openfire / xmpp.keytab" doNotPrompt = true useKeyTab = true realm = "ПРИМЕР.COM" принципал = "xmpp/[email protected]" отладка = правда isInitiator = false; };
Убедитесь, что файл принадлежит пользователю openfire.
Остановите Openfire и включите GSSAPI, отредактировав файл openfire.xml , который находится в каталоге openfire conf:
GSSAPI EXAMPLE.COM true /etc/openfire/gss.conf false
Или добавьте в Свойства системы :
sasl.gssapi.config /etc/openfire/gss.conf sasl.gssapi.debug false sasl.gssapi.useSubjectCredsOnly false sasl.mechs GSSAPI sasl.realm EXAMPLE.COM
Перезапустите Openfire
Openfire — SME Server
Описание
Openfire (ранее Wildfire) — это сервер для совместной работы в реальном времени (RTC), имеющий двойную лицензию под лицензией Open Source GPL и коммерческую.Он использует единственный широко распространенный открытый протокол для обмена мгновенными сообщениями, XMPP (также называемый Jabber). Openfire прост в установке и администрировании, но обеспечивает надежную безопасность и производительность.
Необходимое условие для SME 9.x
Среда выполнения Java, включенная в RPM Openfire, требует, чтобы была установлена дополнительная библиотека 64-разрядных версий SME 9.0. Чтобы установить его, запустите
# yum install glibc.i686
Загрузите и установите Openfire
Последнюю версию Openfire можно найти по адресу http: // www.igniterealtime.org/downloads/index.jsp. Загрузите RPM на свой сервер SME, затем запустите
# yum install openfire - *. Rpm
Создание базы данных
Чтобы создать базу данных Openfire, вам необходимо выполнить каждый из следующих шагов:
# mysqladmin create openfiredb # mysql -e "предоставить все привилегии openfiredb. * openfireuser @ localhost, идентифицированному 'yourpassword'" # mysql -e "очистка привилегий"
Предупреждение: | |
Вы можете изменить информацию «openfireuser» и «yourpassword» в строке предоставления привилегий выше.Обязательно запомните, что вы использовали в качестве веб-менеджера, который вас об этом попросит! |
Отредактируйте схему базы данных (это изменение не кажется необходимым для SME 9.0 и Openfire 3.9.3):
# cd / opt / openfire / ресурсы / база данных # nano openfire_mysql.sql
В строке 57 начинается:
СОЗДАТЬ ТАБЛИЦУ Петуха ( rosterID BIGINT NOT NULL, имя пользователя VARCHAR (64) NOT NULL, jid VARCHAR (1024) NOT NULL,
Измените строку jid с 1024 на 255, как показано:
jid VARCHAR (255) NOT NULL,
Импортируйте измененную схему базы данных:
# mysql openfiredbДоступ к MySQL из локальной сети
Чтобы использовать базу данных MySQL, вам необходимо запустить сценарий, чтобы сделать порт 3306 доступным для
Сервер обмена мгновенными сообщениями Openfire./ sbin / e-smith / config setprop mysqld LocalNetworkingOnly нет / sbin / e-smith / шаблон расширения /etc/my.cnf /etc/rc.d/rc7.d/S50mysqld перезапускЗапустите сервер обмена сообщениями Openfire
/etc/rc.d/init.d/openfire startПосетите веб-страницу администратора, чтобы завершить настройку Openfire
Перейдите по адресу http: // yourserver: 9090 (небезопасный) или https: // yourserver: 9091 (безопасный) и выполните настройку через браузер.Единственная область, которая может сбивать с толку, - это область настройки базы данных. См. Пример конфигурации ниже.
Пресеты драйвера базы данных: MySql
Класс драйвера JDBC: com.mysql.jdbc.Driver
URL базы данных: jdbc: mysql: // localhost: 3306 / openfiredb
Имя пользователя: openfireuser
Пароль: ваш пароль
Аутентификация LDAP
Openfire может быть настроен для аутентификации пользователей через сервер OpenLDAP вашего SME Server.Это позволит вам использовать один источник пользователя и пароля, вместо того, чтобы поддерживать две или более отдельных баз данных.