LDAP 検索フィルターは、ディレクトリから項目を選択するための条件を定義します。条件は属性値に基づきます。検索フィルターの構文は、RFC2254(「The String Representation of LDAP Search Filters」)で定義されます。
最も単純なフィルターは、単一の属性値に条件を指定します。
(attributeType filterType 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=*)
|
|
|