Barracuda 的 LDAP 查询

Barracuda 的 LDAP 查询

我有一台前几天刚安装的 Barracuda 垃圾邮件防火墙 300。我正在处理一个 LDAP 查询,以便将其与我的 Exchange 服务器一起使用。到目前为止,我拥有的是:

(&
(!userAccountControl:1.2.840.113556.1.4.803:=2)
(|
    (sAMAccountName=${recipient_local_part})
    (othermailbox=smtp:${recipient_local_part}@ourdomain.com)
    (proxyaddresses=smtp:${recipient_local_part}@ourdomain.com)
    (mail=${recipient_email})
    (userPrincipalName=${recipient_local_part})
)
)

为了方便您,我已将其格式化。我试图过滤掉目录中被禁用的用户,因为他们可能有有效的地址,但我不想再接受他们的邮件。我们会长期保留他们的电子邮件地址,但公司政策不允许我从目录中删除它们。

当查询运行时,我收到以下错误:

failed to issue LDAP find operation: Bad search filter

查询无需 (!userAccountControl:1.2.840.113556.1.4.803:=2) 即可工作,但该行可以过滤掉已禁用的帐户。

如何使用 LDAP 有效地过滤掉已禁用的帐户?

答案1

对于我来说测试这个有点困难,但是我认为你需要用括号来对 !useraccountcontrol 和或块进行分组。

(&
 (
  (!userAccountControl:1.2.840.113556.1.4.803:=2)
  (|
        (sAMAccountName=${recipient_local_part})
        (othermailbox=smtp:${recipient_local_part}@ourdomain.com)
        (proxyaddresses=smtp:${recipient_local_part}@ourdomain.com)
        (mail=${recipient_email})
        (userPrincipalName=${recipient_local_part})
  )
 )
)

答案2

你为什么要检查这么多选项?proxyAddresses 部分应该足够了:

(&(!用户帐户控制:1.2.840.113556.1.4.803:=2)
(代理地址=smtp:${recipient_local_part}@ourdomain.com))

谢谢,

布莱恩·戴斯蒙德

活动目录最有价值专家

相关内容