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

Introducción a LDAP

Embed Size (px)

DESCRIPTION

Introducción a LDAP

Citation preview

Page 1: Introducción a LDAP

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

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

Qué es un Directorio ?

Un directorio es similar a una base de datos, pero en general contieneinformación más descriptiva y más basada en atributos.

La información contenida en un directorio normalmente se lee mucho más delo que se escribe. Como consecuencia los directorios no implementannormalmente los complicados esquemas para transacciones o esquemas dereducción que las bases de datos utilizan para llevar a cabo actualizacionescomplejas de grandes volúmenes de datos. Las actualizaciones en undirectorio son usualmente cambios sencillos de todo o nada, si es quepermiten algo.

Page 4: Introducción a LDAP

Qué es un Directorio ?

Los directorios están optimizados para proporcionar una respuestarápida a operaciones de búsqueda o consulta.

Pueden tener capacidad de replicar información de forma amplia, con el finde aumentar la disponibilidad y fiabilidad, y a la vez reducir tiempo derespuesta. Cuando se duplica la información de un directorio, puedenaceptarse inconsistencias temporales entre la información que hay en lasréplicas, siempre que finalmente exista una sincronización.

Page 5: Introducción a LDAP

Qué es un Directorio ?

Hay muchas formas de proporcionar un servicio de directorio. Los diferentesmétodos permiten almacenar en el directorio diferentes tipos de información,establecer requisitos diferentes para hacer referencias a la información,consultarla y actualizarla, la forma en que protege al directorio de accesos noautorizados. Algunos servicios de directorios son locales, proporcionandoservicios a un contexto restringido. Otros servicios son globales,proporcionando servicio en un contexto mucho más amplio.

Page 6: Introducción a LDAP

¿Un directorio LDAP es una base de datos?

El sistema gestor de una base de datos (Database Management System óDBMS) de Sybase, Oracle, Informix ó Microsoft es usado para procesarpeticiones (queries) ó actualizaciones a una base de datos relacional. Estasbases de datos pueden recibir cientos o miles de órdenes de inserción,modificación o borrado por segundo. Un servidor LDAP es usado paraprocesar peticiones (queries) a un directorio LDAP. Pero LDAP procesa lasórdenes de borrado y actualización de un modo muy lento.

En otras palabras, LDAP es un tipo de base de datos, pero no es una base dedatos relacional. No está diseñada para procesar cientos o miles de cambiospor minuto como los sistemas relacionales, sino para realizar lecturas dedatos de forma muy eficiente.

Page 7: Introducción a LDAP

Funcionamiento de LDAP

El servicio de directorio LDAP se basa en un modelo cliente- servidor.

Uno o más servidores LDAP contienen los datos que conforman el árbol dedirectorio LDAP o base de datos troncal, el cliente LDAP se conecta con elservidor LDAP y le hace una consulta. El servidor contesta con la respuestacorrespondiente, o bien con una indicación de donde puede el cliente hallarmás información. No importa con que servidor LDAP se conecte el cliente yaque siempre observará la misma vista del directorio; el nombre que se lepresenta a un servidor LDAP hace referencia a la misma entrada a la queharía referencia en otro servidor LDAP.

Page 8: Introducción a LDAP

Arquitectura Cliente-Servidor del servicio de Directorio.

Page 9: Introducción a LDAP

Ventajas en el uso de LDAP

Un directorio LDAP destaca sobre los demás tipos de bases de datospor las siguientes características:

Es muy rápido en la lectura de registros.

Permite replicar el servidor de forma muy sencilla y económica.

Muchas aplicaciones de todo tipo tienen interfaces de conexión a LDAP yse pueden integrar fácilmente.

Dispone de un modelo de nombres globales que asegura que todas lasentradas son únicas.

Usa un sistema jerárquico de almacenamiento de información.

Permite múltiples directorios independientes

Funciona sobre TCP/IP y SSL

La mayoría de aplicaciones disponen de soporte para LDAP

La mayoría de servidores LDAP son fáciles de instalar, mantener y

optimizar.

Page 10: Introducción a LDAP

Usos empresariales

Directorios de información.

Por ejemplo bases de datos de empleados organizados por departamentos(siguiendo la estructura organizativa de la empresa) ó cualquier tipo depáginas amarillas.

Sistemas de autenticación/autorización centralizada.

Grandes sistemas donde se guarda gran cantidad de registros y se requiereun uso constante de los mismos. Por ejemplo:

• Active Directory Server de Microsoft, para gestionar todas las cuentasde acceso a una red corporativa y mantener centralizada la gestión delacceso a los recursos.

• Sistemas de autenticación para páginas Web, algunos de los gestoresde contenidos más conocidos disponen de sistemas de autenticación através de LDAP.

• Sistemas de control de entradas a edificios, oficinas….

Page 11: Introducción a LDAP

Usos empresariales

Sistemas de correo electrónico, Grandes sistemas formados por más deun servidor que accedan a un repositorio de datos común.

Sistemas de alojamiento de páginas web y FTP, con el repositorio dedatos de usuario compartido.

