Подключаем пользователей Active Directory к ejabberd

Генерация сертификата сервера:

$ openssl req -newkey rsa:1024 -keyout ejabberd.pem -nodes -x509 -days 3650 -out ejabberd.cer
$ echo "" >> ejabberd.pem
$ cat ejabberd.cer >> ejabberd.pem
$ chown ejabberd:ejabberd ejabberd.pem
$ chmod 0400 ejabberd.pem
$ rm ejabberd.cer

Выбираем данные о пользователях. Пользователь должен быть:

  • Членом группы JabberUsers
  • В свойствах пользователя за закладке «Организация» должно быть заполнено поле «Отдел» - именно по нему осуществляется группировка
{mod_shared_roster_ldap,
   [{ldap_groupattr,"department"},
    {ldap_groupdesc,"department"},
    {ldap_base, "dc=YOU-DOMAIN"},
    {ldap_rfilter, "(&(memberOf=CN=JabberUsers,CN=Users,DC=YOU-DOMAIN)(|(userAccountControl=66050)(userAccountControl=66048)))"},
    {ldap_memberattr,"sAMAccountName"},
    {ldap_userdesc,"cn"}
   ]
  }

Выбираем из LDAP информацию в нужном формате:

  {mod_vcard_ldap,
    [{ldap_vcard_map,
     [{"NICKNAME", "%u", []},
      {"GIVEN", "%s", ["givenName"]},
      {"MIDDLE", "%s", ["initials"]},
      {"FAMILY", "%s", ["sn"]},
      {"FN", "%s", ["displayName"]},
      {"EMAIL", "%s", ["mail"]},
      {"ORGNAME", "%s", ["company"]},
      {"ORGUNIT", "%s", ["department"]},
      {"CTRY", "%s", ["c"]},
      {"LOCALITY", "%s", ["l"]},
      {"STREET", "%s", ["streetAddress"]},
      {"REGION", "%s", ["st"]},
      {"PCODE", "%s", ["postalCode"]},
      {"TITLE", "%s", ["title"]},
      {"URL", "%s", ["wWWHomePage"]},
      {"DESC", "%s", ["description"]},
      {"TEL", "%s", ["telephoneNumber"]}]},
    {ldap_search_fields,
     [{"User", "%u"},
      {"Name", "givenName"},
      {"Family Name", "sn"},
      {"Email", "mail"},
      {"Company", "company"},
      {"Department", "department"},
      {"Role", "title"},
      {"Description", "description"},
      {"Phone", "telephoneNumber"}]},
    {ldap_search_reported,
     [{"Full Name", "FN"},
      {"Nickname", "NICKNAME"},
      {"Email", "EMAIL"}]}
  ]}

Включаем в ejabber.cfg модуль mod_shared_roster, заходим через веб-интерфейс Виртуальные хосты → ваш хост → Группы общих контактов и добавляем новый:

  • Название: EveryBody
  • Описание: This group contains everybody
  • Члены: @all@
  • Видимые группы: everybody

Если необходимо автоматическое подключение к серверу, прописываем в DNS:

  • _jabber._tcp.company.ru. 3600 IN SRV 5 0 5269 company.ru.
  • _xmpp-server._tcp.company.ru. 3600 IN SRV 5 0 5269 company.ru.
  • _xmpp-client._tcp.company.ru. 3600 IN SRV 5 0 5222 company.ru.
  • jabber.company.ru. 3600 IN CNAME company.ru.
  • icq.company.ru. 3600 IN CNAME company.ru.

Проверить все ли верно можно командой

nslookup -type=SRV _xmpp-client._tcp.company.ru
  • software/ejabberd/ejabberd-ldap.txt
  • Последнее изменение: 2017/05/09 18:34
  • 127.0.0.1