ejabberd:LDAP Active Directory 中的 ldap_filter

ejabberd:LDAP Active Directory 中的 ldap_filter

TL;DR:如何设置 ejabberd 以仅允许某些 Active Directory 组成员?

你好,

成功设置插入我们的 AD 的 ejabberd 服务后,我想将允许的用户缩小到特定组。

我的工作设置是:

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”属性。

那么正确的做法是什么?

相关内容