Grandes sistemas de autenticación basados en RADIUS, para el controlde accesos de los usuarios a una red de conexión o ISP.

Servidores de certificados públicos y llaves de seguridad

Autenticación única ó “single sign-on”, para la personalización deaplicaciones.

Perfiles de usuarios centralizados, para permitir itinerancia ó “Roaming”

Libretas de direcciones compartidas.

Page 12: Introducción a LDAP

¿Cuándo resulta interesante usar LDAP?

Como hemos visto LDAP es una base de datos optimizada para entornosdonde se realizan muchas lecturas de datos y pocas modificaciones oborrados.

Por lo tanto es muy importante saber elegir dónde es conveniente usarlo. Noserá conveniente como base de datos para sitios que realicen constantesmodificaciones de datos (por ejemplo en entornos de e-commerce).

Normalmente el tipo de preguntas que debes hacerte parasaber si LDAP es conveniente para tus aplicaciones son:

• ¿Me gustaría que los datos fueran disponibles desde distintos tipos deplataforma?

• ¿necesito acceso a estos datos desde un número muy elevado de servidoresy/o aplicaciones?

• Los datos que almaceno ¿son actualizados muchas veces?, o por elcontrario ¿son sólo actualizados unas pocas veces?

• ¿Tiene sentido almacenar este tipo de datos en una base de datosrelacional? Si no tiene sentido, ¿puedo almacenar todos los datos necesariosen un solo registro?

Page 13: Introducción a LDAP

¿Cuándo resulta interesante usar LDAP?

Como hemos visto LDAP es una base de datos optimizada para entornosdonde se realizan muchas lecturas de datos y pocas modificaciones oborrados.

Por lo tanto es muy importante saber elegir dónde es conveniente usarlo. Noserá conveniente como base de datos para sitios que realicen constantesmodificaciones de datos (por ejemplo en entornos de e-commerce).

Normalmente el tipo de preguntas que debes hacerte parasaber si LDAP es conveniente para tus aplicaciones son:

• ¿Me gustaría que los datos fueran disponibles desde distintos tipos deplataforma?

• ¿necesito acceso a estos datos desde un número muy elevado de servidoresy/o aplicaciones?

• Los datos que almaceno ¿son actualizados muchas veces?, o por elcontrario ¿son sólo actualizados unas pocas veces?

• ¿Tiene sentido almacenar este tipo de datos en una base de datosrelacional? Si no tiene sentido, ¿puedo almacenar todos los datos necesariosen un solo registro?

Page 14: Introducción a LDAP

Casos de Uso

Sistema de correo electrónico

Cada usuario se identifica por su dirección de correo electrónico, los atributosque se guardan de cada usuario son su contraseña, su límite dealmacenamiento (quota), la ruta del disco duro donde se almacenan losmensajes (buzón) y posiblemente atributos adicionales para activar sistemasanti-spam o anti-virus.

Como se puede ver este sistema LDAP recibirá cientos de consultas cada día(una por cada email recibido y una cada vez que el usuario se conectamediante POP3 o webmail). No obstante el número de modificaciones diariases muy bajo, ya que solo se puede cambiar la contraseña o dar de baja alusuario, operaciones ambas que no se realizan de forma frecuente.

Page 15: Introducción a LDAP

Casos de Uso

Sistema de autenticación a una red

Cada usuario se identifica por un nombre de usuario y los atributos asignadosson la contraseña, los permisos de acceso, los grupos de trabajo a los quepertenece, la fecha de caducidad de la contraseña…

Este sistema recibirá una consulta cada vez que el usuario acceda a la red yuna más cada vez que acceda a los recursos del grupo de trabajo (directorioscompartidos, impresoras…) para comprobar los permisos del usuario.

Frente a estos cientos de consultas solo unas pocas veces se cambia lacontraseña de un usuario o se le incluye en un nuevo grupo de trabajo.

Page 16: Introducción a LDAP

Diferencias con una base de datos relacional

Las características de una base de datos relacional (RDBMS o RelationDatabase Management Systems) son:

- Realizan operaciones de escritura intensivas: las bases de datosrelacionales estás preparadas para hacer un uso constante de operacionesorientadas a transacciones, que implican la modificación o borrado constantede los datos almacenados.

- Esquema específico para cada aplicación: las bases de datosrelacionales son creadas para cada aplicación específica, siendo complicadoadaptar los esquemas a nuevas aplicaciones.

- Modelo de datos complejo: permiten manejar complejos modelos dedatos que requieren muchas tablas, foreign keys, operaciones de unión (join)complejas…

Page 17: Introducción a LDAP

Diferencias con una base de datos relacional

- Integridad de datos: todos sus componentes están desarrollados paramantener la consistencia de la información en todo momento. Esto incluyeoperaciones de rollback, integridad referencial y operaciones orientadas atransacciones.

- Además las transacciones se efectúan siempre aisladas de otrastransacciones. De tal forma que si dos transacciones están ejecutándose deforma concurrente los efectos de la transacción A son invisibles a latransacción B y viceversa, hasta que ambas transacciones han sidocompletadas.

