Lightweight Directory Access Protocol (LDAP) について

Lightweight Directory Access Protocol (LDAP) は、ユーザおよびデバイスに関する情報へのアクセスおよび表示を行う業界標準のプロトコルです。LDAP により、この情報を整理してディレクトリに保存できます。LDAP ディレクトリは、必要に応じて更新できる動的なディレクトリで、1 つのポイントのエラーから保護されて配布されます。

次の例は、ディレクトリの検索に使用する LDAP クエリを示しています。

  • すべてのエントリの取得:(objectClass=*)
  • 一般名に 'bob' を含んでいるエントリの取得:(cn=*bob*)
  • 'bob' 以上の一般名を持つエントリの取得:(cn>='bob')
  • 電子メール属性を持つすべてのユーザの取得:(&(objectClass=user)(email=*))
  • 電子メール属性を持ち、姓名が 'smith' であるすべてのユーザ エントリの取得:(&(sn=smith)(objectClass=user)(email=*))
  • 一般名が 'andy'、'steve'、または 'margaret' で始まるすべてのユーザ エントリの取得:(&(objectClass=User)(| (cn=andy*)(cn=steve*)(cn=margaret*)))
  • 電子メール属性を持たないすべてのエントリの取得:(!(email=*))

検索フィルタの正式な定義は次のとおりです (RFC 1960 より)。

  • filter> ::= '(' <filtercomp> ')'
  • <filtercomp> ::= <and> > <or> > <not> > <item>
  • <and> ::= '&' <filterlist>
  • <or> ::= '|' <filterlist>
  • <not> ::= '!'<filter>
  • <filterlist> ::= <filter> > <filter> <filterlist>
  • <item> ::= <simple> > <present> > <substring>
  • <simple> ::= <attr> >filtertype> <value>
  • <filtertype> ::= <equal> > <approx> > <ge> > <le>
  • <equal> ::= '='
  • <approx> ::= '~='
  • <ge> ::= '>='
  • <le> ::= '<='
  • <present> ::= <attr> '=*'
  • <substring> ::= <attr> '=' >initial> <any> <final>
  • <initial> ::= NULL > <value>
  • <any> ::= '*' <starval>
  • <starval> ::= NULL > <value> '*' <starval>
  • <final> ::= NULL > <value>

トークン <attr> は、属性タイプを表す文字列です。トークン <value> は、基本となるディレクトリ サービスによって定義された形式の属性値を現す文字列です。

<value> に * または or の文字を使用する必要がある場合は、その文字の前にバックスラッシュ (\) を付けて文字をエスケープします。