ejabberd: ldap_filter в LDAP Active Directory

ejabberd: ldap_filter в LDAP Active Directory

TL;DR: Как настроить ejabberd так, чтобы разрешить доступ только некоторым членам группы Active Directory?

Привет,

После успешной настройки службы ejabberd, подключенной к нашему AD, я хотел бы сузить круг разрешенных пользователей до определенной группы.

Моя рабочая конфигурация:

auth_method: [ldap]
ldap_servers:
  - 1.2.3.4
  - 1.2.3.5
ldap_uids:
  mail: "%[email protected]"
ldap_base: "OU=FON,OU=Domain,OU=Global,DC=domain,DC=lan"
ldap_rootdn: "CN=someone,CN=Users,DC=domain,DC=lan"
ldap_password: "secret"

Это работает нормально и так.


Пользователи хранятся в:

"OU=Utilisateurs,OU=FON,OU=Domain,OU=Global,DC=domain,DC=lan"

но группы хранятся в другом OU:

"OU=Securite,OU=Groupes,OU=FON,OU=Domain,OU=Global,DC=domain,DC=lan"

Я хотел бы добавить фильтр, чтобы разрешить доступ только пользователям, входящим в группу, определенную в другом OU.

При попытке добавить фильтр ниже,нульпользователь в разрешенной группе может подключиться:

ldap_filter:
  (&(objectCategory=group)(CN=GG_XMPP_USERS,OU=Securite,OU=Groupes,OU=FON,OU=Domain,OU=Global,DC=domain,DC=lan))

Безрезультатно, я также пробовал синтаксис, похожий на: (&(objectclass=group)(|(cn=admingroup)(cn=group1)(cn=group2)))

В Active Directory объекты пользователя не имеют атрибута «memberOf», который можно было бы запросить.

Так как же правильно поступить?

Связанный контент