Установка и настройка Openmeetings 1.3RC на linux (Ubuntu 10.04)

Linux
Появилась новая версия сервера для проведения вебинаров Openmeetings 1.3RC, решил посмотреть, что нового в ней появилось. Устанавливал на Ubuntu 10.04 и в сети уже был сервер postfix, который будет нужен в настройке (используется для рассылки приглашений на вебинар).
Сначала апгрейдимся
sudo apt-get update
sudo apt-get upgrade


Потом, как и в прошлый раз ставим пакеты:

sudo apt-get install mysql-server
sudo apt-get install ffmpeg
sudo apt-get install sox
sudo apt-get install apache2
sudo apt-get install openjdk-6-jre
sudo apt-get install openoffice.org
sudo apt-get install imagemagick
sudo apt-get install ghostscript
sudo apt-get install apache2-utils
sudo apt-get install libapache2-mod-php5filter
sudo apt-get install swfdec-gnome
sudo apt-get install ferm
/usr/lib/openoffice/program/soffice "-accept=socket,host=localhost,port=8100;urp;StarOffice.ServiceManager" -nologo -headless -nofirststartwizard


Распаковываем openmeetings_1_3_rc1_r3264.zip

unzip /home/admin2/openmeetings_1_3_rc1_r3264.zip


Настроим MySQL

sudo vi /etc/mysql/my.cnf

[mysqld]
    default-character-set=utf8
    character-set-server=utf8

    [client]
    default-character-set=utf8

:q! <enter>

 sudo /etc/init.d/mysqld restart


Добавим переменную окружения для java
export PATH=$PATH:/usr/lib/jvm/java-6-openjdk


И поставим phpmyadmin для шаманства над базой, если это необходимо
sudo apt-get install phpmyadmin


Настроим подключение к базе
cd openmeetings/conf/
cp mysql_hibernate.cfg.xml hibernate.cfg.xml 


В hibernate.cfg.xml найдете username и password, забейте туда логин для mysql.

Все, можно запускать red5.sh. После того как появится completed открываем в браузере server:5080/openmeetings/install и вбиваем настройки. Если нужна авторизация по ldap, то указываем в настройках путь до файла om_ldap.cfg, а в нем прописываем настройки вашего ldap сервера.

В моем случае, авторизация из сервера берется, но после логина openmeetings спрашивает организацию и не предлагает ничего выбирать и добавлять. Пока разбираюсь. Настройки в моем случает такие

ldap_server_type=AD
ldap_conn_url=ldap://ad_server:389
ldap_admin_dn=CN:ldapuser,OU:Users,DC:domain,DC:ru
ldap_passwd=******
ldap_search_base=DC:domain,DC:ru
field_user_principal=sAMAccountName
ldap_auth_type=SIMPLE


Если кто настроил ldap нормально, расскажите как. В интернете не нашел.

Предыдущие статьи:
Установка и настройка Openmeetings под Linux
Установка и настройка Openmeetings 1.1

Полезные ссылки:
Страница проекта — code.google.com/p/openmeetings

16 комментариев

avatar
В смысле настраивал LDAP нормально? Как правило в конфиге должен быть указан BaseDN, от него будет идти поиск
avatar
по всякому пробовал :) может у кого рабочий есть конфиг, в инете не нашел, на импортных в том числе…
avatar
а если ldap_search_base прописать до organization unit?
ldap_search_base=OU:Users,DC:domain,DC:ru
?
avatar
неа, тоже самое. 525 код. я так понимаю он ldapuser найти не может

Authentification to LDAP - Server start
DEBUG 08-17 08:50:37.092 LdapAuthBase.java 27837 131 org.openmeetings.app.ldap.LdapAuthBase [NioProcessor-1] - loginToLdapServer
ERROR 08-17 08:50:37.125 LdapAuthBase.java 27870 105 org.openmeetings.app.ldap.LdapAuthBase [NioProcessor-1] -

Authentification on LDAP Server failed : [LDAP: error code 49 - 80090308: LdapErr: DSID-0C090334, comment: AcceptSecurityContext error, data 525, vece]
DEBUG 08-17 08:50:37.129 LdapLoginManagement.java 27874 362 org.openmeetings.app.ldap.LdapLoginManagement [NioProcessor-1] - Checking server type...
DEBUG 08-17 08:50:37.129 LdapAuthBase.java 27874 83 org.openmeetings.app.ldap.LdapAuthBase [NioProcessor-1] - authenticateUser
DEBUG 08-17 08:50:37.129 LdapAuthBase.java 27874 99 org.openmeetings.app.ldap.LdapAuthBase [NioProcessor-1] -

