关于轻型目录访问协议 (LDAP)

轻型目录访问协议 (LDAP) 是一个行业标准协议,用于访问和查看有关用户和设备的信息。 利用 LDAP,可以将这些信息组织和存储到目录中。 由于可以根据需要进行更新,因此 LDAP 目录是动态的;同时它也是分布式的,从而保护该目录免受单点故障危害。

以下示例说明了可用于搜索该目录的 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> 必须包含字符 *、( 或 ) 之一,请在该字符前面加上斜杠(\)转义符。