关于轻型目录访问协议 (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> 必须包含字符 *、( 或 ) 之一,请在该字符前面加上斜杠(\)转义符。