Authentification to LDAP - Server start
DEBUG 08-17 08:50:37.129 LdapAuthBase.java 27874 131 org.openmeetings.app.ldap.LdapAuthBase [NioProcessor-1] - loginToLdapServer
ERROR 08-17 08:50:37.131 LdapAuthBase.java 27876 105 org.openmeetings.app.ldap.LdapAuthBase [NioProcessor-1] -

Authentification on LDAP Server failed : [LDAP: error code 49 - 80090308: LdapErr: DSID-0C090334, comment: AcceptSecurityContext error, data 525, vece]
avatar
Нет, он не может найти в AD вот этого
ldap_admin_dn=CN:ldapuser,OU:Users,DC:domain,DC:ru
avatar
Так может всё-таки не
ldap_admin_dn=CN:ldapuser,OU:Users,DC:domain,DC:ru
но:
ldap_admin_dn=CN=ldapuser,OU=Users,DC=domain,DC=ru
Первый раз вижу, чтобы distinguished name писали с двоеточиями.
Каноническая форма выглядит так:
dn: cn=ldapuser,ou=Users,dc=domain,dc=ru
Ну и в любом случае нужно убедиться в том, что данный юзер действительно авторизуется в AD (ошибка 49 — это как раз Invalid Credentials):

ldapwhoami -x -D 'CN=ldapuser,OU=Users,DC=domain,DC=ru' -w 'ПАРОЛЬ' -H ldap://СЕРВЕР_AD

Где ldapwhoami — стандартная клиентская утилита из поставки OpenLDAP. Если аутентификация (ldapwhoami делает только BIND/UNBIND) прошла успешно, напечатает значение DN, если нет — скажет Error 49, Invalid Credentials или как-то так.
avatar
Такое ощущение, что это недоработка. К AD прикрутил с помощью проксирующего LDAP. То есть OM цепляется к LDAP серверу на локальной машине, а он в свою очередь пересылает запрос в AD. Для желающих могу выложить конфиги.
avatar
Выложите пожалуйста, пригодится.
avatar
Вкратце. Так как OM на прямую к AD не прикручивается, действовать будем через OpenLDAP.
И так. Ставим из портов OpenLDAP Server версии не ниже 2.3, так как более младшие версии не могут прозрачно передавать неизвестную схему.

Приводим slapd.conf к следующему виду:

include /usr/local/etc/openldap/schema/core.schema
include /usr/local/etc/openldap/schema/cosine.schema
include /usr/local/etc/openldap/schema/inetorgperson.schema
include /usr/local/etc/openldap/schema/nis.schema

allow bind_v2
pidfile /var/run/openldap/slapd.pid
argsfile /var/run/openldap/slapd.args

logfile /var/log/slapd.log
LogLevel -1 #Нужно для отладки. С этим значением slapd пишет в логи всё что можно.

modulepath /usr/local/libexec/openldap #Путь к модулям
moduleload back_bdb
# moduleload back_hdb
moduleload back_ldap

#Простой вариант привязки к AD. Подразумевается что все пользователи находятся в подразделении Users.
database ldap
uri «ldap://server.domain1.exemple.com» # Контроллер домена AD
suffix «cn=Users,dc=domain1,dc=exemple,dc=com» # DN подразделения, откуда будем брать пользователей.
subordinate
rebind-as-user
chase-referrals yes

database bdb # База данных, которую мы создаём в OpenLDAP
suffix «dc=domain,dc=exemple,dc=com»
rootdn «cn=user,dc=domain1,dc=exemple,dc=com» #Администратор базы на сервере OpenLDAP
rootpw «password»
directory /var/db/openldap-data

#Более сложный вариант. C учётом что пользователи раскиданы по разным OU.

#Организационная единица Administrators

database ldap
uri «ldap://server.domain2.teach.local» # Контроллер второго домена
suffix «ou=Administrators,dc=domain2,dc=exemple,dc=com» Путь к OU Administrators

idassert-bind binddn=«cn=user,ou=Administrators,dc=domain2,dc=exemple,dc=com» # Учётная запись от имени которой OpenLDAP будет обращаться к AD. Должна обязательно присутствовать в данной организационной единице в Active Directory
idassert-bind credentials=«password»
idassert-bind bindmethod=simple
idassert-bind «mode=none»
idassert-authzFrom «dn:*»
subordinate
rebind-as-user
chase-referrals yes

#Организационная единица Students

database ldap
uri «ldap://server.domain2.exemple.com»
suffix «ou=students,dc=domain2,dc=exemple,dc=com»
idassert-bind binddn=«cn=user1,ou=students,dc=domain2,dc=exemple,dc=com»
idassert-bind credentials=«password»
idassert-bind bindmethod=simple
idassert-bind «mode=none»
idassert-authzFrom «dn:*»
subordinate
rebind-as-user
chase-referrals yes

