introducción a ldap y los servicios de directorio

28
Fundamentos de LDAP Introducción a los Servicios de Directorio Universidad Tecnológica del Sur de Sonora José Manuel Acosta Rendón Enero 2011

Upload: opencourseware-mexico

Post on 30-Nov-2014

2.338 views

Category:

Education


3 download

DESCRIPTION

Introducción a LDAP y los Servicios de Directorio

TRANSCRIPT

Page 1: Introducción a LDAP y los Servicios de Directorio

Fundamentos de LDAPIntroducción a los Servicios de Directorio

Universidad Tecnológica del Sur de Sonora

José Manuel Acosta RendónEnero 2011

Page 2: Introducción a LDAP y los Servicios de Directorio

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.

El Directorio es una aplicación distribuida definida dentro de la arquitecturade sistemas abiertos (OSI) para dar soporte a la asignación de nombres,almacenamiento, búsqueda, catálogo y gestión de información relacionadacon objetos OSI. En particular, un objeto OSI puede ser un usuario humano,un proceso de aplicación, un nodo de red, etc.

Qué es un Directorio ? (Específico)

Page 3: Introducción a LDAP y los Servicios de Directorio

Su función

Una 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.

Page 4: Introducción a LDAP y los Servicios de Directorio

Características

Aunque 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).

Page 5: Introducción a LDAP y los Servicios de Directorio

Características

El 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.

Page 6: Introducción a LDAP y los Servicios de Directorio

Visión general del Directorio

El 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.

Page 7: Introducción a LDAP y los Servicios de Directorio

El Servicio de Directorio

Un 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.

Page 8: Introducción a LDAP y los Servicios de Directorio

El Servicio de Directorio

Como 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.

Page 9: Introducción a LDAP y los Servicios de Directorio

Ventajas

• El Directorio es Dinámico.

• El Directorio es Flexible.

a) Contenido: Los datos almacenados en el Directorio son cualquier tipode información que pueda se almacenada en un fichero.

b) Organización: La ventaja de los directorios electrónicos es que laorganización de la información permite localizarla de diferentes maneras,incluso puede realizar búsquedas aproximadas, algo que es imposible conlos directorios clásicos.

• “El Directorio es Seguro.”

• El Directorio es configurable.

Page 10: Introducción a LDAP y los Servicios de Directorio

Descripción del Directorio

Un 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.

Page 11: Introducción a LDAP y los Servicios de Directorio

Relación entre lecturas y escrituras

En 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.

Page 12: Introducción a LDAP y los Servicios de Directorio

Extensibilidad

El 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.

Page 13: Introducción a LDAP y los Servicios de Directorio

Distribución de los datos

Algunas 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.

Page 14: Introducción a LDAP y los Servicios de Directorio

Replicación de la información

Las 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.

Page 15: Introducción a LDAP y los Servicios de Directorio

Rendimiento

Las 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.

Page 16: Introducción a LDAP y los Servicios de Directorio

Estándares

El 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.

Page 17: Introducción a LDAP y los Servicios de Directorio

¿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.

Page 18: Introducción a LDAP y los Servicios de Directorio

¿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.

Page 19: Introducción a LDAP y los Servicios de Directorio

¿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 enel servidor LDAP.

• Distribución: Ya que permite tener accesibles mediante un protocoloestándar los certificados electrónicos.

• Destrucción: Ya que permite implementar la revocación de un certificadocon la simple operación de borrado del certificado del servidor LDAP.

Page 20: Introducción a LDAP y los Servicios de Directorio

¿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:

Page 21: Introducción a LDAP y los Servicios de Directorio

¿Qué no es el Directorio?

• Los directorios están optimizados para accesos en lectura, frente a lasbases de datos convencionales, que se encuentran optimizadas paralectura y escritura.

• Los directorios están optimizados para almacenar informaciónrelativamente estática, por lo que no son recomendables para almacenardatos que cambian con frecuencia como por ejemplo la carga de unaestación de trabajo.

• Los directorios no soportan transacciones. Las transacciones sonoperaciones de base de datos que permiten controlar la ejecución de unaoperación compleja, de modo que dicha operación se completa totalmenteo no se ejecuta en absoluto. Las bases de datos convencionalesimplementan esta funcionalidad, a costa de hacer su implementación máscompleja. Pero el tipo de información que se almacena generalmente en eldirectorio no requiere una consistencia estricta y se considera aceptableque el número de teléfono de una persona no este actualizado de formatemporal.

Page 22: Introducción a LDAP y los Servicios de Directorio

¿Qué no es el Directorio?

• La mayoría de las bases de datos convencionales utilizan el lenguaje deconsulta SQL, que permite el desarrollo de funciones de consulta yactualización muy complejas, a costa del tamaño y complejidad de laaplicación. Por otra parte, los directorios LDAP utilizan un protocolosimplificado y optimizado que puede ser utilizado para la construcción deaplicaciones simples y pequeñas.

• Dado que generalmente los directorios son utilizados para consulta, en unentorno no transaccional, tanto el cliente como el servidor pueden seroptimizados y simplificados en esa dirección.

Page 23: Introducción a LDAP y los Servicios de Directorio

¿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:

Page 24: Introducción a LDAP y los Servicios de Directorio

¿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.

Page 25: Introducción a LDAP y los Servicios de Directorio

¿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, latraslación de nombres de ordenadores a direcciones IP, mientras que losservidores 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 dichaestructura.

• El servicio de directorio permite actualizaciones, mientras que el servicioDNS no las permite.

• El servicio DNS opera con protocolos no orientados a conexión (UDP),mientras que los servicios de directorio suelen utilizar protocolosorientados a conexión.

Page 26: Introducción a LDAP y los Servicios de Directorio

¿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 deautenticación, proporcionando el servicio de contraseña única. Ademáspuede contener información necesaria para que los distintos servidorespuedan decidir si un usuario puede acceder a determinada información.

• Seguidamente, podemos utilizar el servicio de directorio como repositorioen 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 gestionartoda la información contenida en él, evitando la necesidad de desarrollardicho protocolo.

Otra utilidad que puede resultar interesante es la de emplear el servicio dedirectorio para indexar la documentación almacenada en el servidor Web.

Page 27: Introducción a LDAP y los Servicios de Directorio

¿ Dudas ?

Page 28: Introducción a LDAP y los Servicios de Directorio

¡¡ Gracias ¡¡

José Manuel Acosta R.Enero 2011