ejabberd: LDAP アクティブ ディレクトリの ldap_filter

ejabberd: LDAP アクティブ ディレクトリの ldap_filter

TL;DR: 一部の Active Directory グループ メンバーのみを許可するように ejabberd を設定するにはどうすればよいでしょうか?

こんにちは、

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" 属性がありません。

では、正しい方法は何でしょうか?

関連情報