Новости из Блогов Авторизация в Openmeetings с учетной записью Active Directory

Discussion in 'Мировые новости. Обсуждения.' started by VY_CMa, 10 Jan 2013.

  1. VY_CMa

    VY_CMa Green member

    Joined:
    6 Jan 2012
    Messages:
    917
    Likes Received:
    492
    Reputations:
    724
    Авторизация в Openmeetings с учетной записью Active Directory

    Так как Openmeetings напрямую к AD не прикручивается, действовать будем через OpenLDAP.
    Итак. Ставим из портов OpenLDAP Server версии не ниже 2.3, так как более младшие версии не могут прозрачно передавать неизвестную схему.

    Приводим slapd.conf к следующему виду:
    Code:
    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.
    Code:
    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.
    Code:
    #Организационная единица 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:
    Code:
    dn: dc=domain1,dc=exemple,dc=com
    objectClass: top
    objectClass: organization
    objectClass: dcObject
    dc: domain1
    o: Organization, inc.
    dir.ldif0:
    Code:
    dn: dc=domain2,dc=exemple,dc=com
    objectClass: top
    objectClass: organization
    objectClass: dcObject
    dc: domain2
    o: Organization, inc.
    Теперь добавляем в rc.conf строчку slapd_enable=«YES»
    И стартуем демон
    Code:
    #/usr/local/etc/rc.d/slapd start
    Далее набираем следующие команды:
    Code:
    # 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
    Перезапускаем демон
    Code:
    #/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:
    Code:
    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:
    Code:
    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, поэтому нужно снять флажок с «Добавить домен к имени»

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

    09 января 2013
    Автор: malankin
    http://sysadminblog.ru/linux/2013/01/09/avtorizaciya-v-openmeetings-s-uchetnoy-zapisyu-active-directory.html
     
    _________________________