技術情報

技術情報

ディレクトリサービス OpenLDAP

2012年8月24日

技術文書トップへ

LDAPの検索操作

LDAPの操作モデル

LDAPクライアントがLDAPサーバに対して要求できる操作を以下の表にまとめます。

ページトップ

検索操作

検索操作はLDAPの操作の中でも複雑な部類に入ります。
検索の際には、「検索ベース」、「スコープ」、「検索フィルタ」というパラメータを意識する必要があります。

検索ベース
検索ベース(search base)は、DITの中で検索の起点となるエントリを言います。
スコープ
スコープ(scope)は、検索ベースからの検索範囲を指定するためのものです。

例えば、次のようなツリーがあるとします。

検索ベースを(dc=exmaple,dc=valinux,dc=jp)とすると、検索範囲は次のように表すことができます。なお、○が検索範囲、×が検索範囲外です。

検索フィルタ
検索フィルタ(search filter)は、検索するエントリの属性の条件を指定します。
検索フィルタの文字列表現の書式は、RFC4515 (Lightweight Directory Access Protocol (LDAP): String Representation of Search Filters)に定義されています。
  • 同値(=)
    リスト: 検索フィルタ(同値)
    mail=user001@example.valinux.jp

    属性mailが、user001@example.valinux.jpであるエントリのみが検索されます。

  • 近値(~=)
    リスト: 検索フィルタ(近値)
    cn~=test

    指定値にほぼ等しい値を持つエントリが検索されます。

  • 以上(>=)
    リスト: 検索フィルタ(以上)
    gidNumber>=600

    gidNumberが600以上のエントリが検索されます。

  • 以下(<=)
    リスト: 検索フィルタ(以下)
    gidNumber<=600

    gidNumberが600以下のエントリが検索されます。

  • 存在(=*)
    リスト: 検索フィルタ(存在)
    cn=*

    cnを含む全てのエントリが検索されます。

  • 部分文字列( 属性=[ <先頭> ] any [ <末尾> ] )
    リスト: 検索フィルタ(先頭一致)
    uid=user*

    uidが「user」から始まるエントリが検索されます。

  • リスト: 検索フィルタ(含む場合)
    mail=*dev*

    mailに「dev」を含むエントリが検索されます。

  • 論理積(&)
    リスト: 検索フィルタ(論理積)
    (&(cn=taro)(sn=yamada))

    cnが「taro」で、かつsnが「yamada」であるエントリを検索します。

  • 論理和(|)
    リスト: 検索フィルタ(論理和)
    (|(cn=taro)(cn=ichiro))

    cnが「taro」または「ichiro」であるエントリを検索します。

  • 否定(!)
    リスト: 検索フィルタ(否定)
    (!(cn=taro))

    cnが「taro」でないエントリを検索します。

ページトップ