Mónica Vilanova Cid Seguridad en Sistemas de Información ÍNDICE 1. SERVICIO DE NOMBRES 1.1. CONCEPTOS DE NOMBRADO, pag. 1 1.2. NOMBRES, pag.1 1.3. UNIONES, REFERENCIAS Y DIRECCIONES, pag. 2 1.4. CONTEXTO Y SUBCONTEXTO, pag. 3 1.5. SISTEMAS DE NOMBRADO Y ESPACIOS DE NOMBRES, pag. 4 2. SERVICIO DE DIRECTORIO 2.1. CONCEPTO DE SERVICIO DE DIRECTORIO, pag. 6 2.2. CARACTERÍSTICAS GENERALES DE UN SERVICIO DE DIRECTORIO ELECTRÓNICO, pag. 6 DINAMISMO, pag. 6 FLEXIBILIDAD, pag. 7 SEGURIDAD, pag. 7 CONFIGURABILIDAD, pag. 8 2.3. CARACTERÍSTICAS TÉCNICAS DE UN SERVICIO DE DIRECTORIO ELECTRÓNICO, pag. 8 RELACIÓN ENTRE LECTURA Y ESCRITURA, pag. 8 EXTENSIBILIDAD, pag. 9 DISTRIBUCIÓN DE LOS DATOS, pag. 9 REPLICACIÓN DE LA INFORMACIÓN, pag. 9 RENDIMIENTO, pag. 10 ESTÁNDARES, pag. 10 2.4. OBJETOS Y ATRIBUTOS DE UN SERVICIO DE DIRECTORIO, pag. 10 2.5. DIRECTORIOS Y SERVICIOS DE DIRECTORIO, pag. 11 2.6. BÚSQUEDAS Y FILTROS DE BÚSQUEDA, pag. 12 2.7. USOS DE UN SERVICIO DE DIRECTORIO, pag. 13 ENCONTRAR INFORMACIÓN, pag. 13 GESTIONAR INFORMACIÓN, pag. 14 APLICACIONES DE SEGURIDAD, pag. 14 2.8. DIRECTORIOS VS OTROS PROGRAMAS Y/O SERVICIOS, pag. 15 DIRECTORIO VS BASES DE DATOS, pag. 15 DIRECTORIO VS SISTEMAS DE FICHEROS, pag. 16 DIRECTORIO VS WEB, pag. 17 DIRECTORIO VS DNS, pag. 17 2.9. INTEGRACIÓN DEL DIRECTORIO CON OTROS SERVICIOS, pag. 18 2.10. EL SERVICIO DE DIRECTORIO COMO INFRAESTRUCTURA, pag. 18 3. LDAP (LIGHTWEIGHT DIRECTORY ACCESS PROTOCOL) 3.1. INTRODUCCIÓN, pag. 20 3.2. COMPARACIÓN DE DAP Y LDAP, pag. 20 3.3. ESQUEMA DE INTERACCIÓN ENTRE CLIENTE Y SERVIDOR LDAP, pag. 21 3.4. ARQUITECTURA CLIENTE-SERVIDOR DEL SERVICIO DE DIRECTORIO, pag. 21 3.5. SERVICIOS DE DIRECTORIO DISTRIBUIDOS Y CENTRALIZADOS, pag. 22 SERVICIO DE DIRECTORIO CENTRALIZADO, pag. 22 SERVICIO DE DIRECTORIO DISTRIBUIDO, pag. 22 3.6. ORGANIZACIÓN DE UN SERVICIO DE DIRECTORIO, pag. 23 3.7. MODELOS LDAP, pag. 24 3.7.1. MODELO DE INFORMACIÓN, pag. 24 3.7.2. MODELO DE NOMBRADO, pag. 27 3.7.3. MODELO FUNCIONAL, pag. 29 OPERACIONES DE CONSULTA, pag. 29 OPERACIONES DE ACTUALIZACIÓN, pag. 31 OPERACIONES DE AUTENTICACIÓN Y CONTROL, pag. 33 3.7.4. MODELO DE SEGURIDAD, pag. 34 3.8. EL FORMATO DE INTERCAMBIO DE DATOS LDIF, pag. 34 3.9. FILTROS DE BÚSQUEDA EN LDAP, pag. 40 3.10. ASPECTOS RELACIONADOS CON LA SEGURIDAD DEL SERVICIO DE DIRECTORIO, pag. 44 BIBLIOGRAFÍA MÓNICA VILANOVA CID LDAP Servicio de Nombrado 1. SERVICIO DE NOMBRES 1.1. CONCEPTOS DE NOMBRADO Un servicio de nombrado indica los objetos que se relacionan con qué nombres y el tipo de relación que existe entre nombre y objeto. Además, permite localizar los objetos basándose en su nombre. La función primaria de un servicio de nombres es “mapear” nombres amigables para las personas con objetos (direcciones, identificadores, etc.). Servicios de Nombrado ? Internet Domain Name System (DNS): mapea nombres de máquina (faro.ei.uvigo.es) a direcciones IP (172.19.32.3). ? Sistema de ficheros: mapea un nombre de fichero (C:\bin\autoexec.bat) a un manejador de fichero que el programa pueda usar para acceder a los contenidos del fichero. Ejemplos de Servicios de Nombrado 1.2. NOMBRES Para localizar un objeto en un sistema de nombrado suministramos el nombre del objeto. El sistema de nombrado determina la sintaxis que deben seguir los nombres. A esta se le conoce como convención de nombrado. LDAP Servicio de Nombrado Sistemas de Nombrado ? Sistema de ficheros Unix Tm: un fichero es nombrado desde su Path relativo a la raíz del sistema de ficheros, con cada componente separado por una barra inclinada (“/”). /usr/hello ? fichero hello del directorio usr del directorio raíz / ? DNS: llama a los componentes en el nombre DNS para ordenarlos de derecha a izquierda y delimitados por puntos (“.”). Faro.ei.uvigo.es ? entrada DNS con nombre faro, relativo a la entrada ei.uvigo.es, y así sucesivamente ? LDAP: ordena los componentes de derecha a izquierda, delimitados por comas (“,”). Además, cada componente del nombre debe ser una pareja nombre/valor con el nombre y el valor separados por el signo igual (“=”). cn=Diego Rodicio, nombra la entrada LDAP o=pizapc.ei.uvigo.es, ? cn=Diego Rodicio relativa a la entrada c=es o=pizapc.ei.uvigo.es, relativa a su vez a la entrada c=es. Ejemplos de nombrado de algunos sistemas 1.3. UNIONES, REFERENCIAS Y DIRECCIONES La asociación de un nombre con un objeto se llama una unión. Nombre de fichero ? fichero Nombre de máquina ? dirección IP Nombre LDAP ? entrada LDAP Ejemplos de Uniones LDAP Servicio de Nombrado Dependiendo del servicio de nombres, algunos objetos no pueden almacenarse directamente, es decir, no se puede situar una copia del objeto dentro del servicio de nombres. En su lugar, deben ser almacenados por referencia, es decir, un puntero o una referencia al objeto se almacenan dentro del servicio de nombres. Por tanto, podemos deducir que una referencia es información sobre cómo acceder a un objeto. Típicamente es una representación mucho más compacta que puede ser usada para comunicarse con el objeto, mientras que el propio objeto podría contener más información de estado. Usando la referencia podemos contactar el objeto y obtener más información sobre él. Aunque en general una referencia puede contener cualquier información arbitraria, es útil referirnos a su contenido con direcciones (puntos finales de comunicación), es decir, información específica sobre como acceder al objeto. Objeto: Impresora Atributos: estado de impresión, cola actual, cantidad de papel que le queda, etc. Referencia al objeto Impresora: contiene información de cómo llegar hasta la impresora (nombre del servidor de impresión) y el protocolo de impresión. Ejemplo de referencia 1.4. CONTEXTO Y SUBCONTEXTO Un contexto es un conjunto de uniones nombre a objeto. Cada contexto tiene una convención de nombrado asociada. Un contexto proporciona una operación de localización (resolución) que devuelve el objeto. También puede proporcionar operaciones para unir o desunir nombres, listar uniones de nombres, etc. LDAP Servicio de Nombrado Un nombre en un objeto de contexto puede unirse a otro objeto contexto (llamado subcontexto) que tenga la misma convención de nombrado. Sistema Subcontexto Sistema de ficheros Unix DNS Ejemplo /usr/bin Contexto usr uvigo.es LDAP o=pizapc.ei.uvigo.es, c=es bin es uvigo c=es o=pizapc.ei.uvigo.es Ejemplos de contextos y subcontextos 1.5. SISTEMAS DE NOMBRADO Y ESPACIOS DE NOMBRES Un sistema de nombrado está conectado a un conjunto de contextos del mismo tipo, es decir, con la misma convención de nombrado, y proporciona un conjunto común de operaciones. El sistema de nombrado proporciona un servicio de nombrado a sus clientes para realizar operaciones relacionadas con el nombrado. A un sistema de nombrado se accede a través de su propio interface. Sistemas de nombrado ? ? ? DNS: servicio de nombres que mapea el nombre de una máquina a una dirección IP. LDAP: servicio de nombres que mapea nombres LDAP a entradas LDAP. Sistema de ficheros : servicio de nombres que mapea los nombres de ficheros a ficheros y directorios. Ejemplos de sistemas de nombrado LDAP Servicio de Nombrado Un espacio de nombres es el conjunto de nombres en un sistema de nombrado. Espacio de Nombres ? ? ? Sistema de ficheros Unix: contiene todos los nombres de directorio y ficheros del sistema dado. DNS: contiene nombres de dominios DNS y entradas. LDAP: contiene nombres de entradas LDAP. Ejemplos de espacios de nombres LDAP Servicio de Directorio 2. SERVICIO DE DIRECTORIO 2.1. CONCEPTO DE SERVICIO DE DIRECTORIO El servicio de directorio o simplemente directorio es un término ambiguo puesto que se usa para referirse a la información contenida, al conjunto hardware-software que gestiona dicha información, a las aplicaciones cliente-servidor que usan dicha información, etc. Concluyendo, el servicio de directorio es un conjunto complejo de componentes que trabajan de forma cooperativa para prestar un servicio (guía de teléfonos, revista de programación televisiva, etc.). Muchos servicios de nombrado se amplían con un servicio de directorio. Éste asocia nombres con objetos y permite a éstos tener atributos. Así, no solo podemos localizar un objeto por su nombre sino que también podemos obtener sus atributos o buscar el objeto basándonos en sus atributos. Los directorios permiten localizar información; para ello, definen que información se almacenará y en que modo se organizará. Sin embargo, los directorios electrónicos difieren de los directorios clásicos (guía de teléfonos, revista de programación televisiva, etc.) en una serie de características que estudiaremos a continuación. 2.2. CARACTERÍSTICAS GENERALES DE UN SERVICIO DE DIRECTORIO ELECTRÓNICO Dinamismo Un directorio electrónico puede ser con consultado o modificado en tiempo real y su fiabilidad es por tanto mayor. Un directorio clásico es estático, es decir, la información que contiene no es actualizada frecuentemente (la guía telefónica suele editarse anualmente, la revista de la programación televisiva suele editarse semanalmente, etc.), lo que es consecuencia del esquema y supone altos costes de actualización de estos directorios. LDAP Servicio de Directorio Flexibilidad Ésta puede contemplarse desde dos aspectos: ? Contenido En un directorio electrónico, los datos almacenados en éste son de cualquier tipo de información que pueda ser almacenada en un fichero, lo que permite ampliar la información almacenada sin muchas repercusiones (incluir la foto de la persona junto con sus datos). En un directorio clásico es muy costoso hacer este tipo de cambios y las búsquedas son más lentas. ? Organización En un directorio electrónico la organización de la información en éste permite localizarla de diferentes maneras, incluso se pueden realizar búsquedas aproximadas. En un directorio clásico la información generalmente se organiza para realizar búsquedas de un determinado modo (en la guía telefónica, por los apellidos de la persona a buscar) siendo imposible realizar búsquedas aproximadas. Seguridad En un directorio electrónico se puede controlar el acceso a los datos en función de diferentes criterios (los datos domiciliarios accesibles sólo para los vecinos del mismo bloque), y, aunque esto no suponga una solución, siempre se permite un nivel de seguridad superior. En un directorio clásico no puede controlarse el acceso, ya que cualquier persona que tenga acceso físico al directorio tiene acceso a toda la información contenida en él. LDAP Servicio de Directorio Configurabilidad Un directorio electrónico permite la personalización de los datos que se muestran a los distintos usuarios (calificaciones de un alumno en sus exámenes pero no las de sus compañeros), es decir, en éste se puede establecer la información que recibe una persona en función de sus necesidades y qué personas pueden acceder a dicha información. En un directorio clásico la información es genérica (una revista de programación televisiva contiene la programación de las cadenas de ámbito nacional o autonómico). 2.3. CARACTERÍSTICAS TÉCNICAS DE UN SERVICIO DE DIRECTORIO ELECTRÓNICO Un directorio puede verse como una base de datos especializada, pero en general contiene información más descriptiva y más basada en atributos. Las diferencias entre una base de datos general y un directorio son las siguientes: Relación entre lecturas y escrituras En un directorio se espera un número muy alto de lecturas frente a escrituras, debido a que generalmente la información contenida en él cambia raramente (pocos cambios del número de teléfono de una persona), por lo que las optimizaciones se realizan en las búsquedas y lecturas a pesar de que por ello se penalicen las actualizaciones. En una base de datos general, las optimizaciones se realizan tanto en las lecturas como en las escrituras, implementando complicados esquemas de transacciones o de reducción que las bases de datos usan para llevar a cabo actualizaciones complejas de grandes volúmenes de datos. LDAP Servicio de Directorio Extensibilidad En un directorio el esquema planteado por el directoty schema (establece qué tipos de información se almacenan en el directorio, qué reglas debe cumplir dicha información y qué modos existen para realizar las operaciones de búsqueda sobre la información) se puede modificar para cubrir las necesidades que vayan surgiendo en la organización. En una base de datos general dicha característica no suele encontrarse. Distribución de los datos Un directorio permite que los datos referentes a toda una unidad organizativa sean almacenados en un servidor controlado por esta unidad (fragmentación horizontal), simplificándose las actualizaciones, ya que todos los datos referentes a una persona están en un mismo servidor, y optimizándose las búsquedas, ya que las consultas se pueden ejecutar en paralelo. Algunas bases de datos de propósito general permiten la distribución de los datos, pero generalmente esta distribución de datos permite únicamente almacenar una tabla en un servidor y otra en otro servidor (fragmentación vertical), lo que implica protocolos más complejos para realizar las actualizaciones, por lo que generalmente no se usan. Replicación de la información En un directorio es aceptable una inconsistencia temporal, por lo que el protocolo de replicación-actualización es menos restrictivo. Ello conlleva al aumento de la fiabilidad del sistema, ya que en caso de catástrofe, se puede usar el servidor replicado. Además, también conlleva una mejora en el rendimiento al situar las replicas en redes cercanas a los usuarios, optimizando el camino de acceso al directorio y repartiendo la carga entre las distintas replicas. La fiabilidad del directorio comienza a ser crítica en el momento en el que varias aplicaciones lo usan para tareas como autenticación, control de accesos y gestión de configuración. LDAP Servicio de Directorio Las bases de datos generales que admiten replicación de datos, están preparadas para replicar éstos en un número reducido de servidores, debido a que las copias deben ser consistentes y por lo tanto, las actualizaciones deben realizarse de forma sincronizada entre las diferentes sedes. Rendimiento En un directorio se espera que el rendimiento agregado a éste sea del orden de miles de consultas por segundo. Esto se debe a que el directorio forma parte del núcleo de muchas aplicaciones, y por lo tanto debe estar preparado para responder a las múltiples consultas que éstas puedan solicitarle. En un servidor de base de datos se espera que permita hasta cientos de transacciones por segundo. Estándares Dado que un directorio es una base de datos accesible desde múltiples aplicaciones, el estricto cumplimiento del estándar es un requisito indispensable. Esto permite separar el desarrollo del cliente del desarrollo del servidor, permitiendo que cada desarrollo esté optimizado de la forma más conveniente. Además, el hecho de estar sujeto a un estándar permite al administrador no estar restringido a un único fabricante, pudiendo cambiar de proveedor sin tener que cambiar el software que usan los clientes. El hecho de que las bases de datos generales usen distintas variantes del estándar SQL no suele ser un problema, ya que rara vez tienen que interactuar dos bases de datos de diferentes fabricantes. 2.4. OBJETOS Y ATRIBUTOS DE UN SERVICIO DE DIRECTORIO Un objeto directorio representa un objeto en un entorno de ordenador (impresora, persona, etc.). Un objeto directorio contiene atributos que describen los objetos que representa. LDAP Servicio de Directorio Un atributo tiene un identificador de atributo y un conjunto de valores de atributo: ? ? Identificador de atributo: token que identifica un atributo independientemente de sus valores. Valor o valores del atributo: contenido o contenidos del atributo. Objeto directorio: Impresora Atributos: Identificadores de atributo Valores de atributo Velocidad 6 ppm Resolución 400 ppp Color Sí Ejemplo de objeto directorio y atributos 2.5. DIRECTORIOS Y SERVICIOS DE DIRECTORIO Un directorio está conectado a un conjunto de objetos directorio. Un servicio de directorio es un servicio que proporciona operaciones para crear, añadir, eliminar y modificar los atributos asociados con los objetos de un directorio. LDAP Servicio de Directorio Servicios de Directorio ? Novell Directory Service (NDS): servicio de directorio de Novel que proporciona información sobre muchos servicios de red. ? Network Information Service (NIS): servicio de directorio disponible en el sistema operativo Solaris y Linux para almacenar información relacionada con el sistema (redes, impresoras, usuarios, etc.). ? IPlanet Directory Server y OpenLDAP: servicios de directorio usados en CemaWeb como servicios de directorio de propósito general basados en el estándar de Internet LDAP. Ejemplos de servicios de directorio conocidos Existen dos tipos básicos de servicios de directorio: ? Servicio de directorio local: proporciona servicios a un contexto restringido. ? Servicio de directorio global: proporciona servicios a un contexto mucho más amplio. 2.6. BÚSQUEDAS Y FILTROS DE BÚSQUEDA Podemos localizar un objeto directorio suministrando su nombre al servicio de directorio. Cuando buscamos sólo podemos suministrar una consulta que consiste en una expresión lógica en la que especificamos atributos que el objeto u objetos deben tener. A esta consulta se le llama Filtro de Búsqueda. LDAP Servicio de Directorio El servicio de directorio busca y devuelve los objetos que cumplan el filtro de búsqueda. A este tipo de búsqueda se le suele llamar Localización Invertida o Búsqueda basada en Contenido. Búsquedas ? Buscar todos los usuarios que tengan un atributo “edad” mayor de 40 años. ? Buscar todas las máquinas cuya dirección IP empiece con 192.19.32.0. Ejemplos de búsquedas 2.7. USOS DE UN SERVICIO DE DIRECTORIO Encontrar información Una de las principales utilidades de los directorios es la de buscar información. La ventaja de los directorios electrónicos está en que permiten una escalabilidad no disponible en los directorios tradicionales. Además, el hecho de ser directorios electrónicos permite acceder a la información contenida en ellos de formas distintas a las tradicionales (búsquedas por apellido, nombre, teléfono, etc.). En el momento de acceder al directorio es necesario diferenciar entre la operación de búsqueda, consultar algo concreto por necesidad (buscar el teléfono de un restaurante determinado para hacer una reserva), y la operación de “hojear”, consultar algo concreto por conocer (consultar la guía de ocio para decidir el restaurante en el que vamos a hacer la reserva). Ambas operaciones son complementarias. LDAP Servicio de Directorio Gestionar información En un directorio electrónico es muy importante que la información contenida en él sea accesible desde todas las aplicaciones que son susceptibles de usarla. Cuando solo una aplicación accede a los datos, quizás el esfuerzo necesario para implantar un servicio de directorio electrónico estándar pueda ser innecesario, pero la experiencia demuestra que tarde o temprano varias aplicaciones usan esos datos y, en el caso de no haber implantado un directorio centralizado, nos encontramos con el problema de que varios directorios deben estar sincronizados y que se accede de forma distinta a los datos contenidos en directorios creados a medida. Esto implica un mayor esfuerzo para realizar el mantenimiento y un freno al desarrollo de nuevas aplicaciones basadas en el directorio. Un ejemplo, en el que se suele comenzar con un directorio propietario, es el de los servidores Web que requieren autenticación. Si nuestro sistema solo consta de un único servidor Web, la solución más sencilla es crear una base de datos de usuarios en el servidor y realizar allí las actualizaciones pertinentes. Pero, cuando deseamos que varios servidores accedan a dicha base de datos de usuarios, debemos implementar los mecanismos de sincronización entre los distintos servidores, lo que resulta mucho más complejo. Además, si en un futuro deseamos dar algún servicio a nuestros usuarios, deberemos adaptar nuestra aplicación al servicio de directorio electrónico. Actualmente, algunas aplicaciones usan el servicio de directorio para acceder a información necesaria para su funcionamiento (programa Netscape Communicator). Además, la interfaz de correo electrónico permite usar el servicio de directorio para realizar consultas y acceder a las direcciones de correo de los destinatarios de los mensajes. Aplicaciones de Seguridad El servicio de directorio es el soporte ideal para la distribución de los certificados electrónicos personales. LDAP Servicio de Directorio El servicio de directorio resuelve dos problemas principales: ? La gestión de la infraestructura de clave pública: ? Creación: permite incorporar al certificado los datos contenidos en el servidor LDAP. ? Distribución: permite tener accesibles mediante un protocolo estándar los certificados electrónicos. ? Destrucción: permite implementar la revocación de un certificado con la simple operación de borrado del certificado del servidor LDAP. ? El problema de la ubicación de certificados: el directorio es el lugar donde los usuarios pueden acceder a los certificados de los restantes usuarios, de forma cómoda y fácil de integrar con las restantes aplicaciones. 2.8. DIRECTORIO VS OTROS PROGRAMAS Y/O SERVICIOS Las diferencias entre directorio y otros programas y/o servicios se aclaran a continuación: Directorio vs Bases de Datos Generalmente se describe un directorio como una base de datos, pero es una base de datos especializada cuyas características la apartan de una base de datos relacional de propósito general. Una de estas características especiales es que son accedidas (búsqueda o lectura) mucho más que actualizadas (escritura). Debido a éstas circunstancias, los directorios se diferencian de las bases de datos en los siguientes aspectos: LDAP Servicio de 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 (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. ? 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. Directorio vs Sistemas de Ficheros Las diferencias principales entre un directorio y un sistema de ficheros son: ? Los directorios están optimizados para almacenar pequeños fragmentos de información que puede estructurarse como entradas con diferentes atributos, en cambio, los sistemas de ficheros contienen archivos, a veces de tamaños superiores al gigabyte. LDAP ? Servicio de Directorio Los sistemas de ficheros permiten acceder a un fichero y posicionarse dentro de él, sin embargo, los directorios a lo sumo permiten acceder a un atributo, pero no hay forma de posicionarse dentro de dicho atributo, que por lo tanto debe ser leído por completo. Directorio vs Web La diferencia principal entre un directorio y un servicio Web es la siguiente: ? El servicio Web está centrado en proporcionar una interfaz de usuario agradable, pero en ningún momento posee las capacidades de búsqueda que posee el servicio de directorio. Directorio vs DNS El servicio DNS se encarga de la traducción de nombres de dominio a direcciones IP y viceversa. Tiene además una ligera similitud con el servicio de directorio, ya que ambos proporcionan una interfaz de acceso a una base de datos jerárquica. Pero difieren en otros aspectos: ? El servicio DNS esta optimizado para realizar 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. LDAP Servicio de Directorio 2.9. INTEGRACIÓN DEL DIRECTORIO CON OTROS SERVICIOS Se puede deducir que el servicio de directorio es importante en sí mismo, pero lo es más debido a que puede ser la herramienta que faltaba para desarrollar aplicaciones que permitan desplegar nuevos servicios basados en la cooperación entre las distintas aplicaciones y el servicio de directorio: ? 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. ? Podemos utilizar el servicio de directorio como repositorio en el cual almacenar la información que varios servidores deben compartir (configuración, información sobre el control de accesos, etc.). ? ? l directorio proporciona un protocolo estándar para gestionar toda la información contenida en él, evitando la necesidad de desarrollar dicho protocolo. 2.10. EL SERVICIO DE DIRECTORIO COMO INFRAESTRUCTURA Un servicio de directorio accesible por multitud de aplicaciones, se convierte en una parte vital del sistema, al proporcionar un acceso uniforme a las personas, recursos y otros objetos del sistema, es decir, el directorio se ve como un todo uniforme, en lugar de un conjunto de partes independientes. La utilización del servicio de directorio en las aplicaciones puede facilitar su desarrollo y ampliar su funcionalidad. La información que utiliza una aplicación que no emplea un servicio de directorio estándar solo está accesible por esta aplicación. En este entorno, las aplicaciones utilizan y gestionan su información, provocando que la misma información se encuentre en varias aplicaciones, lo que LDAP Servicio de Directorio provoca que aparezcan inconsistencias. Lo que se necesita en esta situación es un servicio de directorio común, que proporcione: ? Las funcionalidades que reclaman las aplicaciones ? Multiplataforma ? Accesibilidad a través de un protocolo estándar y con una API estándar Cuando se dispone de una infraestructura de directorio de este tipo, los programadores aprovechan su tiempo desarrollando aplicaciones, en lugar de servicios de directorio específicos, al mismo tipo que se usan las RPC’s, las primitivas de conexión TCP/IP, etc. Cuando las aplicaciones utilizan un servicio de directorio común, diseñado de forma adecuada, es más fácil controlar los riesgos de fallo y concentrar los esfuerzos en mejorar la administración y tolerancia a fallos de este servicio. LDAP Lightweight Directory Access Protocol 3. LDAP (LIGHTWEIGHT DIRECTORY ACCESS PROTOCOL) 3.1. INTRODUCCIÓN En 1988, la CCITT creó el estándar X.500, sobre servicios de directorio. En 1990 este estándar fue adoptado por la ISO 9594, Data Communications Network Directory, Recommendations X.500-X.521. X.500 organiza las entradas en el directorio de manera jerárquica, capaz de almacenar gran cantidad de datos, con grandes capacidades de búsqueda y fácilmente escalable. X.500 especifica que la comunicación entre el cliente y el 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 cliente como el servidor, debían implementar completamente la torre de protocolos OSI. LDAP (Lightweight Directory Access Protocol) surge como una alternativa a DAP. Aparece en 1993 en la Universidad de Michigan como un protocolo cliente-servidor para acceder a un servicio de directorio. Además, es un estándar abierto para los servicios globales o locales en una red y/o en Internet. 3.2. COMPARACIÓN DE DAP Y LDAP Las claves del éxito de LDAP en comparación con DAP de X.500 son: ? 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. ? 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. ? LDAP representa la información mediante cadenas de caracteres en lugar de complicadas estructuras ASN.1. LDAP Lightweight Directory Access Protocol 3.3. ESQUEMA DE INTERACCIÓN ENTRE CLIENTE Y SERVIDOR LDAP El esquema de interacción entre el cliente y el servidor LDAP sigue el siguiente esquema: 1. El cliente establece una sesión con el servidor LDAP. El cliente indica el servidor y el puerto en el que el servidor LDAP está escuchando. El cliente puede proporcionar información de autenticación o establecer una sesión anónima con los accesos por defecto. 2. El cliente efectúa las operaciones sobre los datos. LDAP proporciona capacidades de búsqueda, lectura y actualización. 3. Una vez finalizadas las operaciones, el cliente cierra la sesión. 3.4. ARQUITECTURA CLIENTE – SERVIDOR DEL SERVICIO DE DIRECTORIO Los servicios de directorio suelen implementarse siguiendo el modelo cliente-servidor, de modo que una aplicación que desea acceder al directorio no accede directamente a la base de datos, sino que llama a una función de la API (Application Programming Interface), que envía un mensaje a un proceso en el servidor. Dicho proceso accede al directorio y devuelve el resultado de la operación. Algunas veces, el servidor puede convertirse en el cliente de otro servidor para conseguir la información necesaria para conseguir procesar la petición que se le ha realizado. LDAP Lightweight Directory Access Protocol Arquitectura cliente – servidor del directorio Siguiendo esta arquitectura el cliente no depende de la arquitectura del servidor y el servidor puede implementar el directorio de la forma más conveniente. 3.5. SERVICIOS DE DIRECTORIO DISTRIBUIDOS Y CENTRALIZADOS El servicio de directorio puede estar centralizado o distribuido. Servicio de Directorio Centralizado Un único servidor da todo el servicio de directorio, respondiendo a todas las consultas de los clientes. Servicio de Directorio Distribuido Varios servidores proporcionan el servicio de directorio. Los datos pueden estar fraccionados y/o replicados. LDAP Lightweight Directory Access Protocol Cuando la información esta fraccionada, cada servidor de directorio almacena un subconjunto único y no solapado de la información, es decir, una entrada es almacenada en un solo servidor. Cuando la información esta replicada, una entrada puede estar almacenada en varios servidores. Generalmente, cuando el servicio de directorio es distribuido, parte de la información está fraccionada y parte está replicada. 3.6. ORGANIZACIÓN DE UN SERVICIO DE DIRECTORIO El servicio de directorio almacena y organiza la información en estructuras de datos denominadas entradas. Cada entrada del directorio describe un objeto (una persona, una impresora, etc.). Cada entrada tiene un nombre llamado Distinguished Name (DN), que la identifica unívocamente. Un DN consiste en una secuencia de partes más pequeñas llamadas Relative Distinguished Name (RDN), de forma similar a como el nombre de un fichero consiste en un camino de directorios en muchos sistemas operativos (UNIX). Las entradas pueden ser organizadas en forma de árbol basándose en los DN. A este árbol de entradas de directorio se le conoce como Directory Information Tree (DIT). Una clase de objeto es una descripción general de un tipo de objeto. El Schema define que clases de objetos se pueden almacenar en el directorio, que atributos deben contener, que atributos son opcionales y el formato de los atributos. LDAP define primitivas de acceso y modificación de las entradas del directorio: LDAP Lightweight Directory Access Protocol ??Búsqueda siguiendo un criterio especificado por el usuario. ??Añadir una entrada. ??Borrar una entrada. ??Modificar una entrada. ??Modificar el DN de una entrada. ??Comparar una entrada. 3.7. 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: ??Modelo de información, describe la estructura de la información almacenada en el directorio LDAP. ??Modelo de nombrado, describe como se organiza e identifica la información en el directorio LDAP. ??Modelo funcional, describe que operaciones pueden ser realizadas sobre la información almacenada en el directorio LDAP. ??Modelo de seguridad, describe como puede protegerse la información contenida en el directorio LDAP frente a accesos no autorizados. 3.7.1. Modelo de información La unidad básica de información almacenada en el directorio es la entrada (entry). Generalmente una entrada representa un objeto del mundo real (una persona, un servidor, etc.), pero el modelo no exige este aspecto. Toda la información que se almacena en el directorio se guarda de forma jerárquica formando un árbol de directorio, en el cual cada una de las cajas representa una entrada en el directorio. LDAP Lightweight Directory Access Protocol Árbol de Directorio (DIT) Una entrada se compone de un conjunto de atributos, cada uno de ellos tiene un tipo y uno o varios valores. El tipo define la clase de información que va a almacenar y los valores son la información en sí. Relación entre entrada, atributo y valor Los tipos de los atributos tienen asociados una determinada sintaxis, que describe los tipos de datos que se van a almacenar como valores de este atributo; además, define como se van a realizar las comparaciones en las búsquedas. LDAP Lightweight Directory Access Protocol Ejemplos de sintaxis de atributos Otras restricciones pueden asociarse a los tipos de atributos, para limitar el número de valores o el tamaño total de un atributo. Restricciones ? Limitar el tamaño del atributo Telephonenumber ? Atributo Uid no multivaluado Atributo Multivaluado Entrada de directorio LDAP Lightweight Directory Access Protocol Los esquemas (schemas) definen el tipo de objetos que se van a almacenar en el directorio, también contienen los atributos que tienen estos objetos y si son opcionales u obligatorios. El esquema también define las subclases de objetos y en que puntos del DIT pueden aparecer. Dado que cada servidor puede definir su propio esquema, para permitir la interoperabilidad entre distintos servidores de directorio, se espera que un esquema común sea estandarizado (RFC 2252 y RFC 2256). 3.7.2. Modelo de nombrado El modelo de nombrado de LDAP define como se organizan y referencian los datos, es decir, define los tipos de estructuras que se pueden definir utilizando las entradas. Una vez organizadas las entradas formando una determinada estructura, el modelo de nombrado nos indica como referenciar estas entradas. Las entradas son organizadas dentro del DIT en base a su Distinguished Name (DN). El DN es un nombre único que identifica de forma unívoca a una entrada. Los DN´s son secuencias de Relative Distinguished Names (RDN´s) y cada RDN se corresponde con una rama del DIT partiendo de la raíz hacia la entrada dentro del directorio. De esto se deduce que no puede haber ninguna entrada “suelta”, solo la entrada raíz puede no tener entrada “padre”. En el caso de añadir una entrada en un punto inexistente en el directorio, el servidor devolverá un mensaje de error y no realizará la operación. Esta flexibilidad permite que el directorio almacene la información de la forma más conveniente; se puede crear un grupo que contenga todas las personas de la organización y otro que contenga todos los grupos o se puede elegir una estructura que refleje la estructura jerárquica de la organización. LDAP Lightweight Directory Access Protocol Distinguished Name (DN) del alumno José González: Uid=10000234, ou=Alumnos, ou=Personas, o=uc3m, c=es Esquema de nombrado de directorio LDAP permite el uso de alias, que serían los enlaces simbólicos de UNIX o los accesos directos de Windows. Los alias pueden suponer una penalización importante en el rendimiento. Esto se debe a que un alias es un enlace a cualquier entrada en cualquier servidor LDAP, lo que puede provocar que el servidor LDAP tenga que conectarse a otro servidor mientras esta resolviendo una consulta. A veces los objetivos que se pretenden conseguir con los alias se pueden conseguir con las directivas referral. En principio el API de LDAP permite especificar si se desea que se devuelvan las entradas de tipo referral o se desea que sean seguidas automáticamente por el servidor. Este tipo de entradas permite particionar y distribuir el servicio de directorio entre varios servidores. Partes del DIT incluso pueden ser replicadas, permitiendo aumentar el rendimiento y la tolerancia a fallos. LDAP Lightweight Directory Access Protocol Directorio delegado. Uso de referrals 3.7.3. Modelo funcional Modelo que permite controlar el acceso a los datos contenidos en el directorio. El modelo funcional, define un conjunto de operaciones divididas en tres grupos: ? Operaciones de consulta: permiten realizar búsquedas en el directorio y recuperar datos. ? Operaciones de actualización: permiten añadir, borrar, renombrar y modificar entradas del directorio. ? Operaciones de autenticación y control: permiten la identificación de los clientes y del directorio, así como controlar ciertos aspectos de una sesión. Operaciones de consulta Las dos operaciones de consulta permiten buscar y obtener información almacenada en el directorio. LDAP Lightweight Directory Access Protocol Operación search Esta operación permite buscar en el directorio las entradas que cumplen las especificaciones indicadas; estas especificaciones permiten indicar el punto de inicio de la búsqueda, la profundidad, que valores deben tener determinados atributos y que atributos serán devueltos si la entrada cumple las especificaciones. Para realizar la búsqueda, se deben especificar los siguientes parámetros: ??Base, DN que indica el punto de partida para la búsqueda. ??Scope, ámbito de la búsqueda. Puede ser: ??Base, solo se busca en la entrada base. ??One, se busca en el nivel inmediatamente inferior a la entrada base. ??Subtree, se busca en todo el subárbol bajo la entrada base. ??Filtro de búsqueda, indica el criterio de búsqueda. ??Atributos a devolver, se puede indicar que atributos se devuelven y si se devuelve el valor del atributo o el tipo de dato contenido. ??Alias derreferencing, indica si el servidor debe seguir las entradas referral o por el contrario debe enviarse la petición al servidor referenciado. ??Límite, indica el número máximo de entradas que serán devueltas o el tiempo empleado para realizar dicha búsqueda. Los servidores pueden imponer límites más estrictos que los indicados por los clientes. Operación compare Esta operación es similar a la operación de búsqueda utilizando un filtro de equiparación, pero la diferencia se encuentra en que dada una entrada que cumple con las especificaciones pero que no tiene el atributo que se desea LDAP Lightweight Directory Access Protocol devolver, el directorio devuelve un valor especial, para indicar que dicha entrada cumple con los requisitos, pero no dispone del atributo. Operaciones de actualización Hay cuatro operaciones que permiten añadir, borrar, renombrar (modificar el DN) y modificar. Operación add Esta operación permite añadir nuevas entradas al directorio. Recibe como parámetros el DN de la entrada a crear con los atributos y los valores asociados. Para poder realizar esta operación se debe cumplir que: ??El nodo “padre” de la entrada exista en el directorio. ??No debe haber otra entrada con el mismo DN. ??La entrada debe cumplir con los requisitos especificados en el esquema. ??El control de accesos permita esta operación. Operación delete Esta operación permite eliminar entradas del directorio. Recibe como parámetro el DN de la entrada a borrar. Para poder realizar esta operación, se deben cumplir las siguientes condiciones: ??La entrada a borrar debe existir en el directorio. ??Dicha entrada no debe tener ningún “hijo”. ??El control de accesos debe permitir esta operación. LDAP Lightweight Directory Access Protocol Operación rename Esta operación permite modificar el DN de una entrada. Para poder renombrar una entrada se deben cumplir las siguientes condiciones: ??La entrada a renombrar debe existir. ??No debe existir una entrada con el nuevo DN. ??El control de accesos debe permitir esta operación. LDAPv2 no tiene la operación de modificar el DN de una entrada. En su lugar, tiene la operación modificar RDN, que permite modificar el RDN de una entrada, pero no permite mover la entrada de una rama a otra del DIT. Operación modify Esta operación permite la modificación de los atributos de una entrada. Para poder ejecutarse esta operación deben cumplirse las siguientes condiciones: ??La entrada a modificar debe existir. ??Las modificaciones de los atributos deben realizarse. ??La entrada resultante debe ser conforme al esquema. ??El control de accesos debe permitir la actualización. Este punto indica que las operaciones en LDAP son atómicas, es decir, si alguna de las modificaciones falla, toda la operación de actualización falla. LDAP Lightweight Directory Access Protocol Operaciones de autenticación y control LDAP incorpora dos operaciones de autenticación (bind y unbind) y una de control (abandon). Operación bind Esta operación permite autenticar al cliente frente al directorio. Hay varios tipos de autenticación: ? Sesión anónima: en ésta no se especifica el usuario ni la contraseña. Solo tienen sentido para operaciones de búsqueda, ya que no se ha realizado ningún tipo de comprobación de la identidad del cliente. ? Sesión autenticada: en ésta al establecer la conexión se envían al servidor el nombre distinguido del usuario y su contraseña en claro. El servidor considera que el cliente se ha autenticado si la contraseña coincide con la almacenada en el campo userPassword. Esta información es enviada en claro desde el cliente al servidor, lo cual implica un riesgo de seguridad muy alto. ? Sesión cifrada: en ésta el cliente envía el nombre distinguido del usuario, el método de autenticación que va a emplear y las credenciales necesarias para autenticarse. LDAPv3 contempla el establecimiento de sesiones cifradas. El mecanismo SASL, introducido en LDAPv3, establece que los métodos de autenticación son los siguientes: ? ? ? ? ? Kerberos versión 4 S/Key GSSAPI CRAM-MD5 External LDAP Lightweight Directory Access Protocol La principal ventaja de este diseño estriba en que permite la ampliación a nuevos métodos de autenticación utilizando el método External; de hecho, SSL (y su sucesor TSL) utilizan este método. Operación unbind Esta operación cierra la conexión con el servidor LDAP. Operación abandon Esta operación permite indicar al servidor LDAP que el cliente abandona la operación en curso. 3.7.4. Modelo de seguridad En LDAPv2 solo se permiten sesiones anónimas y autenticación mediante texto en claro. Debido a esto, algunos fabricantes incorporaron mecanismos de seguridad adicionales, como Kerberos. La operación bind de LDAPv3 tiene soporte para Simple Authenticacion Security Layer (SASL). Además se han definido operaciones extendidas, una de ellas relacionada con la seguridad es la Extension for Transport Layer Security (TSL) for LDAPv3. Aún cuando el modelo de control de accesos no se ha especificado en LDAP, todos los servidores implementan algún tipo de control, más o menos flexible. 3.8. EL FORMATO DE INTERCAMBIO DE DATOS LDIF El formato LDIF es el estándar que se puede usar para realizar las siguientes tareas: LDAP Lightweight Directory Access Protocol ? Representar entradas del directorio en formato texto. Una entrada del directorio consiste en dos partes: ? El DN o nombre distinguido, que debe figurar en la primera línea de la entrada y que se compone de la cadena dn: seguida del DN de la entrada. ? Los atributos de la entrada. Cada atributo se compone de un nombre de atributo, seguido del carácter dos puntos, :, y el valor del atributo. Si hay atributos multivaluados, deben ponerse seguidos. No hay ningún orden preestablecido para la colocación de los atributos, pero es conveniente listar primero el atributo objectclass, para mejorar la legibilidad de la entrada. Entrada de directorio en formato LDIF Las líneas excesivamente largas pueden partirse con un retorno de carro, y añadiendo un espacio al principio de la siguiente línea. LDAP Lightweight Directory Access Protocol Atributo largo partido en varias líneas Si un atributo contiene valores no ASCII (imagen JPEG) se codifica en formato Base64. Atributo binario codificado en base64 ? Realizar actualizaciones y/ borrar entradas del directorio. El formato en este caso contiene en la primera línea el DN de la entrada sobre la que se aplica el cambio. La segunda línea indica el cambio a realizar y las siguientes líneas contienen los pares atributo-valor que componen el cambio. Para añadir una entrada Dn: nombre distinguido Changetype: add Tipo_atributo: valor LDAP Lightweight Directory Access Protocol Formato LDIF para añadir una entrada Para borrar una entrada Dn: nombre distinguido Changetype: delete Formato LDIF para borrar una entrada Para modificar una entrada Dn: nombre distinguido Changetype: modify TipoCambio: atributo atributo: valor LDAP Lightweight Directory Access Protocol Formato LDIF para añadir un atributo Formato LDIF para eliminar una atributo completamente Formato LDIF para eliminar un valor de un atributo Formato LDIF para modificar un valor de un atributo LDAP Lightweight Directory Access Protocol Varias operaciones se pueden combinar en un único fichero si las separamos por un guión. Formato LDIF para combinar varias operaciones Cuando se realiza una operación que combina varias, el servidor las trata como una única operación, por lo que sí una de ellas falla, el servidor devolverá el error correspondiente y dejará inalterada la entrada. ? Modificar el nombre distinguido relativo. Con modrdn se permite cambiar parte del nombre distinguido (LDAPv3 permite cambiar el DN completo de una entrada). Con deleteoldrdn se permite especificar si debe borrarse la entrada original. Formato LDIF para modificar el RDN de una entrada LDAP Lightweight Directory Access Protocol Los programas encargados de realizar estas operaciones en el directorio son: Herramientas para la gestión del directorio 3.9. FILTROS DE BÚSQUEDA EN LDAP El formato básico de los filtros de búsqueda de LDAP es el siguiente: Atributo operador valor El Atributo se refiere al atributo sobre el que vamos a realizar la operación de comparación. El operador de búsqueda puede ser uno de los siguientes: LDAP Lightweight Directory Access Protocol Operadores de búsqueda Además de los operadores presentados, el carácter * tiene el significado de comodín y puede ser empleado con el operador =. Cn=Da*G*z Encuentra las entradas de David Gutiérrez y de Daniel Gonzalez (suponemos que éstos son los únicos que existen en el directorio) Operador comodín LDAP Lightweight Directory Access Protocol Pero además, los operadores de búsquedas pueden combinarse utilizando los operadores booleanos, dando lugar a expresiones de búsqueda más complejas. La sintaxis para combinar filtros de búsquedas es la siguiente: ( operador_n-ario (filtro1) (filtro2) (filtro3) … ) (operador_unario (filtro)) Operadores n-arios para filtros de búsqueda Operador unario para filtros de búsqueda Para realizar búsquedas sobre atributos cuyos valores contienen alguno de los caracteres reservados para la construcción de los filtros, deben utilizarse secuencias de escape. LDAP Lightweight Directory Access Protocol Secuencias de escape para filtros de búsqueda Algunos ejemplos de los filtros de búsqueda y su significado se muestran a continuación: Ejemplos de filtros de búsqueda LDAP Lightweight Directory Access Protocol 3.10. ASPECTOS RELACIONADOS CON LA SEGURIDAD DEL SERVICIO DE DIRECTORIO La seguridad de la información almacenada en el directorio es uno de los aspectos fundamentales. Algunos directorios deben permitir el acceso público, pero cualquier usuario no debe poder realizar cualquier operación. La política de seguridad define quién tiene qué tipo de acceso sobre qué información. El directorio debe permitir las capacidades básicas para implementar la política de seguridad. El directorio puede no incorporar estas capacidades, pero debe estar integrado con un servicio de red fiable que proporcione estos servicios básicos de seguridad. Inicialmente, se necesita un método para autenticar al usuario, una vez que se ha verificado la identidad del cliente, se puede determinar si está autorizado para realizar la operación solicitada. Generalmente, las autorizaciones están basadas en ACL (Access Control List). Estas listas se pueden unir a los objetos y/o los atributos contenidos en el directorio. Para facilitar la administración de estas listas, los usuarios con los mismos permisos, son agrupados en grupos de seguridad. LDAP provee de una complejo nivel de instancias de control de acceso, o ACI´s. A causa de que el acceso puede ser controlado en el lado del servidor, es muchos más seguro que los métodos de seguridad que trabajan haciendo seguro a través del software cliente. Con LDAP ACI´s, puedes hacer cosas como: ? Conceder a los usuarios la capacidad de cambiarse su número de teléfono de casa y su domicilio, mientras que se les restringe el acceso a solo lectura para otro tipo de datos (como título de trabajo o login de gerente). ? Conceder a cualquiera en el grupo "HR-admins" (administradores de RRHH) la capacidad de modificar la información de los usuarios para los siguientes campos: gerente, título de trabajo, número ID del empleado, nombre del departamento, y número del departamento. No existirán permisos de escritura para otros campos. LDAP Lightweight Directory Access Protocol ? Denegar el acceso de lectura a cualquiera que intente consultar al LDAP por la contraseña de un usuario, mientras que se seguirá permitiendo al usuario cambiar su propia contraseña. ? Conceder permisos sólo de lectura a los gerentes para los números de teléfono de casa de sus informadores directos, mientras que se deniega este privilegio a cualquier otro. ? Conceder a cualquiera en el grupo "host-admins" crear, borrar, y editar todos los aspectos de información del hosts almacenados en LDAP. ? A través de una página Web, permitir a la gente en "foobar-ventas" selectivamente conceder o denegarse a ellos mismos el acceso de lectura a subsets de la base de datos de contactos de cliente. Esto podría, a su vez, permitir a esos individuos descargar información de contacto de los clientes a sus ordenadores portátiles o a sus PDA. (Esto será más útil si tu herramienta de forzamiento de automatización para ventas es LDAP-izable.) ? A través de una página Web, permitir a cualquier propietario de grupo añadir o eliminar entradas de sus grupos. Por ejemplo, esto podría permitir a los gerentes de ventas conceder o eliminar el acceso a la gente de ventas para modificar las páginas Web. Esto podría permitir a los propietarios de los alias de correo añadir o eliminar usuarios sin contactar con TI. Las listas de distribución designadas como "pública" pueden permitir que los usuarios se añadan o se eliminen ellos mismos (pero solo a ellos mismos) de o a esos alias de correo. Las restricciones pueden basarse también en direcciones IP o nombres de máquina. Por ejemplo, los campos pueden hacerse legibles solo si la dirección IP del usuario empieza por 192.168.200.*, o si la resolución inversa del nombre de máquina del usuario por DNS se mapea a *.foobar.com. LDAP soporta autenticación con la librería SASL y el protocolo SSL en su versión LDAPv3 de modo que garantiza la seguridad del tráfico de red.