LDAP-запрос для Barracuda
У меня есть межсетевой экран 300 barracuda spam, который я только что установил на днях. Я работаю над запросом LDAP для использования его с моим сервером обмена. То, что у меня есть, так это:
(&
(!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 для эффективной фильтрации отключенных учетных записей?
2 ответа
Мне сложно это проверить, но я думаю, что вам нужны парены, чтобы сгруппировать! Useraccountcontrol и блок or.
(&
(
(!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})
)
)
)
Почему вы проверяете так много вариантов? Часть proxyAddresses должна быть более чем достаточно:
(& (! userAccountControl: 1.2.840.113556.1.4.803: = 2)
(proxyaddresses = smtp: $ {receient_local_part‹@ourdomain.com))
Спасибо,
Брайан Десмонд
Active Directory MVP