検索フィルターの構文

LDAP 検索フィルターは、ディレクトリから項目を選択するための条件を定義します。条件は属性値に基づきます。検索フィルターの構文は、RFC2254(「The String Representation of LDAP Search Filters」)で定義されます。

最も単純なフィルターは、単一の属性値に条件を指定します。

(attributeType filterType value)
  • フィルターは括弧で囲む必要があります。

  • attributeType は、条件を指定する属性の名前です。

  • filterType は 4 つの有効な演算子のいずれかです。

  • value は、属性と比較する値です。

次の表に、検索フィルターに使用できる有効な演算子を示します。

演算子

説明

=

等号

~=

およそ等しい

<=

より小さいか等しい

>=

より大きいか等しい

例えば、検索フィルター (uid=jdoe) は、値 jdoe の uid 属性を持つディレクトリ項目を返します。

サブ文字列と任意の値

検索フィルターでは、アスタリスク( * )が文字の任意のシーケンスを表します。特定の接頭辞または接尾辞がある式の値を表すために、または任意の値を表すために、アスタリスクを使用できます。

  • (uid=j*) j で始まる uid 属性のあるすべての項目と一致します。

  • (uid=*doe) doe で終わる uid 属性のあるすべての項目と一致します。

  • (uid=*) はあらゆる値の uid 属性があるすべての項目と一致します。

論理演算子

複数の属性に条件を適用するか、またはフィルターによって指定された条件の逆を適用するには、論理演算子を使用します。論理演算子は、適用されるフィルターの前に配置します。次の表に、論理演算子とその使用例を示します。

論理演算子

説明

&

関連するすべてのフィルターに一致する。

(&(uid=j*)(c=CA))

j で始まる uid 属性値と、 CA に等しい c 属性値があるすべてのディレクトリ項目と一致する。

|

関連付けられたフィルターのいずれかと一致する。

(|(c=CA)(c=US))

CA または US のいずれかと等しい c 属性値があるすべてのディレクトリ項目が一致する。

!

フィルターの逆。

(!(uid=j*))

j で始まらない uid 属性値があるすべてのディレクトリ項目が一致する。

エスケープ文字

特殊文字のリテラル値を表すには、その文字の前にバックスラッシュ(¥)を付けます。例えば、属性値に括弧が含まれる場合、はじめの括弧と終わり括弧の前にバックスラッシュを付けます。

(telephoneNumber=\(555\) 555-1234)

すべてのディレクトリ項目

すべてのディレクトリ項目に objectClass 属性の値が必要です。次の検索フィルターは、検索されるディレクトリの領域内のすべての項目と一致します。

(objecClass=*)