Realizado con OpenOffice.org-1.0.1
Utilicemos Software Libre cada vez que podamos...(lo hay bastante y de excelentes prestaciones)
DISCLAIMER
EntendiendoEntendiendo
LDAPLDAPLightweight Directory Access Protocol
CAFELUG
Briefing Trimestral UTN (Universidad Tecnológica Nacional Regional Bs.As.)
Dic. 2002
Qué es LDAP?Qué es LDAP?
Protocolo MultiplataformaOpen Standard (define Métodos para acceso y actualización de
información)
Descendiente de X.500 (Directory Access Protocol)
Modelo de representación de Datos (optimizado para consultas)
Servicio de Directorio
Qué es un Directorio?Qué es un Directorio?
Definición:
Colección jerárquica de Objetos y Atributos de Objetos ordenados de alguna manera particular, que dan detalles sobre cada objeto.
Ejemplos: Guía Telefónica Catálogo de Libros En términos de
computación: Subdirectorios de un filesystem
Ejemplos de DirectoriosEjemplos de Directorios
Guía Telefónica Personas (objetos) Orden Alfabético Atributos – Apellido, Nombre, Nro. TE, etc.
Catálogo de libros Libros (objetos) Orden x Autor / Título Atributos – Nro. ISBN, Cantidad páginas, etc.
DirectoriosDirectorios
Base de datos especializada – RepositorioPermiten a usuarios o aplicaciones
encontrar recursos, Ej: Usuarios: Encontrar e-mail, TE, Fax, impresora, etc. Aplicaciones: Encontrar los servers a los cuales
puede acceder un usuario, clientes que pueden acceder al sistema de facturación, impresora, etc.
White pageYellow page
Diferencias entre DB y Diferencias entre DB y DirectoriosDirectorios
Los directorios son DB especializadas.Características:
Altos volúmenes de lecturaBaja volatilidad - Almacenan información
relativamente estáticaActualizaciones limitadas a propietarios ó adminsNo son transaccionalesGeneralmente no requieren consistencia estrictaNo soportan SQL
Por qué usar LDAP?Por qué usar LDAP?
Repositorio de datos CentralizadoSimplificación de la administración
(Passwords, Home directories, etc.)
Cifrado de transacciones (SSL, TLS, etc.)
Replicación (Aumenta la disponibilidad)
Distribución (Reduce la carga de la red)
Posibilidad de usar estructuras de árbol(Permite dividir una organización en unidades organizacionales)
Modelo de DatosModelo de Datos
La Unidad básica de información en un directorio se llama Entry.
Entry Representa objetos de interés en el mundo real (Personas, Organizaciones,
Servers, etc.)
Compuestos por:Colección de Atributos que contienen información del objeto
Cada Atributo tiene un tipo de datoCada tipo de dato tiene asociada una sintaxis Uno o más valores
Cómo se comportan en una búsqueda o en otras operaciones de directorio
Ejemplo de atributo: FacsimilieTelephoneNumber
SchemaSchema
Representa los tipos de objetos que un directorio puede contener.Dispone de una lista de atributos (Requeridos /
Opcionales) de cada objetoSchema-checking (Asegura que todos los
atributos requeridos existan antes del almacenamiento)
Define la herencia y subclases de los objetosEn qué lugar del DIT un objeto puede aparecer
RFC2252 Sintaxis de los atributos2256 Schema
Naming ModelDefine cómo son las entradas:
Identificadas, yOrganizadas DIT (Directory Information
Tree)Cada entrada al DIT está identificada por un
identificador único llamado distinguished name (DN)
Cada DN puede estar formado por una secuencia de RDN (relative distinguished names)
Cada RDN en un DN corresponde a una rama del DIT
Cada RDN es derivado de su atributo (generalmente tiene la forma <Nombre de Atributo> = <Valor>)
Aclarando las cosasAclarando las cosas
OpenLDAPOpenLDAP OpenLDAP 2.x es un LDAP v3 directory server desarrollado bajo
licencia GPL por the OpenLDAP foundation.
Soporta: SSL/TLS Replicación Autentificación SASL/GSSAPI, Integración con KerberosV Password Cleartext, crypt, MD5 y SHA LDAP X.500 Gateway LDBM, DB2 Múltiples plataformas: Linux, AIX, BSD, Solaris, NT, etc... APIs para C, C++, PHP, Perl, Python, TCL, SmallTalk, Sun
JNDI,..... Novedades de opciones no soportadas en
http://www.openldap.org/faq/data/cache/645.html
ServersServers
Slapd * Stand alone LDAP server
Slurpd * Directory Replication Server (sólo necesario cuando se trabaja con múltiples servers)
Programas AdministrativosProgramas Administrativos
Slapadd – Agrega entradas desde un archivo LDIF a un directorio LDAP. Ej., /usr/sbin/slapadd -l ldif-input.
slapcat -Extrae las entradas de un directorio LDAP y lo salva en un archivo tipo LDIF. Ej., /usr/sbin/slapcat -l ldif-output creará un archivo LDIF llamado ldif-output
slapindex - Re-indexa el directorio.slappasswd - Genera un valor de password encriptada
Ej., /usr/sbin/slappasswd
Precaución: Antes de correr los comandos slapadd, spapcat, slapindex
verifique que el servidor ldap (slapd) no esté corriendo, si no hace esto, podría tener problemas de consistencia.
Programas ClienteProgramas Cliente
ldapmodify – Modifica las entradas en un directorio LDAP, acepta input desde un archivo o standard input.
ldapadd – Agrega entradas al directorio, acepta input desde un archivo o standard input
ldapsearch – Realiza búsquedas en el directorio LDAP usando el shell prompt.
ldapdelete – Elimina entradas de un directorio LDAP, acepta input desde un archivo o standard input.
Archivos de configuraciónArchivos de configuración
Generalmente encontrados en /etc/ldap ó /etc/openldap
Archivo de configuración primario slapd.conf, se establecen los defaults para todo el sistema (configuración global)
Schema almacenados en archivos de texto separados, usualmente encontrados en /etc/ldap/schema ó /etc/openldap/schema
Niveles de LogNiveles de LogNiveles de log Disponibles (en slapd.conf incluir loglevel <integer>)
-1 all messages 1 trace function calls 2 debug packet handling 4 heavy trace debugging 8 connection management 16 print out packets sent and received 32 search filter processing 64 configuration file processing 128 access control list processing 256 stats log connections/operations/results 512 stats log entries sent 1024 print communication with shell backends 2048 entry parsing
Configurando Configurando slapd.conf
Ubicación: /etc/openldap/slapd.confIncluir Schema que se usarán
include /etc/openldap/schema/core.schema include /etc/openldap/schema/misc.schema include /etc/openldap/schema/cosine.schema include /etc/openldap/schema/inetorgperson.schema include /etc/openldap/schema/nis.schema
Especificar DB database ldbm suffix “dc=cafelug,dc=org,dc=ar" rootdn "cn=Manager, dc=cafelug,dc=org,dc=ar " rootpw {crypt}mvRCcD3ajNmf2 directory /var/lib/ldap index
objectClass,uid,uidNumber,gidNumber,memberUid eq
Archivo LDIFArchivo LDIFRegistro 1dn: dc=cafelug,dc=org,dc=ar
objectclass: dcObject
objectclass: organization
o: Cafelug ONG
dc: cafelug
Registro 2dn:ou=People,dc=cafelug,dc=
org,dc=ar
objectclass: organisationalUnit
ou: people
Registro 3dn: uid=daniel,ou=People,
dc=cafelug,dc=org,dc=arobjectclass: topobjectclass: personobjectclass: organizationalPersonobjectclass: inetOrgPersonuid: danielcn: Daniel Fariasgivenname: Danielsn: Fariaso: Cafelug ONGuserPassword:
{SSHA}D3DT4BJyKicf+PJ1+eqkGmail: [email protected]
changetype: modify
iconv -f iso-8859-1 -t utf-8 filename.ldif > filename-utf-8.ldif
Agregando entradasAgregando entradas
Crear un archivo LDIF# ldaadd -D cn=Manager,dc=metaparadigm,dc=com
-W<init.ldifEnter LDAP Password: xxxxx
adding new entry "dc=cafelug,dc=org,dc=ar"
adding new entry "ou=People, dc=cafelug,dc=org,dc=ar "
adding new entry "uid=daniel,ou=People,dc=cafelug,dc=org,dc=ar "
Filtros de búsquedaFiltros de búsqueda
LDAP usa ‘search filters’ syntax (RFC2254) Las consultas LDAP retornan todos los atributos de las entradas
encontradas (o el atributo especificado) que coincidan con el filtro de búsqueda
Las partículas de la consulta son colocados entre () en la forma ( atributo <regla de coincidencia> valor ) Ej. (cn=Daniel Farias)
Las reglas pueden incluir (=, =~, >=, <=) * puede ser usado como wildcard dentro de un valor. Se pueden utilizar operadores booleanos: (&, |, !)
Ejemplo de BúsquedaEjemplo de Búsqueda
# ldapsearch -LLL -v -x -h xxx.xxx.xxx.xxx -b dc=k-maleon,dc=cafelug,dc=org,dc=ar'(&(|(uid=d*)(uid=p*))(objectClass=inetOrgPerson))' cn mail uidNumber
Resultadofilter: (&(|(uid=d*)(uid=p*))(objectClass=inetOrgPerson)) requesting: cn mail uidNumber dn: uid=pablom,ou=People,dc=k-maleon,dc=cafelug,dc=org,dc=ar uidNumber: 1000 mail: [email protected] cn: Pablo Medrano dn: uid=danielp,ou=People,dc=k-maleon,dc=cafelug,dc=org,dc=aruidNumber: 1002 cn: Daniel Perez mail: [email protected] dn: uid=danielf,ou=People,dc=k-maleon,dc=cafelug,dc=org,dc=aruidNumber: 1003 cn: Daniel Farias mail: [email protected]
ReplicaciónReplicaciónSe configura en el archivo slapd.confMaster
# Directivas para replicaciónreplogfile /usr/local/var/openldap/slapd.replogreplica host=slave1.cafelug.org.ar:389
binddn="cn=Replicator,dc=cafelug,dc=org,dc=arbindmethod=simple credentials=secret
replica host=slave2. cafelug.org.ar:636 binddn=" cn=Replicator,dc=cafelug,dc=org,dc=ar
bindmethod=simple credentials=secret
SlavesCrear la entrada updatedn cn=Replicator,dc=cafelug,dc=org,dc=ar en cada uno de los Slaves
SeguridadSeguridad
ACLs Se configura en el archivo slapd.confaccess to attr=userPassword by self write
by anonymous authby * none
Acceso SSL (Debe disponer de un certificado) TLSCertificateFile /etc/openldap/ldap.cafelug.org.ar.cer TLSCertificateKeyFile /etc/openldap/ldap.cafelug.org.ar.key Modificar el init
– /usr/libexec/slapd -h 'ldap://ldap.cafelug.org.ar/ ldaps://ldap.cafelug.org.ar/' \
-l LOCAL4 -u ldap -g ldap
MigracionMigracion
Mail Aliases (/etc/aliases) File System Table (/etc/fstab) Group Information (/etc/group)Hosts (/etc/hosts) Network Table (/etc/networks) User Information (/etc/passwd)Protocols (/etc/protocols) RPC Information (/etc/rpc)Services Information (/etc/services)
AplicacionesAplicaciones
Browsers/EditoresBrowsers/Editores
❒GQ
Browsers/Editores - JavaBrowsers/Editores - Java
Browsers/Editores - JavaBrowsers/Editores - Java
Agendas de contactosAgendas de contactos
❒ Evolution❒ Oulook 9x,2K..❒ Netscape❒ ...?
Top Related