- Disponen de operaciones de roll-back (vuelta atrás). Hasta el final dela transacción ninguna de las acciones llevadas a cabo pasa a un estado final.Si el sistema falla antes de finalizar una transacción todos los cambiosrealizados son eliminados (roll-back)

Page 18: Introducción a LDAP

Diferencias con una base de datos relacional

Las características de un servidor LDAP son:

- Operaciones de lectura muy rápidas. Debido a la naturaleza de los datos almacenados en los directorios las lecturas son más comunes que las escrituras.

- Datos relativamente estáticos. Los datos almacenados en los directorios no suelen actualizarse con mucha frecuencia.

- Entorno distribuido, fácil replicación.

Page 19: Introducción a LDAP

Diferencias con una base de datos relacional

- Estructura jerárquica. Los directorios almacenan la información de formajerárquica de forma nativa.

- Orientadas a objetos. El directorio representa a elementos y a objetos.Los objetos son creados como entradas, que representan a una colección deatributos.

- Esquema Standard. Los directorios utilizan un sistema standard quepueden usar fácilmente diversas aplicaciones.

- Atributos multi-valor. Los atributos pueden almacenar un valor único ovarios.

- Replicación multi-master. Muchos de los servidores LDAP permiten quese realicen escrituras o actualizaciones en múltiples servidores.

Page 20: Introducción a LDAP

Qué es LDAP

LDAP son las siglas de Lightweight Directory Access Protocol (en españolProtocolo Ligero de Acceso a Directorios) que hacen referencia a un protocoloa nivel de aplicación el cual permite el acceso a un servicio de directorioordenado y distribuido para buscar diversa información en un entorno de red.LDAP también es considerado una base de datos, aunque su sistema dealmacenamiento puede ser diferente, a la que pueden realizarse consultas.

Un servicio de directorio accesible por multitud de aplicaciones, se convierteen una parte vital del sistema, al proporcionar un acceso uniforme a laspersonas, recursos y otros objetos del sistema, es decir, el directorio se vecomo un todo uniforme, en lugar de un conjunto de partes independientes. Lautilización del servicio de directorio en la aplicaciones puede facilitar sudesarrollo y ampliar su funcionalidad.

El Servicio de Directorio como infraestructura

Page 21: Introducción a LDAP

Conceptos y Arquitectura

En 1988, la CCITT creó el estándar X.500, sobre servicios de directorio. En1990 este estándar fue adoptado por la ISO, como ISO 9594, DataCommunications Network Directory, Recommendations X.500-X.521.

X.500 organiza las entradas en el directorio de manera jerárquica, capaz dealmacenar gran cantidad de datos, con grandes capacidades de búsqueda yfácilmente escalable. X.500 especifica que la comunicación entre el cliente yel servidor de directorio debe emplear el Directory Access Protocol (DAP).Pero DAP es un protocolo a nivel de aplicación, por lo que, tanto el clientecomo el servidor debían implementar completamente la torre de protocolosOSI.

Page 22: Introducción a LDAP

Conceptos y Arquitectura

LDAP (Lightweight Directory Access Protocol) surge como una alternativa a DAP.Las claves del éxito de LDAP en comparación con DAP de X.500 son:

1. LDAP utiliza TCP/IP en lugar de los protocolos OSI. TCP/IP requiere menosrecursos y está más disponible, especialmente en ordenadores de sobremesa.

2. El modelo funcional de LDAP es más simple y ha eliminado opcionesraramente utilizadas en X.500. LDAP es más fácil de comprender eimplementar.

3. LDAP representa la información mediante cadenas de caracteres en lugar decomplicadas estructuras ASN.1.

Page 23: Introducción a LDAP

Modelos de LDAP.

Además de definir el protocolo de acceso al directorio, el estándar LDAP define cuatro modelos que permiten entender mejor el servicio de directorio.

1. Modelo de información, describe la estructura de la información almacenada en el directorio LDAP.

2. Modelo de nombrado, describe como se organiza e identifica la información en el directorio LDAP.

3. Modelo funcional, describe que operaciones pueden ser realizadas sobre la información almacenada en el directorio LDAP.

4. Modelo de seguridad, describe como puede protegerse la información contenida en el directorio LDAP frente a accesos no autorizados.

Page 24: Introducción a LDAP

Servidores LDAP disponibles en el mercado

Active Directoryhttp://www.microsoft.com/windowsserver2003/technologies/directory/activedirectory/default.mspx

Novell Directory Serviceshttp://www.novell.com/products/edirectory/

iPlanet - Sun ONE Directory Serverhttp://www.oracle.com/us/products/middleware/identity-management/oracle-directory-services/index.html

OpenLDAPhttp://www.openldap.org/

Red Hat Directory Serverhttp://www.redhat.com/directory_server/

Apache Directory Serverhttp://directory.apache.org/

Open DShttp://www.opends.org/

Page 25: Introducción a LDAP

¿ Dudas ?

Page 26: Introducción a LDAP

¡¡ Gracias ¡¡

José Manuel Acosta R.Enero 2011