Информация о LDAP (Lightweight Directory Access Protocol)

Протокол LDAP (Lightweight Directory Access Protocol) – это стандартный отраслевой протокол для доступа и просмотра информации о пользователях и устройствах. LDAP позволяет систематизировать и хранить информацию в каталоге. Каталог LDAP является динамическим и может обновляться по необходимости, а также является распределенным и защищенным от ошибок в какой-либо его точке.

В следующих примерах отображены запросы LDAP, которые могут быть использованы для поиска в каталоге:

  • Найти все записи: (objectClass=*)
  • Найти записи, содержащие 'bob' в любом месте обычного имени: (cn=*bob*)
  • Найти записи с именем длиннее, чем или равные 'bob': (cn>='bob')
  • Найти всех пользователей с атрибутом электронной почты: (&(objectClass=user)(email=*))
  • Найти все записи с атрибутом e-mail и фамилией '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> представляет тип атрибута (AttributeType). Маркер <value> - это строка, представляющая значение атрибута (AttributeValue), формат которого определяется базовой службой каталога.

Если <value> должно содержать один из символов * или ( или ), перед ним нужно указать символ косой черты (\) для отмены его обработки.