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" 属性がありません。
では、正しい方法は何でしょうか?