He escrito varias piezas de código que se conectan a servidores LDAP y ejecutan consultas, pero siempre ha sido vudú para mí. Una cosa que realmente no entiendo es el concepto de un DN de enlace. Aquí hay un ejemplo usando la ldapsearch
herramienta de línea de comandos disponible en openldap. (Ignore la falta de autenticación).
ldapsearch -h 1.2.3.4 -D dc=example,dc=com [query]
¿Cuál es el propósito y la función de la -D dc=example,dc=com
parte de esto? ¿Por qué necesitamos vincularnos a una ubicación particular en la jerarquía de directorios? ¿Es para establecer a qué parte del directorio se deben aplicar mis consultas? Por ejemplo, si el nodo raíz del directorio es dc=com
y tiene dos hijos ( dc=foo
y dc=bar
), ¿tal vez quiero que mis consultas estén en contra del dc=foo,dc=com
subárbol y no del dc=bar,dc=com
subárbol?
No se confunda entre la baseDN y la bindDN .
El DN base de una búsqueda es el punto de partida. Donde comenzará a buscar. Bastante autoexplicativo.
El DN de bindDN es básicamente la credencial que está utilizando para autenticarse en un LDAP. Cuando se usa un bindDN, generalmente viene con una contraseña asociada.
En otras palabras, cuando especifica un bindDN está utilizando el acceso de seguridad de ese objeto para atravesar el árbol LDAP.
Ahora, la cadena dc = ejemplo, dc = com no es el mejor ejemplo para un bindDN ya que es un "dominio" para un árbol LDAP. dc significa componente de dominio y cada árbol LDAP define su raíz con una cadena en forma de dc = cadena, dc = cadena, ... Pero estas cadenas no son una "ruta" como el resto del árbol.
Los ejemplos válidos son:
Pero, estos elementos raíz son indivisibles. Parecen que son varios los elementos que representan un camino como el resto del árbol, pero son no . Por ejemplo, en el último ejemplo, un objeto dc = of, dc = domains no existe.
Imagine nombrar su unidad C: como "D: \ my \ folder \". Cada ruta allí se verá como "D: \ my \ folder \ my \ real \ path", lo cual sería confuso ya que la ruta real del archivo sería \ my \ real \ ruta ¿verdad? Bueno, así es como se ve la base (raíz) de un LDAP, con un conjunto de elementos dc =.
Enlace relevante: http://docs.oracle.com/cd/E19199-01/816-6400-10/lsearch.html
fuente