1. servicio de nombres

Anuncio
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.
Descargar