ページの先頭行へ戻る
Interstage Application Server V12.3.0 ディレクトリサービス運用ガイド
FUJITSU Software

7.1.2 検索フィルタ

Interstage ディレクトリサービスのクライアントで使用できる検索フィルタ(RFC1558準拠)とその使用例を次に示します。

  

使用できる検索フィルタ

検索フィルタには、以下の5つを指定することができます。

  

フィルタ

内容

同値
(equal)

指定した値と同じ属性値がある場合に、取り出します。

部分文字列
(substring)

指定した部分文字列を含む属性値がある場合に、取り出します。
部分文字列には、前方一致、後方一致、任意一致、およびこれらを組み合わせて指定することができます。

以上
(greater)

指定した値以上の属性値がある場合に、取り出します。

以下
(less)

指定した値以下の属性値がある場合に、取り出します。

存在
(present)

属性値がある場合に、取り出します。

  

また、上記の各フィルタを組み合わせることで、より詳細に指定することができます。以下に組み合わせに使用する論理演算を示します。

論理演算

内容

論理積
(AND)

複数のフィルタを論理積(AND)条件で結びます。
すべての条件が真の場合に、有効です。

論理和
(OR)

複数のフィルタを論理和(OR)条件で結びます。
いずれかの条件が真の場合に、有効です。

否定
(NOT)

指定した条件が偽の場合に、有効です。以下のどちらかの方法で指定できます。

  • 1つの条件式に対して否定する方法。

  • 複数のフィルタを論理積(AND)または、論理和(OR)で結びつけた条件に対して否定する方法。

例:

  • (!(cn=Fujitsu))

  • (!(&(cn=User001)(sn=Fujitsu)))

(!(cn=Fujitsu)(uid=0123))という使い方はできません。

  

検索フィルタの文法

検索フィルタの文法は、以下のRFC文書に記述されています。

  • 同値(=)
    cnがUser001であるエントリを検索します。

    (cn=User001)

      

  • 部分文字列(文字列*)
    cnがFujitsuで始まるエントリだけを検索します。

    (cn=Fujitsu*)

      

  • 以上(>=)、以下(<=)
    dnQualifierが「abc」以上のエントリを検索します。

    (dnQualifier>=abc)

      

  • 存在(=*)
    cnを含む全エントリを検索します。

    (cn=*)

      

  • 論理積(&)
    cnがUser001で、かつsnがFujitsuであるエントリを検索します。

    (&(cn=User001)(sn=Fujitsu))

      

  • 論理和(|)
    givenNameがUser001、またはUser002であるエントリを検索します。

    (|(givenName=User001)(givenName=User002))

      

  • 否定(!)
    cnがFujitsuで始まらないエントリだけを検索します。

    (!(cn=Fujitsu*))

注意

検索フィルタを指定する場合は、検索フィルタを引用符で囲んで指定してください。ldapsearchコマンドで検索フィルタを指定するときには、使用するコマンドラインに応じて、シングル引用符とダブル引用符のどちらかで囲んでください。

特殊文字の指定方法

検索フィルタの値に、検索する値として以下の特殊文字を指定する場合、その特殊文字を「\」(エンマーク)でエスケープします。

ldapsearchコマンドでは、1つのエスケープ文字「\」に続けて、16進数として指定する必要があります。

Enterprise EditionLDAP SDK(C API)では、2つのエスケープ文字「\\」に続けて、16進数として指定する必要があります。

LDAP SDK(JNDI)では、16進数にする必要はありません。以下のように指定します。

特殊文字

ldapsearchコマンド

LDAP SDK(C API)

LDAP SDK(JNDI)

*

\2a

\\2a

\\*

(

\28

\\28

\\(

)

\29

\\29

\\)

\

\5c

\\5c

\\\\

検索フィルタの値に「富士通(株)」を指定する場合、以下のように指定します。

  • ldapsearchコマンド

    "o=富士通\28株\29"

      

  • Enterprise EditionLDAP SDK(C API)

    (o=富士通\\28株\\29)

      

  • LDAP SDK(JNDI)

    (o=富士通\\(株\\))