#Организационная единица Teachers

database ldap
uri «ldap://server.domain2.exemple.com»
suffix «ou=teachers,dc=domain2,dc=exemple,dc=com»
idassert-bind binddn=«cn=user3,ou=teachers,dc=domain2,dc=exemple,dc=com»
idassert-bind credentials=«password»
idassert-bind bindmethod=simple
idassert-bind «mode=none»
idassert-authzFrom «dn:*»
subordinate
rebind-as-user
chase-referrals yes

database bdb
suffix «dc=domain2,dc=exemple,dc=com»
rootdn «cn=user,dc=domain2,dc=exemple,dc=com»
rootpw «password»
directory /var/db/openldap-data

index objectClass eq,pres
index ou,cn,mail,surname,givenname eq,pres,sub
index uid eq,pres,sub

На этом с конфигом закончим. Хочу заметить, что slapd очень чувствителен к последовательности строк. Будте внимательны.

Теперь создаём в директории /usr/local/etc/openldap файлы dir.ldif и dir0.ldif со след. содержимым:

dir.ldif:

dn: dc=domain1,dc=exemple,dc=com
objectClass: top
objectClass: organization
objectClass: dcObject
dc: domain1
o: Organization, inc.

dir.ldif0:

dn: dc=domain2,dc=exemple,dc=com
objectClass: top
objectClass: organization
objectClass: dcObject
dc: domain2
o: Organization, inc.

Теперь добавляем в rc.conf строчку slapd_enable=«YES»
И стартуем демон
#/usr/local/etc/rc.d/slapd start

Далее набираем следующие команды:
# ldapadd -x -h localhost -D cn=user,dc=domain1,dc=exemple,dc=com -W -f /usr/local/etc/openldap/dir.ldif
# ldapadd -x -h localhost -D cn=user,dc=domain2,dc=exemple,dc=com -W -f /usr/local/etc/openldap/dir0.ldif

Перезапускаем демон

#/usr/local/etc/rc.d/slapd restart

На этом настройка OpenLDAP закончена. Для общего понимания всего что я тут написал, советую прочитать след. статью: www.osp.ru/win2000/2008/07/5670760/

Теперь переходим к настройке OpenMeetings.

В директории /usr/local/opt/red5/webaps/openmeetings/conf делаем две копии файла om_ldap.cfg и приводим к след. виду:

om_domain1.cfg:

ldap_server_type=OpenLDAP

ldap_conn_url=ldap://localhost:389

ldap_admin_dn=CN:user,CN:Users,DC:domain,DC:exemple,DC:com # Пользователь должен присутствовать в AD
ldap_passwd=password

ldap_search_base=DC:domain1,DC:exemple,DC:com
field_user_principal=sAMAccountName
ldap_auth_type=SIMPLE

ldap_sync_password_to_om=yes

ldap_user_attr_lastname=sn
ldap_user_attr_firstname=givenName
ldap_user_attr_mail=mail
ldap_user_attr_street=streetAddress
ldap_user_attr_additionalname=description
ldap_user_attr_fax=facsimileTelephoneNumber
ldap_user_attr_zip=postalCode
ldap_user_attr_country=co
ldap_user_attr_town=l
ldap_user_attr_phone=telephoneNumber

ldap_use_lower_case=false

om_domain2.cfg:

ldap_server_type=OpenLDAP

ldap_conn_url=ldap://localhost:389

ldap_search_base=DC:domain2,DC:exemple,DC:com
field_user_principal=sAMAccountName
ldap_auth_type=NONE

ldap_sync_password_to_om=yes

ldap_user_attr_lastname=sn
ldap_user_attr_firstname=givenName
ldap_user_attr_mail=mail
ldap_user_attr_street=streetAddress
ldap_user_attr_additionalname=description
ldap_user_attr_fax=facsimileTelephoneNumber
ldap_user_attr_zip=postalCode
ldap_user_attr_country=co
ldap_user_attr_town=l
ldap_user_attr_phone=telephoneNumber

ldap_use_lower_case=false

В Openmeetings заходим в настройки LDAP и прописываем оба конфига. Обратите внимание, что поиск идёт по атрибуту sAMAccountName, поэтому нужно снять флажок с «Добавить домен к имени»

На этом всё. Прошу сильно не пинать, так как пишу в первый раз. Буду рад ответить на все вопросы. Желаю удачи!
avatar
Такой комментарий лучше сделать отдельным постом, могу сам вынести если не хотите
avatar
Конечно. Был бы очень благодарен.
avatar
сделал