web-dev-qa-db-ja.com

バラクーダのLDAPクエリ

先日インストールしたばかりのバラクーダスパムファイアウォール300があります。 Exchangeサーバーで使用するための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
IceMage

これをテストするのは難しいですが、!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})
  )
 )
)
1
Alex

なぜそんなに多くのオプションをチェックしているのですか? proxyAddressesの部分は十分すぎるはずです:

(&(!userAccountControl:1.2.840.113556.1.4.803:= 2)
(proxyaddresses = smtp:$ {recipient_local_part}@ourdomain.com))

ありがとう、

ブライアン・デスモンド

Active Directory MVP

1
Brian Desmond