Acerca del Protocolo ligero de acceso a directorios (LDAP)

LDAP es un protocolo estándar de acceso y visualización de información sobre usuarios y dispositivos. El protocolo LDAP permite organizar y almacenar esta información en un directorio. Los directorios LDAP son dinámicos en tanto que se pueden actualizar si es necesario, y son distribuidos, lo que los protege de un único punto de error.

Los ejemplos siguientes muestran consultas LDAP que se pueden utilizar para buscar en el directorio:

  • Obtener todas las entradas: (objectClass=*)
  • Obtener entradas que contengan 'pedro' en el nombre común: (cn=*pedro*)
  • Obtener entradas con un nombre común mayor o igual a 'pedro': (cn>='pedro')
  • Obtener todos los usuarios con un atributo de correo electrónico: (&(objectClass=user)(email=*))
  • Obtener todas las entradas de usuario con un atributo de correo electrónico y un apellido igual a 'hernández': (&(sn=hernández)(objectClass=user)(email=*))
  • Obtener todas las entradas de usuario con un nombre común que empiece por 'josé', 'carlos' o 'gloria': (&(objectClass=User)(| (cn=josé*)(cn=carlos*)(cn=gloria*)))
  • Obtener todos las entradas sin un atributo de correo electrónico: (!(correo electrónico=*))

La definición formal del filtro de búsqueda es la siguiente (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>

El token <attr> es una cadena que representa un elemento AttributeType. El token <value> es una cadena que representa un elemento AttributeValue cuyo formato se define por el servicio de directorio subyacente.

Si un <value> debe contener uno de los caracteres * o (o), preceda el carácter carácter de escape de barra oblicua (\).