This topic deals with the syntax and rules for an LDAP filter, which is a normal string which expresses the criteria for the filter.
Sintaxis básica de filtro LDAP y operadores
Los filtros LDAP constan de uno o más criterios. Si existe más de un criterio en una definición de filtro, se pueden concatenar mediante operadores lógicos AND u OR . Los operadores lógicos se colocan siempre delante de los operandos (es decir, los criterios). Esto se conoce como la ‘notación polaca‘.
Los criterios de búsqueda deben colocarse entre paréntesis y luego todo el término debe encerrarse entre paréntesis una vez más.
Operación AND:
(& (…K1…) (…K2…)) o con más de dos criterios: (& (…K1…) (…K2…) (…K3…) (…K4…))
Operación OR:
(| (…K1…) (…K2…)) o con más de dos criterios: (| (…K1…) (…K2…) (…K3…) (…K4…))
Operación anidada:
Cada operación AND/OR también puede entenderse como un único criterio:
(|(& (…K1…) (…K2…))(& (…K3…) (…K4…))) significa: (K1 AND K2) OR (K3 AND K4)
Los criterios de búsqueda consisten en un requisito para un atributo LDAP, p. ej. (givenName=Sandra). Deben tenerse en cuenta las siguientes reglas:
| Igualdad: | (attribute=abc) , p. ej. (&(objectclass=user)(displayName=Foeckeler) |
| Negación: | (!(attribute=abc)) , p. ej. (!objectClass=group) |
| Presencia: | (attribute=*) , p. ej. (mailNickName=*) |
| Ausencia: | (!(attribute=*)) , p. ej. (!proxyAddresses=*) |
| Mayor que: | (attribute>=abc) , p. ej. (mdbStorageQuota>=100000) |
| Menor que: | (attribute<=abc) , p. ej. (mdbStorageQuota<=100000) |
| Proximidad: | (attribute~=abc) , p. ej. (displayName~=Foeckeler) Precaución: ~= se trata como = en entornos ADS !! |
| Comodines: | p. ej. (sn=F*) o (mail=*@cerrotorre.de) o (givenName=*Paul*) |