Установка и настройка 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 комментариев

d_kalinin
В смысле настраивал LDAP нормально? Как правило в конфиге должен быть указан BaseDN, от него будет идти поиск
admin
по всякому пробовал :) может у кого рабочий есть конфиг, в инете не нашел, на импортных в том числе…
d_kalinin
а если ldap_search_base прописать до organization unit?
ldap_search_base=OU:Users,DC:domain,DC:ru
?
admin
неа, тоже самое. 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]
d_kalinin
Нет, он не может найти в AD вот этого
ldap_admin_dn=CN:ldapuser,OU:Users,DC:domain,DC:ru
akkerman
Так может всё-таки не
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 или как-то так.
malankin
Такое ощущение, что это недоработка. К AD прикрутил с помощью проксирующего LDAP. То есть OM цепляется к LDAP серверу на локальной машине, а он в свою очередь пересылает запрос в AD. Для желающих могу выложить конфиги.
admin
Выложите пожалуйста, пригодится.
malankin
Вкратце. Так как 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, поэтому нужно снять флажок с «Добавить домен к имени»

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