Introducción a LDAP

1,741 views

Published on

Introducción a LDAP

Published in: Education
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,741
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
74
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Introducción a LDAP

  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. 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.
  4. 4. 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.
  5. 5. 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.
  6. 6. ¿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.
  7. 7. Funcionamiento de LDAPEl 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.
  8. 8. Arquitectura Cliente-Servidor del servicio deDirectorio.
  9. 9. Ventajas en el uso de LDAPUn 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 y se pueden integrar fácilmente. Dispone de un modelo de nombres globales que asegura que todas las entradas 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.
  10. 10. Usos empresarialesDirectorios 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 cuentas de acceso a una red corporativa y mantener centralizada la gestión del acceso a los recursos.• Sistemas de autenticación para páginas Web, algunos de los gestores de contenidos más conocidos disponen de sistemas de autenticación a través de LDAP.• Sistemas de control de entradas a edificios, oficinas….
  11. 11. Usos empresarialesSistemas 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 seguridadAutenticación única ó “single sign-on”, para la personalización deaplicaciones.Perfiles de usuarios centralizados, para permitir itinerancia ó “Roaming”Libretas de direcciones compartidas.
  12. 12. ¿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?
  13. 13. ¿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?
  14. 14. Casos de UsoSistema de correo electrónicoCada 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.
  15. 15. Casos de UsoSistema de autenticación a una redCada 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.
  16. 16. Diferencias con una base de datos relacionalLas 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…
  17. 17. 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)
  18. 18. Diferencias con una base de datos relacionalLas características de un servidor LDAP son:- Operaciones de lectura muy rápidas. Debido a la naturaleza de losdatos almacenados en los directorios las lecturas son más comunes que lasescrituras.- Datos relativamente estáticos. Los datos almacenados en losdirectorios no suelen actualizarse con mucha frecuencia.- Entorno distribuido, fácil replicación.
  19. 19. 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.
  20. 20. Qué es LDAPLDAP 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. El Servicio de Directorio como infraestructuraUn 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.
  21. 21. Conceptos y ArquitecturaEn 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.
  22. 22. Conceptos y ArquitecturaLDAP (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 menos recursos y está más disponible, especialmente en ordenadores de sobremesa.2. El modelo funcional de LDAP es más simple y ha eliminado opciones raramente utilizadas en X.500. LDAP es más fácil de comprender e implementar.3. LDAP representa la información mediante cadenas de caracteres en lugar de complicadas estructuras ASN.1.
  23. 23. Modelos de LDAP.Además de definir el protocolo de acceso al directorio, el estándar LDAPdefine 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.
  24. 24. Servidores LDAP disponibles en el mercadoActive Directoryhttp://www.microsoft.com/windowsserver2003/technologies/directory/activedirectory/default.mspxNovell Directory Serviceshttp://www.novell.com/products/edirectory/iPlanet - Sun ONE Directory Serverhttp://www.oracle.com/us/products/middleware/identity-management/oracle-directory-services/index.htmlOpenLDAPhttp://www.openldap.org/Red Hat Directory Serverhttp://www.redhat.com/directory_server/Apache Directory Serverhttp://directory.apache.org/Open DShttp://www.opends.org/
  25. 25. ¿ Dudas ?
  26. 26. ¡¡ Gracias ¡¡José Manuel Acosta R.Enero 2011

×