Introducción a LDAP y los Servicios de Directorio

1,975 views

Published on

Introducción a LDAP y los Servicios de Directorio

Published in: Education
  • Be the first to comment

Introducción a LDAP y los Servicios de Directorio

  1. 1. Universidad Tecnológica del Sur de SonoraFundamentos de LDAPIntroducción a los Servicios de Directorio José Manuel Acosta Rendón Enero 2011
  2. 2. Qué es un Directorio ? (General)Un directorio es un conjunto de objetos con atributos organizados en unamanera lógica y jerárquica. El ejemplo más común es el directorio telefónico,que consiste en una serie de nombres (personas u organizaciones) que estánordenados alfabéticamente, con cada nombre teniendo una dirección y unnúmero de teléfono adjuntos. Qué es un Directorio ? (Específico) El Directorio es una aplicación distribuida definida dentro de la arquitectura de sistemas abiertos (OSI) para dar soporte a la asignación de nombres, almacenamiento, búsqueda, catálogo y gestión de información relacionada con objetos OSI. En particular, un objeto OSI puede ser un usuario humano, un proceso de aplicación, un nodo de red, etc.
  3. 3. Su funciónUna de las principales misiones del Directorio es la de proveer mecanismospara construir y manipular nombres amigables (esto es, fáciles de manejar yrecordar por usuarios humanos) para referirse a los distintos objetos OSI.Cualquier objeto OSI tiene asignado un nombre único de Directorio que lodistinguirá de otros objetos, y que permite a las entidades OSI acceder ainformación sobre dicho objeto almacenada en el Directorio utilizando unnombre distintivo como índice.
  4. 4. CaracterísticasAunque el Directorio puede verse como una base de datos de uso general,éste ha sido diseñado pensando en los requerimientos de directorionecesarios en las aplicaciones OSI y en los servicios de telecomunicación. Noobstante, el Directorio puede ser implementado sobre una base de datos deuso general. A nivel de transacciones, el servicio de Directorio se caracterizaporque el número de interrogaciones (lectura de información) al sistemasiempre será muy superior al número de actualizaciones (escritura deinformación).
  5. 5. CaracterísticasEl Directorio aísla a los usuarios de los cambios frecuentes de una red conla introducción de nombres para sus componentes. De esta forma, porejemplo, una máquina o una entidad de aplicación pueden identificarsemediante un nombre único y permanente que lo independice de una direcciónfísica de red o de una dirección de presentación respectivamente. Al mismotiempo, el Directorio proporciona una visión más amigable de la red encuanto los nombres son más manejables por los humanos que las direccionesfísicas.
  6. 6. Visión general del DirectorioEl Directorio es un conjunto de sistemas abiertos que cooperan paraestablecer una base de datos lógica con información sobre objetos yentidades que componen o utilizan el mundo OSI. Los usuarios delDirectorio, incluyendo personas y programas de computadora, pueden leer ymodificar la información, o parte de ella, almacenada en el Directorio,siempre y cuando tengan permiso para realizar tal acción. Cada usuario delDirectorio utiliza un agente de usuario de Directorio (DUA, Directory UserAgent) para acceder a los servicios proporcionados por el sistema.La información almacenada en el Directorio se denomina de una formageneral Base de información del directorio (DIB, Directory Information Base).Esta información se encuentra distribuida a lo largo de los sistemas queconforman el directorio global.
  7. 7. El Servicio de DirectorioUn servicio de directorio (SD) es una aplicación o un conjunto deaplicaciones que almacena y organiza la información sobre los usuarios deuna red de ordenadores, sobre recursos de red, y permite a losadministradores gestionar el acceso de usuarios a los recursos sobre dichared. Además, los servicios de directorio actúan como una capa de abstracciónentre los usuarios y los recursos compartidos.Un servicio de directorio no debería confundirse con el repositorio dedirectorio, que es la base de datos la que contiene la información sobre losobjetos de nombrado gestionada por el servicio de directorio. En el caso delmodelo de servicio de directorio distribuido en X.500, se usa uno o másespacios de nombre (árbol de objetos) para formar el servicio de directorio. Elservicio de directorio proporciona la interfaz de acceso a los datos que secontienen en unos o más espacios de nombre de directorio. La interfaz delservicio de directorio es la encargada de gestionar la autenticación de losaccesos al servicio de forma segura, actuando como autoridad central para elacceso a los recursos de sistema que manejan los datos del directorio.
  8. 8. El Servicio de DirectorioComo base de datos, un servicio del directorio está altamente optimizadopara lecturas y proporciona alternativas avanzadas de búsqueda en losdiferentes atributos que se puedan asociar a los objetos de un directorio. Losdatos que se almacenan en el directorio son definidos por un esquemaextensible y modificable. Los servicios de directorio utilizan un modelodistribuido para almacenar su información y esa información generalmenteestá replicada entre los servidores que forman el directorio.
  9. 9. Ventajas• El Directorio es Dinámico.• El Directorio es Flexible.a) Contenido: Los datos almacenados en el Directorio son cualquier tipo de información que pueda se almacenada en un fichero.b) Organización: La ventaja de los directorios electrónicos es que la organización de la información permite localizarla de diferentes maneras, incluso puede realizar búsquedas aproximadas, algo que es imposible con los directorios clásicos.• “El Directorio es Seguro.”• El Directorio es configurable.
  10. 10. Descripción del DirectorioUn directorio puede verse como una base de datos especializada, lasdiferencias entre una base de datos de propósito general y un directorio sonlas siguientes:• Relación entre lecturas y escrituras.• Extensibilidad.• Distribución de los datos.• Replicación de los datos.• Rendimiento• Estándares.
  11. 11. Relación entre lecturas y escriturasEn un directorio se espera un número muy alto de lecturas frente aescrituras, esto se debe a que generalmente la información contenida en eldirectorio cambia raramente, por ejemplo cuántas veces cambiamos elnúmero de teléfono y cuántas veces alguien busca nuestro teléfono en eldirectorio para llamarnos...Este es un aspecto importante, ya que mientras que en una base de datos depropósito general, las optimizaciones se realizan tanto en las lecturas comoen las escrituras, al crear un directorio, los esfuerzos de optimización seconcentran en las búsquedas y lecturas, mientras que no importa que por ellose penalicen las actualizaciones.
  12. 12. ExtensibilidadEl término directory schema se refiere a los tipos de información que sealmacenan en el directorio, qué reglas debe cumplir dicha información y cómose realizan las operaciones de búsqueda sobre estos datos.La ventaja que presentan los directorios frente a las bases de datostradicionales estriba en que dicho esquema se puede modificar para cubrir lasnecesidades que vayan surgiendo en la organización. Esta característica nosuele encontrarse en las bases de datos de propósito general.
  13. 13. Distribución de los datosAlgunas bases de datos de propósito general permiten la distribución de losdatos, pero generalmente esta distribución de datos permite únicamentealmacenar una tabla en un servidor y otra en otro servidor distinto(fragmentación vertical), y la distribución de la información implica protocolosmás complejos para la realización de actualizaciones, por lo quegeneralmente no suelen utilizarse.Los directorios permiten que los datos referentes a toda una unidadorganizativa sean almacenados en un servidor controlado por esta unidad(fragmentación horizontal). Este tipo de fragmentación simplifica lasactualizaciones, ya que todos los datos referentes a una persona seencuentran en el mismo servidor y permite a su vez optimizar las búsquedas,ya que las consultas se pueden ejecutar en paralelo.
  14. 14. Replicación de la informaciónLas bases de datos de propósito general que admiten replicación de datos,están preparadas para replicar los datos en un número reducido deservidores, esto se debe a que las copias deben ser consistentes y por lotanto, las actualizaciones deben realizarse de forma sincronizada entre lasdiferentes sedes. En el caso de los directorios, es aceptable unainconsistencia temporal, por lo que el protocolo de replicación/actualizaciónes menos restrictivo.Inherente a la replicación de la información, se encuentra el aumento en lafiabilidad del sistema, ya que en caso de catástrofe, se puede utilizar elservidor replicado. Además también se puede obtener una mejora en elrendimiento al situar las replicas en redes cercanas a los usuarios,optimizando el camino de acceso al directorio y repartiendo la carga entre lasdistintas replicas. La fiabilidad del directorio comienza a ser crítica en elmomento en el que varias aplicaciones lo utilizan para tareas comoautenticación , control de accesos y gestión de configuración.
  15. 15. RendimientoLas necesidades de rendimiento de un directorio frente a una base de datosde propósito general son considerablemente diferentes. Se espera que unservidor de base de datos permita hasta cientos de transacciones porsegundo, mientras el rendimiento agregado del directorio se espera que seadel orden de miles de consultas por segundo.Estos requerimientos de rendimiento se deben a que el directorio forma partedel núcleo de muchas aplicaciones, y por lo tanto debe estar preparado pararesponder a las múltiples consultas que estas aplicaciones pueden solicitarle.
  16. 16. EstándaresEl hecho de que las bases de datos de propósito general utilicen ligerasvariantes del estándar SQL no suele ser un problema, ya que rara vez tienenque interactuar dos bases de datos de diferentes fabricantes, sin embargo,dado que el directorio es una base de datos accesible desde múltiplesaplicaciones, el estricto cumplimiento del estándar es un requisitoindispensable. Este aspecto es importante, ya que permite separar eldesarrollo del cliente del desarrollo del servidor, permitiendo que cadadesarrollo este optimizado en el sentido que sea conveniente.Como valor añadido, el hecho de estar sujeto a un estándar permite que eladministrador no esté restringido a un único fabricante, pudiendo cambiar deproveedor en el momento que lo considere conveniente, sin tener quecambiar el software que utilizan los clientes.
  17. 17. ¿Para qué puede utilizarse el Directorio?Hasta ahora se han expuesto algunas de las aplicaciones de los directoriostradicionales y en qué medida pueden beneficiarse con la implantación dedirectorios electrónicos. Ahora ha llegado el momento de ver cuáles puedenser las aplicaciones que pueden desarrollarse utilizando las característicasespeciales de los directorios electrónicos.Encontrar información.Una de las principales utilidades de los directorios ha sido la de buscarinformación, de hecho, el prototipo de directorio siempre ha sido la guía deteléfonos, en la cual los abonados se encuentran ordenados alfabéticamente.La ventaja de los directorios electrónicos está en que permiten unaescalabilidad no disponible en los directorios tradicionales, basta imaginarseel espacio necesario para almacenar la guía de abonados a la compañíatelefónica para comprender dicha escalabilidad. Además, el hecho de serdirectorios electrónicos permite acceder a la información contenida en ellosde maneras distintas a las tradicionales. Por ejemplo, se pueden realizarbúsquedas por apellido, por dirección, teléfono, etc.
  18. 18. ¿Para qué puede utilizarse el Directorio?Gestionar información.A veces no basta con tener la información almacenada en un directorioelectrónico, es muy importante que dicho directorio sea accesible desde todaslas aplicaciones que son susceptibles de utilizarlo.Cuando solo una aplicación accede a los datos, quizás el esfuerzo necesariopara implantar un servicio de directorio electrónico estándar pueda serinnecesario, pero la experiencia demuestra que tarde o temprano variasaplicaciones utilizan esos datos y en el caso de no haber implantado undirectorio centralizado nos encontramos con varios directorios que debenestar sincronizados y que acceden de maneras diferentes a los datoscontenidos en directorios creados a medida. Esto implica un mayor esfuerzopara realizar el mantenimiento y un freno al desarrollo de nuevas aplicacionesbasadas en el directorio.
  19. 19. ¿Para qué puede utilizarse el Directorio?Aplicaciones de Seguridad.El servicio de directorio es el soporte ideal para la distribución de loscertificados electrónicos personales, en concreto, el directorio resuelve dosproblemas principales:La gestión de la infraestructura de clave pública:• Creación: Ya que permite incorporar al certificado los datos contenidos en el servidor LDAP.• Distribución: Ya que permite tener accesibles mediante un protocolo estándar los certificados electrónicos.• Destrucción: Ya que permite implementar la revocación de un certificado con la simple operación de borrado del certificado del servidor LDAP.
  20. 20. ¿Qué no es el Directorio?Antes de avanzar en la descripción de las virtudes de los directorios, esconveniente aclarar las diferencias entre el directorio y otros programas y/oservicios.Directorio vs Bases de datos.Generalmente se describe un directorio como una base de datos, pero es unabase de datos especializada cuyas características la apartan de una base dedatos relacional de propósito general.Una de estas características especiales es que son accedidas (búsqueda olectura) mucho más que actualizadas (escritura). Muchos usuarios puedenestar consultando el número de teléfono de una persona, o buscando unaestación de trabajo con un programa concreto, pero generalmente tanto elnúmero de teléfono de la persona, como los programas instalados en unaestación no cambian con excesiva frecuencia. Por ello:
  21. 21. ¿Qué no es el Directorio?• Los directorios están optimizados para accesos en lectura, frente a las bases de datos convencionales, que se encuentran optimizadas para lectura y escritura.• Los directorios están optimizados para almacenar información relativamente estática, por lo que no son recomendables para almacenar datos que cambian con frecuencia como por ejemplo la carga de una estación de trabajo.• Los directorios no soportan transacciones. Las transacciones son operaciones de base de datos que permiten controlar la ejecución de una operación compleja, de modo que dicha operación se completa totalmente o no se ejecuta en absoluto. Las bases de datos convencionales implementan esta funcionalidad, a costa de hacer su implementación más compleja. Pero el tipo de información que se almacena generalmente en el directorio no requiere una consistencia estricta y se considera aceptable que el número de teléfono de una persona no este actualizado de forma temporal.
  22. 22. ¿Qué no es el Directorio?• La mayoría de las bases de datos convencionales utilizan el lenguaje de consulta SQL, que permite el desarrollo de funciones de consulta y actualización muy complejas, a costa del tamaño y complejidad de la aplicación. Por otra parte, los directorios LDAP utilizan un protocolo simplificado y optimizado que puede ser utilizado para la construcción de aplicaciones simples y pequeñas.• Dado que generalmente los directorios son utilizados para consulta, en un entorno no transaccional, tanto el cliente como el servidor pueden ser optimizados y simplificados en esa dirección.
  23. 23. ¿Qué no es el Directorio?Antes de avanzar en la descripción de las virtudes de los directorios, esconveniente aclarar las diferencias entre el directorio y otros programas y/oservicios.Directorio vs Bases de datos.Generalmente se describe un directorio como una base de datos, pero es unabase de datos especializada cuyas características la apartan de una base dedatos relacional de propósito general.Una de estas características especiales es que son accedidas (búsqueda olectura) mucho más que actualizadas (escritura). Muchos usuarios puedenestar consultando el número de teléfono de una persona, o buscando unaestación de trabajo con un programa concreto, pero generalmente tanto elnúmero de teléfono de la persona, como los programas instalados en unaestación no cambian con excesiva frecuencia. Por ello:
  24. 24. ¿Qué no es el Directorio?Directorio vs Sistemas de ficheros.Los directorios están optimizados para almacenar pequeños fragmentos deinformación que puede estructurarse como entradas con diferentes atributos,en cambio, los sistemas de ficheros contienen archivos, a veces de tamañossuperiores al gigabyte. Además, los sistemas de ficheros permiten acceder aun fichero y posicionarse dentro de él, sin embargo, los directorios a lo sumopermiten acceder a un atributo, pero no hay forma de posicionarse dentro dedicho atributo, que por lo tanto debe ser leído por completo.Directorio vs Web.Desde que apareció en escena el servicio de Web, se han desarrolladomultitud de aplicaciones sobre este protocolo. Pero el servicio de Web estácentrado en proporcionar un interfaz de usuario agradable, en ningúnmomento posee las capacidades de búsqueda que posee el servicio dedirectorio. Si deseamos hacer accesible a los usuarios los contenidos de unabase de datos, quizá el servicio Web sea la mejor elección, pero si deseamosque estos datos estén accesibles para una gran variedad de aplicaciones, elservicio de directorio es el adecuado.
  25. 25. ¿Qué no es el Directorio?Directorio vs DNS.El servicio DNS se encarga de la traducción de nombres de dominio adirecciones IP y viceversa. Tiene además una ligera similitud con el serviciode directorio, ya que ambos proporcionan un interfaz de acceso a una base dedatos jerárquica. Pero difieren en otros aspectos:• El servicio DNS esta optimizado para realizar su cometido, es decir, la traslación de nombres de ordenadores a direcciones IP, mientras que los servidores de directorio están optimizados de forma más general.• La información almacenada en el servicio DNS tiene una estructura fija, mientras que el servicio de directorio suele permitir la extensión de dicha estructura.• El servicio de directorio permite actualizaciones, mientras que el servicio DNS no las permite.• El servicio DNS opera con protocolos no orientados a conexión (UDP), mientras que los servicios de directorio suelen utilizar protocolos orientados a conexión.
  26. 26. ¿Qué no es el Directorio?Aún cuando hay varios trabajos del IETF para acomodar el servicio dedirectorio de modo que trabaje igual que el servicio DNS, entre losadministradores del servicio DNS prevalece la máxima “If it works do notfix it”Integración del Directorio con otros servicios.• Primeramente el servicio de directorio puede actuar como servidor de autenticación, proporcionando el servicio de contraseña única. Además puede contener información necesaria para que los distintos servidores puedan decidir si un usuario puede acceder a determinada información.• Seguidamente, podemos utilizar el servicio de directorio como repositorio en el cual almacenar la información que varios servidores deben compartir (por ejemplo, la configuración, información sobre el control de accesos, etc).• Además, el directorio proporciona un protocolo estándar para gestionar toda la información contenida en él, evitando la necesidad de desarrollar dicho protocolo.Otra utilidad que puede resultar interesante es la de emplear el servicio dedirectorio para indexar la documentación almacenada en el servidor Web.
  27. 27. ¿ Dudas ?
  28. 28. ¡¡ Gracias ¡¡José Manuel Acosta R.Enero 2011

×