Insertar y Buscar Datos en OpenLDAP

El insertar información en un servidor LDAP es uno de los primeros pasos a seguir después de su instalación, pero antes de insertar información es conveniente saber cual es su estructura dentro de las bases de datos (LDBM) utilizadas por LDAP .

 Todo nodo o fragmento en un servidor LDAP 
es un DN Distinguished Name 

Es dentro de cada Distinguished Name que son definidos distintos atributos los cuales contienen información relevante como: Contraseñas, Apellidos, Fotografías, Nodos IP, o cualquier otro fragmento de información imaginable.

Distinguished Name Raíz (suffix)

Cuando son definidos parámetros para base de datos siempre se indica un DN (Distinguished Name) raíz, éste debe ser representativo de la estructura jerárquica que se intenta captar.

DISTINGUISHED NAME Raíz
méxico méxico brasil brasil venezuela
drubio garaiza lsantos ffontes kpiment
3ffw12eg 2emndfs we334faf tert232 4fhlzpqa
(52)-(6)-3422321 (52)-(5)-2353312 (55)-(11)-8696446 (55)-(21)-7453242 (58)-(2)-4943421

La jerarquía anterior representa una organización , por lo que el Distinguished Name Raíz puede ser:


  "dc=osmosislatina, dc=com"

            o 

  "o=Osmosislatina, c=MX"

La composición de cada distinguished name puede variar, en este caso se utilizaron los vocablos dc de "Domain Component", c de "Country", o de "Object", sin embargo también hubiera sido posible utilizar p de "País",cd de "Componente Dominio". Los vocablos son solo descriptivos y su única restricción (si existiese) es llevada acabo en la definición de Schemas .

Distinguished Name Administrativo (rootdn)

Además del DN distinguished name raíz, previa inserción de datos también existe un DN el cual posee acceso global sobre la base de datos (LDBM) en cuestión. Este DN es derivado del DN raíz, por lo que puede ser: "cn=Admin, dc=osmosislatina, dc=com", donde se utiliza cn como vocablo y Admin como valor, sin embargo, al igual que el DN raíz, este vocablo y valor pueden variar.

Para accesar la base de datos (LDBM) utilizando el DN administrativo se emplea la contraseña también definida en slapd.conf mediante el parámetro rootpw.

Archivos LDIF

Estas estructuras o DN distinguished names generalmente se definen en archivos denominados LDIF. El siguiente archivo LDIF contiene los DN's mencionados anteriormente ( raíz y administrativo ):

 dn: dc=osmosislatina,dc=com
 objectClass: dcObject
 objectClass: organization 
 o: Osmosislatina
 description: Desarrollos Open-Source en Español

 # Rol para administrador de la Red
 
 dn: cn=Admin,dc=osmosislatina,dc=com
 objectClass: organizationalRole
 cn: Admin
 description: Administrador del Servidor LDAP 

El primer elemento de cada estructura es casi obvio dn de distinguished name. Los elementos en itálicas objectclass están directamente relacionados con Schemas y definen el tipo de objeto para el DN,esto es: cuales y cuantos atributos puede contener.

Posteriormente se definen los Atributos para cada DN:

Nótese que no necesariamente existe correlación directa entre el DN y sus atributos, y como fue mencionado anteriormente la única restricción para atributos (si existiese) es llevada acabo mediante Schemas

Insertar DN's raíz y administrativo

Aunque los DN's raíz y administrativos se encuentran definidos para una base de datos (LDBM) es necesario insertarlos antes de realizar cualquier tipo de operación, el siguiente ejemplo asume que los parámetros para base de datos definidos en la sección de configuración serán utilizados.

 ldapadd -f osmo.ldif -D "cn=Admin,dc=osmosislatina,d=com" -w daniel 

Donde osmo.ldif es el archivo LDIF.

DN's Generales

Una vez definidos los DN's raíz y administrativo es posible insertar otros DN's que conformaron parte de la jerarquía. A continuación tres DN's estructurados como un archivo LDIF:

dn: cn=Daniel Robledo,dc=osmosislatina,dc=com
cn: Daniel Robledo 
p=Mexico
mail: drobledo@yahoo.com
telefono: (52)-(6)-3422321

dn: cn=Fernanda Fontes,dc=osmosislatina,dc=com 
cn: Fernanda Fontes
p=Brazil
mail: fontes@yahoo.com
telefono: (55)-(11)-8696446

dn: cn=Luis Arano,dc=osmosislatina,dc=com
cn: Luis Arano 
p=Argentina
mail: larano@slb.com
teléfono: (58)-(2)-4943421 

Para agregar estos DN's a la base de datos (LDBM) se debe ejecutar:

ldapadd -f personal.ldif -D "cn=Admin,dc=osmosislatina,dc=com" -w daniel 

Donde personal.ldif es el archivo LDIF definido en la parte superior.

Mas DN's

Los DN's y sus atributos declarados anteriormente son solo básicos, ya que es posible definir una extensa jerarquía así como atributos; DN's por países, oficinas, hardware...., así como atributos relacionados con: nodos IP ,contraseñas, fotografías JPEG o GIF

Búsquedas

Con los DN's que ya han sido insertados en la base de datos (LDBM) del servidor LDAP, ya es posible realizar búsquedas de información:

La instalación del servidor OpenLDAP que ha sido llevada acabo permite que cualquier tipo de búsqueda sea llevada acabo, sin embargo, en un ambiente de producción es un hecho que deben ser agregados diversos filtros y restricciones en base al usuario que este realizando la búsqueda.

Otras Herramientas para Insertar y Buscar Información en un Servidor LDAP

Los ejemplos anteriores utilizaron las herramientas ldapadd y ldapsearch ofrecidas por OpenLDAP, sin embargo, cabe mencionar que existen otras herramientas para realizar búsquedas e insertar información en cualquier directorio LDAP: