2011-09-19 15 views
7

En mi programa de Cliente LDAP a veces tengo que incluir el valor DN dentro del filtro de búsqueda. Pero este DN está cambiando con frecuencia y cada vez que tengo que cambiar este filtro en mi código.Usando DN en el filtro de búsqueda

Cuando busqué en Google para los que tienen algo como esto

Supongamos que desea tirar de todos los usuarios de ObjectType = Persona de la R & D y HR ous, pero no a cualquier usuario de Marketing y PM. El filtro sería:

(&(objectClass=person)(|(ou:dn:=ResearchAndDevelopment)(ou:dn:=HumanResources))) 

¿Alguien puede explicar esto más en detalle?

Respuesta

8

Debe marcar RFC 2254 (Representación de cadena de filtros de búsqueda LDAP). Los filtros LDAP usan polish notation para los operadores booleanos. Por lo que el operador está escrito antes de sus operandos:

(&(condition1)(condition2)(condition3)...) 

El ejemplo anterior significa que desea que todas las entradas LDAP que satisfacen condición1 Y condición2 Y Condition3 y así sucesivamente.

Luego están las condiciones. Son muy simples y pueden consistir sólo en unos pocos tipos:

  • condición actual - (attrName=*)
  • sencilla estado - (attrName>=value)/(attrName<=value)/(attrNamevalue=value)/(attrName~=value)
  • condición subcadena - (attrName=*value*)/(attrName=*value)/(attrName=value*)
  • extensibles condición - (attrName:dn:=value)/(attrName:matchingRule:=value)

La condición extensible con la palabra clave :dn: significa que desea que también se tengan en cuenta los atributos del DN de entrada. Por lo tanto, para su caso, la entrada cn=John Doe,ou=HumanResources,ou=Users,dc=example,dc=com coincidiría con el filtro (ou:dn:=HumanResource).


Traducción de su filtro de ejemplo para una sentencia de Inglés sería:

mí son las entradas LDAP que tienen objectClass igual a person y disponen de ResearchAndDevelopment o HumanResources en su atributo ou o alguna parte de su DN .

+0

Tenga en cuenta que el soporte para estas condiciones varía según el proveedor. Por ejemplo, Active Directory no admite condiciones extensibles y trata aproximadamente igual ('~ =') e igual ('=') de forma idéntica. [Referencia.] (Http://ldapwiki.com/wiki/ExtensibleMatch) – bishop

Cuestiones relacionadas