Имею тестовую установку в виртуальной среде - Win2008R2 Server в качестве контроллера AD; - Centos 7 + ejabberd 19.09 Я хочу отображать имена подразделений Active Directory. Структура OU в моем случае выглядит так:
[-] test.local
[+] Builtin
...
[-] ORG
[-] GRP1
deleted
GRP2
где ORG, GRP1, удалено, GRP2 - подразделения, ORG имеет два дочерних подразделения (GRP1, GRP2), а GRP1 имеет дочерний элемент с именем «удаленный». В GRP1 есть пользователи u1g1 и u2g1, в GRP2 - u1g2 и u2g2. В каждом подразделении могут быть пользователи. Можно ли отобразить такую древовидную структуру в общем списке с помощью модуля mod_shared_roster_ldap? Как в таком случае должен выглядеть ejabberd.yml? Теперь соответствующая часть моего конфигурационного файла ejabberd.yml выглядит так:
mod_shared_roster_ldap:
ldap_servers:
- test1.test.local
ldap_port: 389
use_cache: false
ldap_base: "OU=ORG,dc=test,dc=local"
ldap_rfilter: "(objectClass=organizationalUnit)"
ldap_gfilter: "(objectClass=*)"
ldap_ufilter: "(objectClass=*)"
ldap_groupattr: "name"
ldap_memberattr: "name"
ldap_groupdesc: "name"
ldap_userdesc: "displayName"
ldap_useruid: "sAMAccountName"
cache_life_time: 3600
ldap_auth_check: off
Клиенты Jabber (Miranda NG и Spark) отображают общий список с этой конфигурацией следующим образом:
[-] ORG
grp1
grp2
org
u1g1
u1g2
u2g1
u2g2
где grp1, grp2, org - порядковые члены. Конечно, если я установлю «ldap_auth_check: on», члены grp1, grp2, org исчезнут из списка. Я потратил пару недель на чтение docs.ejabberd.im, но все еще не могу понять, что делаю неправильно, и до сих пор не могу понять логику фильтров и атрибутов в mod_shared_roster_ldap. Пожалуйста, помогите мне.