openldap

2,967 views
2,822 views

Published on

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

  • Be the first to like this

No Downloads
Views
Total views
2,967
On SlideShare
0
From Embeds
0
Number of Embeds
32
Actions
Shares
0
Downloads
114
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

openldap

  1. 1. Dani Gutiérrez Porset [email_address] <ul><ul><li>openldap </li></ul></ul>
  2. 2. Índice <ul><li>Introducción </li></ul><ul><li>Servicios de directorio </li></ul><ul><li>Protocolo LDAP </li></ul><ul><li>openldap </li></ul><ul><li>Software </li></ul><ul><li>Licencia de uso </li></ul>
  3. 3. Servicios de Directorio <ul><li>Es una aplicación o servicio que hace de interface a un repositorio o backend de almacenamiento de datos estructurados según un modelo específico de directorio. </li></ul><ul><li>Ejs: NIS, Active Directory, LDAP </li></ul><ul><li>Características: </li></ul><ul><ul><li>Operaciones: Alta, borrado, modificación de objetos. </li></ul></ul><ul><ul><li>Replicación: mejora de rendimiento, seguridad. </li></ul></ul><ul><ul><li>Distribución: zonas de datos gestionadas por servidores distintos. Delegar autoridad. </li></ul></ul><ul><ul><li>Seguridad: Autenticación y autorización. ACLs </li></ul></ul>
  4. 4. Servicios de Directorio <ul><li>Diferencias con bases de datos relacionales: </li></ul><ul><ul><li>No lenguaje SQL. </li></ul></ul><ul><ul><li>Más optimizados para lectura y menos para escritura. </li></ul></ul><ul><ul><li>No transaccional. </li></ul></ul><ul><ul><li>Modelo de datos: </li></ul></ul><ul><ul><ul><li>Estructuración: </li></ul></ul></ul><ul><ul><ul><ul><li>Relacional: tablas normalizadas </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Srv. Directorio: </li></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>Árbol de objetos + Jerarquía de clases </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>Atributos multi-valor </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>No tablas intermedias </li></ul></ul></ul></ul></ul><ul><ul><ul><li>ACLs a nivel de atributo. </li></ul></ul></ul>
  5. 5. Servicios de Directorio <ul><li>Modelo de datos de directorio: </li></ul><ul><ul><li>Objetos estructurados en árboles jerárquicos. DIT: Directory Information Tree. </li></ul></ul><ul><ul><li>“Esquema”: definición de clases y atributos de objetos. </li></ul></ul><ul><ul><li>Atributos de los objetos: </li></ul></ul><ul><ul><ul><li>Opcionales u obligatorios </li></ul></ul></ul><ul><ul><ul><li>Uno o varios valores, ej. teléfono </li></ul></ul></ul><ul><ul><ul><li>Posibilidad de ACL a nivel de atributo </li></ul></ul></ul><ul><ul><li>Identificadores: </li></ul></ul><ul><ul><ul><li>De clases y atributos. OID=nº asignado oficialmente (ITU, ISO, IANA) en notación ASN.1 </li></ul></ul></ul><ul><ul><ul><ul><li>Lista de OIDs: http://www.alvestrand.no/objectid/ </li></ul></ul></ul></ul><ul><ul><ul><li>De objetos: atributo DN (distinguished name) </li></ul></ul></ul>
  6. 6. Servicios de Directorio <ul><li>Usos de información de directorio: </li></ul><ul><ul><li>Interface para otros servicios, ej. </li></ul></ul><ul><ul><ul><li>S.O: </li></ul></ul></ul><ul><ul><ul><ul><li>Cuentas y claves de usuario del S.O. </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Equipos de una red </li></ul></ul></ul></ul><ul><ul><ul><li>smtp, http, samba,... </li></ul></ul></ul><ul><ul><li>A medida: </li></ul></ul><ul><ul><ul><li>Emails para programas de correo electrónico. </li></ul></ul></ul><ul><ul><ul><li>Datos de usuario, ej. guía telefónica. </li></ul></ul></ul>
  7. 7. Protocolo LDAP <ul><li>LDAP = L ightweight D irectory A ccess P rotocol. </li></ul><ul><li>Protocolo para acceder a un directorio de servicio a través de tcp/ip. </li></ul><ul><li>Puertos por defecto: </li></ul><ul><ul><li>No seguro: tcp 389 </li></ul></ul><ul><ul><li>Seguro (ssl/tls): tcp 636 </li></ul></ul><ul><li>Posibilidad de acceder vía URLs: </li></ul><ul><ul><li>ldap://host:port/DN?attributes?scope?filter?extensions </li></ul></ul><ul><li>Origen: Protocolo X.500 (DAP): </li></ul><ul><ul><li>X.500 sólo corría en máquinas potentes </li></ul></ul><ul><ul><li>Era necesario un protocolo para acceder desde PCs </li></ul></ul>
  8. 8. Protocolo LDAP <ul><li>LDAP y DNS: semejantes, pero no lo reemplaza: </li></ul><ul><ul><li>Es un superconjunto. </li></ul></ul><ul><ul><li>DNS: UDP </li></ul></ul><ul><li>LDIF = L DAP D ata I nterchange F ormat: </li></ul><ul><ul><li>Formato de fichero de texto para intercambio </li></ul></ul><ul><ul><li>Estandar muy usado ej. exportación/importación de contactos entre programas de correo electrónico </li></ul></ul>
  9. 9. Protocolo LDAP <ul><li>Operaciones: </li></ul><ul><ul><li>Sobre objetos: </li></ul></ul><ul><ul><ul><li>Añadir, borrar objetos. </li></ul></ul></ul><ul><ul><ul><li>Añadir, borrar, modificar atributos (DN incluido) de un objeto. </li></ul></ul></ul><ul><ul><ul><li>Buscar objetos en base a valores de atributos. </li></ul></ul></ul><ul><ul><ul><li>Comparar el valor de un atributo con un valor dado. </li></ul></ul></ul><ul><ul><li>Comprobación de credenciales de usuario (“bind”) </li></ul></ul>
  10. 10. Protocolo LDAP <ul><li>Replicación entre servidor maestro y servidores esclavos. </li></ul><ul><li>Seguridad: </li></ul><ul><ul><li>ACLs a nivel de atributo </li></ul></ul><ul><ul><li>Autenticación. Hay dos modos: </li></ul></ul><ul><ul><ul><li>Simple (usuario anónimo o usuario+clave) </li></ul></ul></ul><ul><ul><ul><li>SASL= S imple A uthentication and S ecurity L ayer </li></ul></ul></ul><ul><ul><li>SSL </li></ul></ul>
  11. 11. Protocolo LDAP <ul><li>Modelo de datos: </li></ul><ul><ul><li>Esquemas: </li></ul></ul><ul><ul><ul><li>Especificación de atributos </li></ul></ul></ul><ul><ul><ul><ul><li>OID, Nombre y descripción: OID, NAME, DESC </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Reglas varias: EQUALITY, SUBSTR, ORDERING, SYNTAX </li></ul></ul></ul></ul><ul><ul><ul><ul><li>... </li></ul></ul></ul></ul><ul><ul><ul><li>Especificación de clases </li></ul></ul></ul><ul><ul><ul><ul><li>OID, Nombre y descripción: OID, NAME, DESC </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Clase madre: SUP. Puede haber más de una. </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Tipo de clase: STRUCTURAL, AUXILIARY, ABSTRACT </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Atributos obligatorios, opcionales: MUST, MAY... </li></ul></ul></ul></ul><ul><ul><ul><li>Admite alias a objetos </li></ul></ul></ul><ul><ul><li>Ref: http://www.zytrax.com/books/ldap/ch3/index.html </li></ul></ul>
  12. 12. openldap <ul><li>Implementación libre del protocolo (Univ. de Michigan). </li></ul><ul><li>Ref: http://www.openldap.org/doc/ </li></ul><ul><li>Backends posibles: </li></ul><ul><ul><li>Típicos: bdb, ldbm </li></ul></ul><ul><ul><li>Otros: config, dnssrv, hdb, ldap, ldif, sql,... </li></ul></ul><ul><li>Opciones de Rendimiento </li></ul><ul><ul><li>Índices </li></ul></ul><ul><ul><li>Opciones específicas a cada backend (ej. bloqueos) </li></ul></ul>
  13. 13. openldap <ul><li>Comandos de servidor: </li></ul><ul><ul><li>slapd: demonio gestor principal del LDAP </li></ul></ul><ul><ul><li>slurpd: demonio para replicación. </li></ul></ul><ul><ul><li>Importación/exportación de ldif: slapadd, slapcat </li></ul></ul><ul><ul><li>Seguridad: </li></ul></ul><ul><ul><ul><li>slapauth: chequea autenticaciones/autorizaciones de un identificador </li></ul></ul></ul><ul><ul><ul><li>slapacl: verifica el acceso a una lista de atributos </li></ul></ul></ul><ul><ul><ul><li>slappasswd: genera passwords según distintos tipos de hash </li></ul></ul></ul><ul><ul><li>Otros: </li></ul></ul><ul><ul><ul><li>slaptest: comprueba un fichero slapd.conf </li></ul></ul></ul><ul><ul><ul><li>slapindex: regeneración de índices </li></ul></ul></ul><ul><ul><ul><li>slapdn: verificación de cadenas dn </li></ul></ul></ul>
  14. 14. openldap <ul><li>Ficheros del servidor: </li></ul><ul><ul><li>Configuración: </li></ul></ul><ul><ul><ul><li>/etc/ldap/slapd.conf: configuración del servidor. Las directivas se agrupan en: </li></ul></ul></ul><ul><ul><ul><ul><li>Globales </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Específicas a cada tipo de backend </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Específicas a cada base de datos. </li></ul></ul></ul></ul><ul><ul><ul><li>/etc/default/slapd: valores por defecto </li></ul></ul></ul><ul><ul><ul><li>/etc/ldap/schema/: esquemas. </li></ul></ul></ul><ul><ul><li>Runtime: /var/lib/ldap/: ficheros de backend y réplica de log </li></ul></ul>
  15. 15. openldap <ul><li>Comandos de cliente: </li></ul><ul><ul><li>Gestión de objetos: </li></ul></ul><ul><ul><ul><li>Búsquedas y comparaciones: ldapsearch, ldapcompare. </li></ul></ul></ul><ul><ul><ul><li>Alta, baja y modificación: ldapadd, ldapdelete, ldapmodify, ldapmodrdn. </li></ul></ul></ul><ul><ul><li>Seguridad: </li></ul></ul><ul><ul><ul><li>ldappasswd: cambiar la password de una entrada del árbol </li></ul></ul></ul><ul><ul><ul><li>ldapwhoami: operación whoami, útil para verificar autenticación/autorización </li></ul></ul></ul><ul><li>Ficheros de configuración del cliente: </li></ul><ul><ul><li>/etc/ldap/ldap.conf </li></ul></ul>
  16. 16. Software <ul><li>apt-cache search ldap| grep -i ldap </li></ul><ul><li>Principales: </li></ul><ul><ul><li>slapd: servidor </li></ul></ul><ul><ul><li>libldap2, libldap-2.3-0: librerías de runtime </li></ul></ul><ul><ul><li>ldap-utils: comandos de shell </li></ul></ul><ul><li>Módulos para: </li></ul><ul><ul><li>Sistema Operativo: libnss-ldap, libpam-ldap, libsasl2-modules-ldap, sudo-ldap, autofs-ldap </li></ul></ul><ul><ul><li>Otras aplicaciones: </li></ul></ul><ul><ul><ul><li>apache, ftp, samba, dns, finger, radius, courier, postfix y varios de correo </li></ul></ul></ul><ul><ul><ul><li>aolserver, sope, zope, phpgroupware, egroupware, gforge </li></ul></ul></ul>
  17. 17. Software <ul><li>Librerías para lenguajes: C, php, perl, python, ruby, mono, haskell, ocaml </li></ul><ul><li>Gestores de LDAP (comandos, GUI). Ej: phpldapadmin, JXplorer (no en Ubuntu) </li></ul><ul><li>Herramientas de gestión de cuentas basadas en LDAP </li></ul>
  18. 18. Licencia de uso <ul><ul><li>http://creativecommons.org/licenses/by-sa/3.0/ </li></ul></ul>

×