1.7. ¿Qué es slapd y qué puede hacer?

slapd (8) es un servidor de directorio LDAP que se ejecuta en distintas plataformas. Algunas de las características más interesantes de slapd son:

1.7.1. LDAPv3:

slapd implementa la versión 3 de Lightweight Directory Access Protocol. slapd soporta LDAP sobre IPv4, IPv6 y Unix IPC.

1.7.2. Simple Authentication and Security Layer (SASL):

slapd tiene soporte de autentificación fuerte gracias al uso de SASL. La implementación SASL de slapd hace uso del software Cyrus SASL, el cual soporta un gran número de mecanismos de autentificación, como: DIGEST-MD5, EXTERNAL, y GSSAPI.

1.7.3. Transport Layer Security:

slapd provee protecciones de privacidad e integridad gracias al uso de TLS (o SSL). La implementación TLS de slapd hace uso del software OpenSSL.

1.7.4. Control Topológico

slapd se puede configurar para restringir el acceso a la capa de socket basándose en la información topológica de la red. Esta característica hace uso de los TCP wrappers.

1.7.5. Control de Acceso:

slapd provee facilidades de control de acceso muy potentes, permitiéndole controlar el acceso a la información de su(s) base(s) de datos. Puede controlar el acceso a las entradas basándose en la información de autorización de LDAP, en la dirección IP, en los nombres de dominio y otros criterios. slapd soporta tanto el control de acceso a la información dinámico como estático.

1.7.6. Internacionalización:

slapd soporta Unicode y etiquetas de lenguaje.

1.7.7. Elección del backend de la base de datos:

slapd viene con una serie de backends para diferentes bases de datos. Estos incluyen DBD, un backend de una base de datos transaccional de alto rendimiento; LDBM, un backend ligero basado en DBM; SHELL, una interface para scripts de shell; y PASSWD, un backend simple para el archivo passwd (5). El backend BDB hace uso de Sleepycat Berkeley DB. LDBM utiliza cualquiera de las siguientes: Berkeley DB o GDBM.

1.7.8. Muchas instancias de bases de datos:

slapd se puede configurar para servir a múltiples bases de datos al mismo tiempo. Esto significa que un único servidor slapd puede responder a peticiones de diferentes porciones lógicas del árbol de LDAP, haciendo uso del mismo o distintos backends de bases de datos.

1.7.9. IP genérica de módulos:

Si necesita más personalización, slapd le permite escribir sus propios módulos fácilmente. slapd consiste en dos partes diferentes: un frontend que maneja las comunicaciones protocolares con los clientes LDAP; y módulos que manejan tareas específicas como las operaciones con las bases de datos. Debido a que estas dos piezas se comunican a través de una API C bien definida, puede escribir sus propios módulos, que extenderán slapd de múltiples maneras. También existen numerosos módulos programables de bases de datos. Estos permiten a slapd acceder a fuentes de datos externas haciendo uso de lenguajes de programación populares (Perl, shell, SQL y TCL).

1.7.10. Hilos:

slapd hace uso de hilos para obtener alto rendimiento. Un proceso único multihilo maneja todas las peticiones entrantes haciendo uso de una piscina de hilos. Esto reduce la carga del sistema a la vez que provee alto rendimiento.

1.7.11. Replicación:

slapd se puede configurar para que mantenga copias de la información del directorio. Este esquema de replicación, un único maestro/múltiples esclavos, es vital en ambientes con un volumen alto de peticiones, donde un único servidor slapd no podría proveer la disponibilidad ni la confiabilidad necesarias. slapd incluye también un soporte experimental para la replicación de múltiples maestros. slapd soporta dos métodos de replicación: Sync LDAP y slurpd (8).

1.7.12. Proxy caché:

slapd puede ser configurado como un servicio proxy de caché LDAP.

1.7.13. Configuración:

slapd es altamente configurable a través de un único archivo de configuración, que permite modificar todo aquello que se necesite cambiar. Las opciones por defecto son razonables, lo que facilita mucho el trabajo.