Sunteți pe pagina 1din 21

Usando OpenLDAP

Contenidos
Captulo 1. Introduccin a los servicios de directorios
1.1. Directorios de red
1.2. Clasificacin de los directorios de red
1.3. Interaccin del directorio cliente/servidor
1.4. Los servicios de directorio
1.5. Para u! sirven los servicios de directorio"
1.#. $utenticacin %nica
Captulo 2. &l protocolo LD$P
2.1. 'u! es LD$P"
2.2. 'u! tipo de infor(acin se puede al(acenar en un directorio"
2.3. C(o se al(acena la infor(acin en un servidor LD$P"
2.4. C(o es referenciada la infor(acin"
2.5. C(o se accede a la infor(acin"
2.#. C(o se prote)e la infor(acin de los accesos no autori*ados"
2.+. C(o tra,a-a LD$P"
2... Cu/l es la diferencia entre LD$Pv2 0 LD$Pv3"
2.1. LDI2
2.13. $tri,utos 0 esue(as
2.13.1. 'u! es un atri,uto"
2.13.2. 'u! si)nifica el valor del atri,uto o,-ectClass"
2.13.3. 4ipos de o,-ectClass
2.13.4. 'u! es el atri,uto dc"
2.13.5. $tri,utos co(unes
2.13.#. Clases de o,-eto co(unes
2.13.+. &sue(as co(unes
2.11. $utenticacin en LD$P
2.12. 2iltros LD$P
Captulo 3. Instalacin de 5penLD$P
3.1. Instalacin desde las fuentes
3.2. Instalacin desde ,inarios
Captulo 4. Confi)uracin de 5penLD$P
4.1. 2uncin de los co(ponentes
4.2. &l arc6ivo de confi)uracin slapd.conf
4.3. Directivas de funciona(iento )eneral
4.4. Directivas de ,ac7ends
4.5. Listas de control de acceso 8$CL9
Captulo 5. $d(inistracin del servicio de directorios
5.1. :erra(ientas de (anipulacin del ,ac7end
5.1.1. ;eneracin del contenido
5.1.2. <olcado de contenido
5.1.3. ;eneracin de contrase=as
5.2. :erra(ientas de ad(inistracin LD$P
5.2.1. >odificar contenido del directorio
5.2.2. ?%suedas en el directorio
Captulo 1. Introduccin a los servicios de directorios
1.1. Directorios de red
Qu es un directorio?
&s una coleccin ue al(acena infor(acin so,re o,-etos ue est/n or)ani*ados 0 relacionados entre s de al)una for(a.
Qu es un directorio de red?
&s una ,ase de datos especiali*ada@ ta(,i!n lla(ada repositorio ue posee infor(acin (uc6o (/s descriptiva 0 ,asada en atri,utos.
Diferencias entre una ,ase de datos 0 un directorio de red
Criterio Directorio Base de datos
Segn el propsito de acceso Lectura y bsqueda Actualizacin o escritura de datos
Segn su soporte de acceso Soportan altos volmenes de solicitudes de lectura Altas actualizaciones de volmenes
Segn su capacidad de operacin No es apropiada para almacenar cambios rpidos en
la informacin
Apropiadas para cambios rpidos en la
informacin
Segn las transacciones No soportan ciertos tipos de transacciones Soportan transacciones complejas
Segn la consistencia de la informacin No requiere una estricta consistencia La informacin debe ser estricta y verdica en
tiempo real
Segn el lenguaje rotocolo de acceso! L"A S#L
1.2. Clasificacin de los directorios de red
Segn el proceso
Directorio cliente A uien efect%a la solicitud
Servidor de directorio A procesos de ,%sueda de infor(acin en el directorio.
Segn la cantidad de servidores
Centralizado A un %nico servidor provee acceso al directorio.
Distribuido A 6a0 (/s de un servidor ue provee acceso al directorio@ donde la infor(acin puede serA
Particionada @ cada entrada de directorio es al(acenada por uno 0 solo un servidor.
Replicada @ se al(acena la infor(acin en (as de un servidor.
Segn el tipo de clientes
Locales
;lo,ales
1.3. Interaccin del directorio cliente/servidor
Los directorios usual(ente son accedidos usando el (odelo de co(unicacin cliente/servidor. Bna aplicacin ue uiere acceder a
leer o escri,ir en un directorio no accede al directorio directa(ente. &n lu)ar de eso@ esta lla(a a una funcin o $pplication
Pro)ra((in) Interface 8$PI9 ue ori)ina un (ensa-e para ser enviado a otro proceso. &ste se)undo proceso accede a la infor(acin
en el directorio por la solicitud enviada por la aplicacin. Los resultados de leer o escri,ir son lue)o retornados a la aplicacin ue los
solicito.
1.. Los servicios de directorio
Bn servicio de directorio es la fuente de la infor(acin del directorio 0 los servicios ue 6acen ue la infor(acin este disponi,le a los
usuarios. Bn servicio de directorio proporciona los (edios para or)ani*ar 0 si(plificar el acceso a los recursos de un siste(a de
co(putadoras de red. Bn servicio de directorio identifica a los usuarios 0 a los recursos de (anera %nica so,re una red 0 proporciona
una (anera de or)ani*ar 0 acceder a otros usuarios 0 recursos.
2unciones para las ue se puede utili*ar un servicio de directorioA
Identificacin 0 autenticacin.
Ce)uridad para los o,-etos.
Deplicar un directorio.
Dividir un directorio.
La estructura l)ica de un servicio de directorio est/ confor(ada porA
5,-etos
$tri,utos
Clases
Bnidades de or)ani*acin
Do(inios
Er,oles
Caractersticas de un servicio de directorioA
1. La infor(acin contenida se lee (uc6o (/s de lo ue se escri,e.
2. Li(itados esue(as de transaccin o reduccin ue co(%n(ente i(ple(entan las ,ases de datos.
3. 5pti(i*acin al responder de for(a r/pida a operaciones de ,%sueda o consultas.
4. Capacidad de replica de infor(acin de for(a r/pida 0 a(plia entre distintos servidores de directorios
1.!. "Para #u$ sirven los servicios de directorio%
&l servicio ofrecido para personas es el de proporcionar una ,ase de datos distri,uida con datos de inter!s co(o pueden ser
direcciones eF(ail@ tipo de actividad@ dnde se dese(pe=a !sta e incluso fotos 0 docu(entos sonoros de los (ie(,ros.
Despecto al servicio para (/uinas el (/s i(portante es el de utili*arse co(o repositorio de infor(acin de accountin) 8usuarios 0
claves9 per(itiendo la i(plantacin de una autenticacin %nica 0 consistente para todos los servicios ofrecidos en una red.
1.&. "'u$ es la autenticacin (nica%
&l au(ento del n%(ero de servicios a los ue tene(os acceso nos lleva a tener ue recordar (%ltiples usuarios 0 contrase=as para
acceder a cada uno de ellos. La autenticacin %nica es el intento de unificar el acceso a todos esos servicios con un %nico usuario 0
contrase=a.
&l ca(ino por el ue nos lleva esta filosofa es la de identificar a la persona 0 ofrecer los servicios a cada persona por su relacin con la
or)ani*acin en lu)ar de por el conoci(iento de una clave.
Captulo 2. )l protocolo LDAP
2.1. "'u$ es LDAP%
LD$P@ Lightweight Directory Access Protocol@ Protocolo de $cceso Li)ero a Directorios@ es un protocolo de tipo cliente/servidor para
acceder a un servicio de directorio. &ste se encuentra condensado en el est/ndar de Internet@ el D2C 1+++.
&ntre sus caractersticas est/nA
Corre so,re 4CP/IP
Ci(ple
5(ite duplicados
Bsa cadenas ue representan datos de co(plicada estructura de sintaGis $HC.18$,stract C0ntaG Hotation 5ne9
2.2. "'u$ tipo de infor*acin se puede al*acenar en un directorio%
&l (odelo de infor(acin de LD$P est/ ,asado en entradas. Bna entrada es una coleccin de atri,utos ue tienen un %nico 0 )lo,al
Ho(,re Distin)uido 8DH9. &l DH se utili*a para referirse a una entrada sin a(,i)Iedades. Cada atri,uto de una entrada posee un tipo 0
uno o (/s valores. Los tipos son nor(al(ente pala,ras ne(ot!cnicas@ co(o cn para Co((on Ha(e@ o mail para una direccin de
correo. La sintaGis de los atri,utos depende del tipo de atri,uto. Por e-e(plo@ un atri,uto cn puede contener el valor Sergio Gonzlez.
Bn atri,uto mail puede contener un valor sergio!e"e#plo$co#. &l atri,uto jpegPhoto 6a de contener una foto)rafa en for(ato
JP&;.
2.3. "C*o se al*acena la infor*acin en un servidor LDAP%
&n LD$P@ las entradas est/n or)ani*adas en una estructura -er/ruica en /r,ol. 4radicional(ente@ esta estructura refle-a,a los l(ites
)eo)r/ficos 0 or)ani*acionales. Las entradas ue representan pases aparecen en la parte superior del /r,ol. De,a-o de ellos@ est/n
las entradas ue representan los estados 0 las or)ani*aciones nacionales. De,a-o de est/s@ pueden estar las entradas ue representan
las unidades or)ani*acionales@ e(pleados@ i(presoras@ docu(entos o todo auello ue pueda i(a)inarse. La si)uiente fi)ura (uestra
un e-e(plo de un /r,ol de directorio LD$P 6aciendo uso del no(,ra(iento tradicionalA
%ig$ &' (rbol del directorio LDAP )no#bra#iento tradicional*
&l /r,ol ta(,i!n se puede or)ani*ar ,as/ndose en los no(,res de do(inio de Internet. &ste tipo de no(,ra(iento se est/ volviendo
(u0 popular@ 0a ue per(ite locali*ar un servicio de directorio 6aciendo uso de los DHC. La si)uiente fi)ura (uestra un e-e(plo de un
directorio LD$P ue 6ace uso de los no(,res ,asados en do(inios.
%ig$ +' (rbol del directorio LDAP )no#bra#iento de ,nternet*
2.. "C*o es referenciada la infor*acin%
Bna entrada es referenciada por su no(,re distin)uido@ ue es construido por el no(,re de la propia entrada 8lla(ado Ho(,re
Delativo Distin)uido o DDH9 0 la concatenacin de los no(,res de las entradas ue le anteceden. Por e-e(plo@ la entrada para Huno
;onKalves en el e-e(plo del no(,ra(iento de Internet anterior tiene el si)uiente DDHA uid=nuno 0 su DH seraA
uid=nuno,ou=estig,dc=ipb,dc=pt.
2.!. "C*o se accede a la infor*acin%
LD$P define operaciones para interro)ar 0 actuali*ar el directorio. Provee operaciones para a=adir 0 ,orrar entradas del directorio@
(odificar una entrada eGistente 0 ca(,iar el no(,re de una entrada. La (a0or parte del tie(po@ sin e(,ar)o@ LD$P se utili*a para
,uscar infor(acin al(acenada en el directorio. Las operaciones de ,%sueda de LD$P per(iten ,uscar entradas ue concuerdan con
al)%n criterio especificado por un filtro de ,%sueda. La infor(acin puede ser solicitada desde cada entrada ue concuerda con dic6o
criterio.
Por e-e(plo@ i(a)nese ue uiere ,uscar en el su,/r,ol del directorio ue est/ por de,a-o de dc=ipb,dc=pt a personas con el
no(,re Huno ;onKalves@ o,teniendo la direccin de correo electrnico de cada entrada ue concuerde. LD$P per(ite 6acer esto
f/cil(ente. 5 tal ve* prefiera ,uscar las or)ani*aciones ue posean la cadena IP? en su no(,re@ posean n%(ero de faG 0 est!n
de,a-o de la entrada st=Bragana,c=PT. LD$P le per(ite 6acer esto ta(,i!n.
2.&. "C*o se prote+e la infor*acin de los accesos no autori,ados%
$l)unos servicios de directorio no proveen proteccin@ per(itiendo a cualuier persona acceder a la infor(acin. LD$P provee un
(ecanis(o de autentificacin para los clientes@ o la confir(acin de identidad en un servidor de directorio@ facilitando el ca(ino para un
control de acceso ue prote-a la infor(acin ue el servidor posee. LD$P ta(,i!n soporta los servicios de privacidad e inte)ridad.
2.-. "C*o tra.a/a LDAP%
&l servicio de directorio de LD$P est/ ,asado en el (odelo cliente/servidor. Bno o (/s servidores LD$P contienen los datos ue
confor(an la infor(acin del /r,ol del directorio 8DI49. &l cliente se conecta a los servidores 0 les for(ula pre)untas. Los servidores
responden con una respuesta o con un puntero donde el cliente puede o,tener infor(acin adicional 8nor(al(ente otro servidor
LD$P9. Ho i(porta a u! servidor LD$P se conecte un cliente@ este sie(pre o,tendr/ la (is(a visin del directorioL un no(,re
presentado por un servidor LD$P referencia la (is(a entrada ue cualuier otro servidor LD$P. &sta es una caracterstica (u0
i(portante del servicio )lo,al de directorio@ co(o LD$P.
2.0. "Cu1l es la diferencia entre LDAPv2 2 LDAPv3%
LD$Pv3 fue desarrollado en los a=os 13 para ree(pla*ar a LD$Pv2. LD$Pv3 incorpora las si)uientes caractersticas a LD$PA
$utentificacin fuerte 6aciendo uso de C$CL
Proteccin de inte)ridad 0 confidencialidad 6aciendo uso de 4LC 8CCL9
Internacionali*acin )racias al uso de Bnicode
De(isiones 0 continuaciones
Descu,ri(iento de esue(as
&Gtensi,ilidad 8controles@ operaciones eGtendidas 0 (/s9
LD$Pv2 es 6istrico. >uc6as i(ple(entaciones de LD$Pv2 inclu0endo slapd no se adaptan a las especificaciones t!cnicas de
LD$Pv2@ la interopera,ilidad entre las distintas i(ple(entaciones de LD$Pv2 es (u0 li(itada. Co(o LD$Pv2 difiere si)nificativa(ente
de LD$Pv3@ la interactuacin entre a(,as versiones puede ser un poco pro,le(/tica. LD$Pv2 6a de evitarse@ por lo ue en la
i(ple(entacin de 5penLD$P viene des6a,ilitado por defecto.
2.3. LDI4
LDAP ,nterchange %or#at 8LDI29@ es un for(ato de arc6ivo est/ndar usado para al(acenar confi)uraciones de infor(acin LD$P 0
contenido de directorios. &n su for(a (/s ,/sica un arc6ivo LDI2 esA
Bna coleccin de entradas separadas una de otra por lneas en ,lanco
Bna asociacin de atri,utos 0 valores.
Bna coleccin de directivas ue instru0en a un parser c(o procesar la infor(acin.
Los arc6ivos LDI2 por lo )eneral son usados para i(portar nuevos datos al directorio LD$P o 6acer ca(,ios en !l. Los datos en un
arc6ivo LDI2 de,en o,edecer las re)las de los esue(as del directorio LD$P. Puede i(a)inarse a un esue(a co(o una definicin
de datos para el directorio. Cada te( ue es a)re)ado o (odificado en el directorio es verficado contra los esue(as en ,usca de
errores 0 co(pro,acin de la sintaGis correcta. Ci un te( del arc6ivo LDI2 no corresponde con las re)las de un esue(a se produce
una violaci-n de es.ue#a$
&l si)uiente es un e-e(plo v/lido de contenido de un arc6ivo LDI2 ue representa las entradas de los dos pri(eros niveles del /r,ol
(ostrado en la i(a)en de a,a-o.
dn: dc=plainjoe,dc=org
objectClass: domain
dc: plainjoe
dn: ou=devices,dc=plainjoe,dc=org
objectClass: organizationalUnit
ou: devices
dn: ou=people,dc=plainjoe,dc=org
objectClass: organizationalUnit
ou: people
2.15. Atri.utos 2 es#ue*as
2.15.1. "'u$ es un atri.uto%
Los tipos de atri,uto 0 sus re)las de sintaGis asociadas son si(ilares a las declaraciones de varia,les 0 tipos de dato en (uc6os
len)ua-es de pro)ra(acin. Los atri,utos son usados para contener valores. Las varia,les en los pro)ra(as reali*an una funcin
si(ilarA al(acenar infor(acin.
Cuando una varia,le es declarada en un pro)ra(a@ es definida de un cierto tipo de dato. &ste tipo de dato especifica u! tipo de
infor(acin puede ser al(acenado en la varia,le@ a lo lar)o de otras tantas re)las@ tal co(o co(parar el valor de la varia,le con el dato
al(acenado en otra varia,le del (is(o tipo. Por e-e(plo declarar una varia,le entera de 1#F,it 0 lue)o asi)narle 1@333@333 co(o valor
no tendra sentido 8el valor (/Gi(o representado por una varia,le de ese tipo es 32@+#+9. &l tipo de dato de 1#F,it deter(ina u! datos
pueden ser al(acenados. &l tipo de dato ta(,i!n deter(ina u! valores de ue tipo pueden ser co(parados. &s 3 M 5" C@ desde
lue)o ue s. C(o se sa,e" Pues porue eGiste una serie de re)las para co(parar enteros con otros enteros. La sintaGis de
atri,utos LD$P reali*an funciones si(ilares co(o los tipos de dato en el e-e(plo (encionado.
$ diferencia de las varia,les sin e(,ar)o@ los atri,utos LD$P pueden tener (%ltiples valores. La (a0ora de len)ua-es de
pro)ra(acin o,li)an a usar una se(/ntica de Nal(acenar 0 ree(pla*arO en las varia,les@ as cuando se asi)na un valor a una varia,le
el valor anti)uo es ree(pla*ado. Co(o se ver/ (/s adelante esto no es cierto en LD$P@ dado ue se puede asi)nar un nuevo valor a
un atri,uto co(o adicional de los valores 0a eGistentes. $ continuacin se (uestra unas lneas LDI2 de e-e(plo para la entrada
ou=devices,dc=plainjoe,dc=org ue de(uestra c(o un atri,uto puede tener (%ltiples valoresA
dn: ou=devices,dc=plainjoe,dc=org
objectclass: organizationalUnit
ou: devices
telephoneumber: !" #$% $$$&$''%
telephoneumber: !" #$% $$$&$''(
description: Container )or all net*or+ enabled
devices e,isting *ithin the plainjoe.org domain
&n el e-e(plo se aprecia dos valores para el atri,uto telephoneumber. &n la vida real es co(%n este caso para una entidad ue es
accesi,le por (/s de un n%(ero telefnico.
Cin e(,ar)o 6a0 ue ser cuidadosos con el 6ec6o ue al)unos atri,utos per(iten slo un %nico valor a la ve*. &sto depender/
directa(ente de la definicin del atri,uto en el esue(a del servidor.
2.15.2. "'u$ si+nifica el valor del atri.uto o./ectClass%
4odas las entradas en un directorio LD$P de,en tener un atri,uto objectClass@ 0 este atri,uto de,e tener al (enos un valor
8aunue es posi,le 0 necesario a veces ue ten)a (%ltiples valores9. Cada valor de objectClass act%a co(o una plantilla para los
datos ue ser/n al(acenados en la entrada. Per(ite definir una serie de atri,utos ue de,en o,li)atoria(ente estar presentes en la
entrada as co(o ta(,i!n una serie de atri,utos opcionales ue pueden o no estar presentes.
De)resando al e-e(plo anterior la entrada ou=devices,dc=plainjoe,dc=org se tieneA
dn: ou=devices,dc=plainjoe,dc=org
objectclass: organizationalUnit
ou: devices
telephoneumber: !" #$% $$$&$''%
telephoneumber: !" #$% $$$&$''(
description: Container )or all net*or+ enabled
devices e,isting *ithin the plainjoe.org domain
&n este caso el valor del atri,uto objectClass es organizationalUnit. La definicin de esue(a de la i(a)en ue se (uestra
de,a-o per(itir/ co(prender (e-or estoA
$s es co(o de,e entenderse la definicin de objectClassA
i. Bn objectClass posee un 5ID@ tal co(o los tipos de atri,utos@ sintaGis de codificacin 0 re)las de co(paracin. La pala,ra
-U.T denota una serie de atri,utos ue de,en estar presentes en cualuier instancia de este o,-eto. &n este caso el Nestar
presenteO si)nifica ue el atri,uto de,e tener al (enos un valor.
ii. La pala,ra -/0 define una serie de atri,utos cu0a presencia es opcional dentro de una instancia del o,-eto.
iii. La pala,ra .UP especifica ue el o,-eto padre del cual este o,-eto se 6a derivado. Bn o,-eto derivado posee todos los
reueri(ientos de tipo de atri,uto de su padre. Los atri,utos pueden ser derivados de otros atri,utos ta(,i!n@ ta(,i!n
6eredar/n la sintaGis 0 re)las de co(paracin de su padre@ aunue el %lti(o puede ser so,reescrito por el nuevo atri,uto.
Los o,-etos LD$P no soportan 6erencia (%ltiple@ ellos tienen si(ple(ente un %nico padre as co(o sucede con los o,-etos
de Java.
2.15.3. 6ipos de o./ectClass
4res tipos de definicin de objectClass pueden ser usados en los servicios de directorio LD$PA
Clases de objeto estructurales
Depresentan un o,-eto del (undo real@ tal co(o una persona 8person9@ o unidad or)ani*acional 8organizationalUnit9. Cada
entrada en un directorio LD$P de,e tener eGacta(ente un o,-eto estructural co(o valor del atri,uto objectClass. De acuerdo
con el (odelo de datos LD$P@ una ve* ue un o,-eto estructural de una entrada 6a sido in)resado@ no puede ser ca(,iado sin
eli(inar 0 volver a crear la entrada co(pleta.
Clases de objecto auxiliares
$)re)an ciertas caractersticas a una clase estructural. &stas clases no pueden ser usadas por s (is(as@ sino co(o un
co(ple(ento a un o,-eto estructural 0a eGistente.
Clases de objeto abstractas
$ct%an i)ual ue sus si(ilares en la pro)ra(acin orientada a o,-etos. &stas clases no pueden ser usadas directa(ente@ sino slo
co(o antecesores de clases derivadas. La clase a,stracta (/s co(%n ue se usar/ en LD$P ser/ el o,-eto top@ el cual es el
padre o antecesor de todas las clases de o,-eto LD$P.
2.15.. "'u$ es el atri.uto dc%
Detornando a nuestro e-e(plo anterior de la entrada de (/s alto nivel 8dc=plainjoe,dc=org9 a6ora 0a pode(os eGplicar el
si)nificado del atri,uto dc. $u se (uestra la entrada correspondiente antes vistaA
dn: dc=plainjoe,dc=org
objectclass: domain
dc: plainjoe
Co(o antes 0a estudia(os@ eGiste el no(,ra(iento ,asado en la u,icacin )eo)r/fica 0 el no(,ra(iento ,asado en no(,res DHC@
siendo este %lti(o el reco(endado.
Para soportar una asociacin entre los no(,res DHC 0 un espacio de no(,res de un directorio LD$P@ el D2C 224+ define dos o,-etos
para al(acenar co(ponentes (ostrados en la fi)uraA
dc1bject es una clase auGiliar ue sirve para co(ple(entar una entrada ue contiene infor(acin or)ani*acional 8&-(A
organizationalUnit9. La clase dc1bject act%a co(o un contenedor independiente para la infor(acin or)ani*acional 0 el
co(ponente de no(,re de do(inio 8&-(A el atri,uto dc9. La clase de o,-eto organizationalUnit 0 los o,-etos de do(inio poseen
atri,utos co(unes.
;enerar un DH 8Ho(,re distin)uido9 LD$P para representar un no(,re de do(inio DHC es un proceso si(ple. Bn DH vaco se usa
co(o punto de partida. Bn DDH dc=domain es a)re)ado co(o co(ponente al DHC de cada porcin del do(inio. Por e-e(plo@ el
no(,re de do(inio plain-oe.or) se asocia con el conteGto de no(,ra(iento dc=plainjoe,dc=org
P donde est/ dc=org" Co(o vea(os dc=plainjoe,dc=org es el conteGto de no(,ra(iento del directorio. Ci la entrada ra* de
nuestro directorio fuese dc=org con una entrada 6i-o co(o dc=plainjoe,dc=org entonces el conteGto de no(,ra(iento sera
dc=org. &sto tendra co(o consecuencia ue nuestro servidor e(piece a responder de (anera innecesaria a consultas cu0o DH
ter(ine en dc=org@ a%n si el servidor sola(ente conten)a infor(acin de,a-o de dc=plainjoe,dc=org
&s as ue ue el dise=o de un espacio de no(,res es si(ilar a una -erarua DHC. Los servidores DHC para el do(inio plain-oe.or)
no necesitan atender consultas del do(inio .or)@ dado ue auellas consultas de,en ser redireccionadas a un servidor ue en realidad
s conten)a dic6a infor(acin.
2.15.!. Atri.utos co*unes
&stos son una serie de los atri,utos (/s co(unes ue usare(osA
Nombre Valor nico Descripcin
cn Nombre comn de una entidad
sn Apellido con el cual se conoce a una entidad
dc $omponente nico de un nombre de dominio
gidNumber S %" de grupo en &N%'
uidNumber S %" de usuario en &N%'
uid Nombre de usuario para una cuenta
mail "ireccin e(mail que representa a un buzn
ou &nidad organizativa )organizational&nit* a la cual pertenece esta entrada
telep+oneNumber Nmero telefnico
userass,ord $ontrase-a asociada con una entrada
2.15.&. Clases de o./eto co*unes
&stas son una serie de clases de o,-eto (/s co(unes ue usare(osA
account
/ipoA &structural
PadreA top
Atributos obligatoriosA uid
Atributos opcionalesA description, see/lso, localit2ame, organizationame, organizationalUnitame, host
dcObject
/ipoA $uGiliar
PadreA top
Atributos obligatoriosA dc
Atributos opcionalesA 8nin)uno9
inetOrgPerson
/ipoA &structural
PadreA organizationalPerson
Atributos obligatoriosA 8nin)uno9
Atributos opcionalesA audio, businessCategor2, car3icense, departmentumber, displa2ame,
emplo2eeumber, emplo2eeT2pe, givename, homePhone, homePostal/ddress, initials, jpegPhoto,
labeledU45, mail, manager, mobile, o, pager, photo, roomumber, secretar2, uid, userCerti)icate,
,$66uni7ue5denti)ier, pre)erred3anguage, user.-5-8Certi)icate, userP9C."#
organizationalPerson
/ipoA &structural
PadreA person
Atributos obligatoriosA 8nin)uno9
Atributos opcionales' title, x121Address, registeredAddress, destinationIndicator,
preferredDeliveryMethod, telexNumber, teletexTerminalIdentifier, telephoneNumber,
internationaliDNNumber, facsimileTelephoneNumber, street, post!ffice"ox, postal#ode,
postalAddress, physicalDelivery!fficeName, ou, st, l
organizationalUnit
/ipoA &structural
PadreA top
Atributos obligatoriosA ou
Atributos opcionalesA userPass*ord, search:uide, see/lso, businessCategor2, ,"#"/ddress,
registered/ddress, destination5ndicator, pre)erred;eliver2-ethod, tele,umber,
telete,Terminal5denti)ier, telephoneumber, internationali.;umber, )acsimileTelephoneumber,
street, post1))iceBo,, postalCode, postal/ddress, ph2sical;eliver21))iceame, st, l, description
person
/ipoA &structural
PadreA top
Atributos obligatoriosA cn, sn
Atributos opcionalesA userPass*ord, telephoneumber, see/lso, description
posixAccount
/ipoA $uGiliar
PadreA top
Atributos obligatoriosA cn, uid, uidumber, gidumber, home;irector2
Atributos opcionalesA userPass*ord, login.hell, gecos, description
posixroup
/ipoA &structural
PadreA top
Atributos obligatoriosA cn, gidumber
Atributos opcionalesA userPass*ord, memberUid, description
s!ado"Account
/ipoA $uGiliar
PadreA top
Atributos obligatoriosA uid
Atributos opcionalesA userPass*ord, shado*3astChange, shado*-in, shado*-a,, shado*<arning,
shado*5nactive, shado*8,pire, shado*=lag, description
2.15.-. )s#ue*as co*unes
&stas son una serie de esue(as (/s co(unes ue usare(osA
Software Archivos de esquema incluidos
.penL"A )+ttp!//,,,0openldap0org*
core0sc+ema
corba0sc+ema
cosine0sc+ema
inetorgperson0sc+ema
java0sc+ema
misc0sc+ema
nis0sc+ema
openldap0sc+ema
1ind 2 )+ttp!//,,,0venaas0no/ldap/bind(sdb* dnszone0sc+ema
Samba )+ttp!//,,,0samba0org* samba0sc+ema
Sendmail )+ttp!//,,,0sendmail0org* sendmail0sc+ema
3ree4adius )+ttp!//,,,0freeradius0org* 4A"%&S(L"Av50sc+ema
L"A System Administration
idpool0sc+ema
printer0sc+ema
$ourier )+ttp!//,,,0courier(mta0org/aut+lib/* aut+ldap0sc+ema
2.11. Autenticacin en LDAP
Por u! se necesita autenticacin en un directorio LD$P" Decuerde ue LD$P es un protocolo ,asado en (ensa-es orientado a la
coneGin. &l proceso de autenticacin es usado para esta,lecer los privile)ios de usuario para cada sesin. 4odas las ,%suedas@
consultas@ etc@ son controladas se)%n el nivel de autori*acin del usuario autenticado.
La si)uiente fi)ura descri,e la clase de o,-eto person 0 nos ,rindar/ una idea de u! atri,utos est/n disponi,les para la entrada
cn=gerald carter en entrada de e-e(plo (/s a,a-o. &n )eneral necesitare(os definir un atri,uto userPass*ord para futuras
tareas de autenticacin LD$P.
La representacin LDI2 para dic6a entrada esA
dn: cn=gerald carter,ou=people,dc=plainjoe,dc=org
objectClass: person
cn: gerald carter
sn: carter
telephoneumber: $$$&"#>'
userPass*ord: ?-;$@Ar'il1zB'PC17>aB67buaB= =
:e(os a)re)ado un atri,uto userPass*ord. &ste atri,uto al(acena una reprentacin de las credenciales necesarias para autenticar
a un usuario. &l prefi-o 8en este caso ?-;$@9 descri,e c(o la credencial es codificada. &l valor en este caso es si(ple(ente la
codificacin ?ase #4 del 6as6 >D5 so,re la pala,ra secret 8sin co(illas9.
&Gisten una serie de al)orit(os de encriptacin 0 al)unos de los (/s co(unes usados en LD$P sonA
#C$%P&'
&l 6as6 de la clave de,e ser )enerado usando la funcin local del siste(a cr2ptC D@ el cual es nor(al(ente incluido en las
li,reras del len)ua-e C.
#()*'
&l 6as6 de la clave es una codificacin ?ase#4 del di)est >D5 so,re la contrase=a del usuario.
#S+A' ,Secure +as! Algorit!-.
&l 6as6 de la clave es una codificacin ?ase#4 del 6as6 C:$F1 de 1#3F,it >D5 so,re la contrase=a del usuario.
#SS+A' ,Salted Secure +as! Algorit!-.
&sta es una versin (odificada del anterior ue 6ace uso de salts. &ste es el esue(a reco(endado para al(acenar infor(acin
de contrase=as de (anera se)ura en un directorio LD$P.
Durante el proceso de autenticacin en cualuier servicio 824P@ CC:@ C>4P@ P5P@ I>$P@ etc9 es co(%n ue el cliente ,rinde un
no(,re de usuario 0 la respectiva contrase=a. &n LD$P la autenticacin se lleva a ca,o a trav!s de un DH ,rindada por el cliente ue
ser/ interpretado co(o no(,re de usuario 8&-(A cn=gerald carter,ou=people,dc=plainjoe,dc=org9@ 0 la contrase=a
respectiva ser/ leda del atri,uto userPass*ord de dic6a entrada.
2.12. 4iltros LDAP
Los filtros LD$P son una serie de patrones ue tienen por o,-etivo li(itar 0 especificar el alcance de las ,%sueda dentro un directorio
LD$P. &n su for(a co(%n(ente usada un filtro LD$P tiene la si)uiente sintaGisA
C atributo )iltroE1perador valor D
&l atributo es el no(,re actual del tipo de atri,uto. &l )iltroE1perador es uno de los si)uientesA
= : Para coincidencias e,actas
~= : Para coincidencias apro,imadas
<= : Comparaciones menor 7ue
>= : Comparaciones ma2or 7ue
Ci sola(ente trata(os con co(paraciones de cadenas entonces puede ser ue slo se necesite el operador =.
&l valor puede ser a,soluto co(o 32#F3.+2 8para un telephoneumber por e-e(plo9 o un patrn usando el caracter * co(o
co(odn. Por e-e(plo Ccn=FcarterD ,uscara todas las entradas cu0o atri,uto cn ter(ina en carter.
Puede co(,inarse filtros si(ples usando operadores l)icos co(o estosA
& : /; lGgico
| : 14 lGgico
! : 1T lGgico
Los filtros LD$P usan una notacin prefi-a para unir condiciones. Por lo tanto para ,uscar usuarios con un apellido 8sn9 co(o s#ith o
"ones podra construirse el si)uiente filtroA
CHCsn=smithDCsn=jonesDD
Para ,uscar personas con un apellido co(o s#ith o "ones 0 un no(,re ue e(piece con 0ohn@ la ,%sueda sera co(o si)ueA
CICHCsn=smithDCsn=jonesDDCcn=johnFDD
Captulo 3. Instalacin de OpenLDAP
3.1. Instalacin desde las fuentes
5penLD$P es un pro0ecto 5pen Cource 0 puede ser li,re(ente descar)ado desde su sitio oficialA
7ttp8//999.openldap.or+
Para eso procede(os a o,tener el tar,all de la versin (/s reciente ue corresponda a la fec6a de lectura de este docu(entoA
J *get &P K )tp:LL)tp.openldap.orgLpubL1pen3;/PLopenldap&releaseLopenldap&,.2.z.tgz
Lue)o de,e(os iniciar el proceso de verificacin de dependencias@ co(pilacin e instalacin co(o si)ue en estos pasos de,a-o
(ostradosA
J tar z,)v openldap&,.2.z.tar.gz &C Ltmp
J cd LtmpLopenldap&,.2.z
J .Lcon)igure M&help H less
J .Lcon)igure
J ma+e depend
J ma+e
J ma+e test
J ma+e install
O.servaciones8
Para poder reali*ar un proceso de co(pilacin satisfactorio de,e considerarse el tener instalado las li,reras de desarrollo de
/er0ele1)/2
Co(o con la (a0ora de softQare distri,uido en tar,alls es posi,le ca(,iar al)unas de las caractersticas de 5penLD$P
pasando par/(etros al script .Lcon)igure pudiendo consultar su docu(entacin e-ecutandoA N.Lcon)igure &&help H
lessN
3.2. Instalacin desde .inarios
La instalacin desde pauetes ,inarios preco(pilados de 5penLD$P depende (uc6o de la distri,ucin de LinuG a usar@ pero
)eneral(ente el proceso es directo una ve* o,tenido el arc6ivo instalador correspondiente.
&n distri,uciones ,asadas en DP> el proceso de instalacin consiste en o,tener el pauete ,inario $rpm 0 proceder a instalarloA
J rpm &ivh openldap&,.2.z.rpm
&s pro,a,le ue las versiones (odernas 0a cuenten con un ad(inistrador de pauetes (/s avan*ado co(o 2um@ urpmi@ apt u otros.
&stos e-e(plos podran instalar 5penLD$P de (anera (/s sencilla descar)/ndolo auto(/tica(ente desde al)uno de los repositorios
ue est!n confi)urados en el siste(a operativoA
J 2um install openldap openldap&servers openldap&clients
J urpmi openldap#
J apt&get install openldap#
2inal(ente en De,ian 0 derivados el ad(inistrador de pauetes por eGcelencia es apt 0 la for(a de instalacin es directa i)ual al
e-e(plo anteriorA
J apt&get install slapd ldap&utils
Captulo . Confi+uracin de OpenLDAP
.1. 4uncin de los co*ponentes
&l pauete 5penLD$P inclu0e 6erra(ientas clientes@ servidores 0 li,reras. La si)uiente ta,la (uestra una descripcin ,reve de la
funcin ue cu(ple cada uno de los co(ponentes dentro del pauete LD$PA
Nombre Descripcin
libe6ec/slapd 7l servidor L"A
libe6ec/slurpd 7l servidor de replicacin L"A
bin/ldapadd
bin/ldapmodify
bin/ldapdelete
bin/ldapmodrdn
8erramientas de lnea de comandos para agregar9 modificar y eliminar entradas en un servidor L"A0 7stos comandos
soportan L"Av: y L"Av50
bin/ldapsearc+
bin/ldapcompare
8erramientas de lnea de comandos para buscar dentro de un servidor L"A o realizar alguna operacin de
comparacin en un atributo especfico contenido en una entrada0
bin/ldappass,d
&na +erramienta para cambiar el atributo pass%ord en las entradas L"A0 7s equivalente al comando passwd del
sistema0
sbin/ldapadd 8erramientas para manipular la data almacenada del bac;end local usada por el demonio slapd0
sbin/ldapcat
sbin/ldapinde6
sbin/slappass,d &na +erramienta sencilla que sirve para generar +as+es para las contrase-as de uso posterior en slapd$conf
.2. )l arc7ivo de confi+uracin slapd.conf
&l arc6ivo slapd.con) es el arc6ivo en el ue se centrali*a la confi)uracin del principal de(onio de 5penLD$P 8slapd9@ el de(onio
de replicacin 8slurpd9 0 6erra(ientas relacionadas co(o slapcat 0 slapadd.
Co(o re)la )eneral las 6erra(ientas clientes de 5penLD$P tales co(o ldapsearc! 0 ldap-odi31 usan el arc6ivo de confi)uracin
ldap.con) para sus confi)uraciones por defecto.
O.servaciones8
Las lneas en ,lanco 0 auellas ue e(piecen con el caracter # son i)noradas.
Los par/(etros 0 sus valores asociados son separados por espacios en ,lanco 8espacios 0/o ta,ulaciones9.
Bna lnea ue conten)a un espacio en ,lanco en la pri(era colu(na se considerar/ una continuacin de la anterior. Ho se
reuiere usar el caracter \ para continuar lneas (/s a,a-o.
&l arc6ivo de confi)uracin slapd.con) suele separar su contenido en dos partes. La pri(era de ellas contiene todas las directivas
asociadas al funciona(iento )eneral del servidor 8por e-e(plo el nivel de re)istro enviado a los logs9. La se)unda parte contiene las
directivas asociadas a la definicin de los ,ac7ends usados por el de(onio slapd.
&ste es un e-e(plo de c(o se (uestra el arc6ivo de confi)uracin slapd.con)A
J LetcLopenldapLslapd.con)

J .eccion global

JJ Parametros globales removidos por brevedad, por ahora...

JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ
J Base de datos J" & Ber+ele2 ;B
database bdb

JJ Parametros de la base de datos 2 directivas irian a7ui

JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ
J Base de datos J# & Ber+ele2 ;B
database bdb

JJ Parametros de la base de datos 2 directivas irian a7ui

JJ 0 asi sucesivamente...
.3. Directivas de funciona*iento +eneral
$ continuacin se ir/ (ostrando una serie de directivas de confi)uracin del arc6ivo slapd.con) clasificadas se)%n la funcin ue
cu(plen.
include
&sta directiva es la ue per(ite incluir otros arc6ivos dentro de slapd.con)@ usual(ente usado para especificar u! arc6ivos de
esue(a de,en ser soportados por el servidor. Por defecto los arc6ivos de esue(a suelen ser u,icados en el directorio
LetcLopenldap lue)o de la instalacin.
:inta;is8 include rutaEarchivo
&l pri(er paso en confi)urar el servidor LD$P es decidir u! arc6ivos de esue(a el directorio de,e soportar. Ho es una tarea f/cil
responder a esta pre)unta en unas pocas lneas.
5penLD$P inclu0e al)unos arc6ivos de esue(a populares para ser usados con discrecin por el ad(inistrador. Las necesidades
de las aplicaciones ue usar/n el directorio deter(inar/n u! esue(a usar. 4odas las definiciones de tipos de atri,utos 0 clases
de o,-eto reueridos por un servidor LD$P ,/sico son incluidas en el arc6ivo core.schema. $l)unos de los tipos de atri,utos sonA
$tri,utos para al(acenar la fec6a 0 6ora dela %lti(a (odificacin en una entrada
$tri,utos para representar no(,re@ u,icacin@ etc.
5,-etos para representar una or)ani*acin o persona
5,-etos para representar no(,res de do(inio DHC
&ntre otros...
&Gisten arc6ivos de esue(a incluidos con la instalacin 5penLD$P co(o los si)uientesA
corba2sc!e-a
Bn esue(a para al(acenar o,-etos Cor,a en un directorio LD$P@ co(o es descrito en el D2C 2+14.
core2sc!e-a
&l esue(a (/s i(portante reuerido por 5penLD$P. &ste esue(a define atri,utos ,/sicos de LD$Pv3 0 o,-etos descritos en los D2Cs
2251F225#.
cosine2sc!e-a
Bn esue(a para soportar directorios piloto C5CIH& 0 R.533. ?asado en el D2C 12+4.
inetorgperson2sc!e-a
&l esue(a ue define la clase de o,-eto inet1rgPerson 0 sus atri,utos asociados definidos en el D2C 2+1.. &ste o,-eto es
frecuente(ente usado para al(acenar infor(acin de contacto de personas.
java2sc!e-a
Bn esue(a definido en el D2C 2+13 para al(acenar distintos tipos de o,-eto de Java.
-isc2sc!e-a
Bn esue(a ue define un )rupo peue=o de o,-etos 0 atri,utos (iscel/neos. $ctual(ente@ este arc6ivo contiene el esue(a necesario
para i(ple(entar un siste(a de correo ,asado en LD$P 0 Cend(ail ..13S
nis2sc!e-a
Bn esue(a ue define atri,utos 0 o,-etos necesarios para usar LD$P con 1etwor2 ,n3or#ation Service 8HIC9 tal co(o es descrito en el
D2C 233+
openldap2sc!e-a
5,-etos (iscel/neos usados por el pro0ecto 5penLD$P. Provisto por propsitos infor(ativos sola(ente.
&-e(ploA
include LetcLopenldapLschemaLcore.schema
include LetcLopenldapLschemaLcosine.schema
include LetcLopenldapLschemaLinetorgperson.schema
Las aplicaciones clientes ue desea(os soportar pueden reuerir arc6ivos de esue(a adicionales a core.schema. &s necesario
ase)urarse de las dependencias entre arc6ivos de esue(a. Las dependencias son nor(al(ente descritas al inicio del arc6ivo.
Por e-e(plo@ (uc6as aplicaciones reuieren ue se inclu0a la clase de o,-eto inet1rgPerson@ el cual es frecuente(ente usado
para al(acenar infor(acin de contacto. &n el inicio del arc6ivo inetorgperson.schema puede encontrarse una lnea donde se
indica ue ta(,i!n de,e incluirse el arc6ivo cosine.schema.
lo+level
&sta directiva define el nivel de re)istro a al(acenarse durante el funciona(iento de 5penLD$P. 4o(a co(o valor un n%(ero de
la ta,la (ostrada de,a-o@ 0 pueden su(arse varios de auellos n%(eros para o,tener un re)istro euivalente a todas sus
cate)oras correspondientes -untas. Los re)istros por defecto son enviados a s0slo) usando la facilidad 31:E31C/3'.
:inta;is8 loglevel nOmero
La lista de n%(eros v/lidos para esta directiva sonA
Nmero Informacin reistrada
(< =oda la informacin completa posible
> Nada de informacin en absoluto
< Anlisis de las llamadas a funciones
: %nformacin de depuracin sobre el manejo de paquetes
? "epuracin bastante cargada
@ Administracin de cone6iones
<A aquetes enviados y recibidos
5: rocesamiento de filtros de bsqueda
A? rocesamiento del arc+ivo de configuracin
<:@ rocesamiento de las A$Ls
:BA 7stadsticas de cone6in9 operaciones y resultados
B<: 7stadsticas para resultados retornados a los clientes
<>:? $omunicacin con bac;ends de s+ell
:>?@ %mprime informacin de depuracin sobre el procesamiento de entradas
&n el si)uiente e-e(plo se re)istrar/ infor(acin so,re el procesa(iento de $CLs@ los filtros de ,%sueda 0 la ad(inistracin de
coneGiones 812. S 32 S .9A
loglevel "%P
pidfile
&sta directiva define la ruta del arc6ivo ue contendr/ el PID del de(onio slapd.
:inta;is8 include rutaEarchivo
&-e(ploA
pid)ile LvarLrunLslapd.pid
ar+sfile
&sta directiva define la ruta del arc6ivo ue contendr/ los par/(etros de lnea de co(andos usados co(%n(ente por el de(onio
slapd2
:inta;is8 args)ile rutaEarchivo
&-e(ploA
include LetcLopenldapLschemaLcore.schema
include LetcLopenldapLschemaLcosine.schema
include LetcLopenldapLschemaLinetorgperson.schema
re#uire
&sta directiva define ciertas eGi)encias por parte del cliente al (o(ento de conectarse al servidor LD$P.
:inta;is8 re7uire opciones
&n el si)uiente e-e(plo se o,li)a a ue los clientes se autentiuen 8aut6c9 antes de 6acer cualuier operacin@ 0 lo 6a)an con la
versin 3 del protocolo LD$P 8LD$Pv39A
re7uire authc 3;/Pv>
.. Directivas de .ac<ends
Lue)o de la seccin )lo,al del arc6ivo slapd.con) vendr/n una o (/s secciones de las ,ases de datos@ cada una de ellas
constituida de varias directivas las cuales se pasan a estudiar a continuacin.
data.ase
Bna seccin de ,ase de datos e(pie*a con la directiva database 0 contin%a 6asta la prGi(a ocurrencia de dic6a directiva o
6asta el final del arc6ivo. &sta directiva reci,e co(o par/(etro el ,ac7end ue puede ser bdb o ldbm
:inta;is8 database bac+end
&-e(ploA
database bdb
suffi;
&sta directiva per(ite definir el sufi-o ra* del directorio ue se servir/.
:inta;is8 su))i, ;
&-e(ploA
su))i, Qdc=ne*domains,dc=comR
rootdn
&sta directiva define un DH ue representar/ el acceso de un usuario con todos los privile)ios so,re el directorio servido@ si(ilar a
lo ue sera root en un siste(a BHIR. &ste DH est/ autori*ado a 6acer todo@ dado ue las $CLs no le afectar/n en a,soluto.
:inta;is8 rootdn ;
&-e(ploA
rootdn Qcn=-anager,dc=ne*domains,dc=comR
rootp9
&sta directiva define la contrase=a correspondiente para el DH definido en rootdn. &l valor para esta contrase=a de,e ser
)enerada por la 6erra(ienta slappass"d2
:inta;is8 rootp* contraseSa
&n el pri(er e-e(plo se usa una contrase=a en teGto plano 0 en el se)undo el 6as6 correspondiente a la (is(a clave pero
)enerada por el al)orit(o CC:$A
rootp* clave"#>
rootp* ?..T/@>)sj!(UTa!:68hn(PU-V>50ccmPajerT
last*od
&sta directiva indica a 5penLD$P ue de,e (antener actuali*ados los atri,utos operacionales tales co(o modi)iersame@
modi)2Timestamp@ creatorsame 0 createTimestamp para todas las entradas de core.schema. &l co(porta(iento nor(al
es (antener actuali*adas todas estos atri,utos dado ue en el caso de des6a,ilitarlo no se podr/ 6acer uso de la cac6! por cliente
de,ido a ue no se puede sa,er cu/ndo fue (odificada por %lti(a ve* una entrada.
:inta;is8 lastmod onHo))
&-e(ploA
lastmod on
readonl2
&sta directiva instru0e a 5penLD$P para ue la ,ase de datos uede prote)ida de cualuier operacin de (odificacin incluso por
el (is(o rootdn.
:inta;is8 readonl2 onHo))
&-e(ploA
readonl2 o))
director2
&sta directiva define la ruta del directorio de la ,ase de datos. Los arc6ivos dentro de este directorio de,eran ser de propiedad del
usuario ,a-o el cual es e-ecutado slapd2
:inta;is8 director2 rutaEdirectorio
&-e(ploA
director2 LvarLlibLldap
*ode
&sta directiva define los per(isos BHIR ue de,en tener los arc6ivos de la ,ase de datos.
:inta;is8 mode permisos
&-e(ploA
mode 6%66
inde;
&sta directiva define los atri,utos en los ue 5penLD$P de,e (antener ndices@ los (is(os ue son usados para opti(i*ar las
,%suedas.
:inta;is8 inde, atributoW,atributoXW,atributoX tipoW,tipoXW,tipoX...
Los tipos de ndices ue pueden (antenerse son los si)uientesA
approx ,approxi-ate.
IndeGa la infor(acin por una coincidencia aproGi(ada o fon!tica del valor de un atri,uto
e4 ,e4ualit1.
IndeGa la infor(acin necesaria para e-ecutar una coincidencia eGacta del valor de un atri,uto
pres ,presence.
IndeGa la infor(acin necesaria para deter(inar si un atri,uto tiene un valor o no. Ci un atri,uto no posee un valor entonces el atri,uto no est/
presente en la entrada del directorio
sub ,substring.
IndeGa la infor(acin necesaria para e-ecutar una coincidencia si(ple de su,cadena del valor de los atri,utos
&-e(ploA
inde, objectClass e7
inde, cn,sn pres,e7
cac7esi,e
&sta directiva define el n%(ero de entradas ue de,eran ser al(acenadas en (e(oria cac6!. Por defecto se al(acena 1@333
entradas en cac6!@ pero si el n%(ero de entradas es (enor a esta cantidad no es necesario (odificar el valor de esta directiva.
:inta;is8 cachesize nOmero
&n el si)uiente e-e(plo se tiene un directorio de aproGi(ada(ente 1@333@333 entradas para el cual vendra ,ien un valor de
133@333A
cachesize "66666
.!. Listas de control de acceso =ACL>
Las $CLs provistas por 5penLD$P son si(ples en su sintaGis pero ,astante fleGi,les 0 poderosas en su i(ple(entacin. La idea
,/sica es definir 'ui!n tiene $cceso a 'u!" La for(a (/s co(%n de 4ui5n inclu0eA
5
Coincide con cualuier usuario conectado incluso ,a-o coneGiones anni(as
sel3
Depresenta el DH del usuario actual(ente conectado@ asu(iendo ue 6a sido autenticado eGitosa(ente por un proceso de autenticacin previo
anon1-ous
ConeGiones anni(as no autenticadas
users
ConeGiones de usuarios autenticados
6xpresi7n regular
Coincide con un DH ,a-o una eGpresin re)ular
La si)uiente ta,la resu(e los varios privile)ios de acceso ue puede o,tener un usuario. Los privile)ios (/s altos i(plican tener todas
las capacidades de los privile)ios anteriores. Por e-e(plo tener el acceso search i(plicar/ ue tiene acceso auth 0 compare
Nivel de acceso !ermiso concedido
,rite Acceso a modificar atributos )7jm! $ambiar un telephoneumber a 5:A(5@C:*
read Acceso a leer los resultados de bsquedas )7jm! Dostrar todas las entradas con un telephoneumber como 5:AE*
searc+ Acceso a aplicar filtros de bsqueda )7jm! F76iste alguna entrada con un telephoneumber como 5:AE*
compare Acceso a comparar atributos )7jm! F7s tu telephoneumber igual a 5:A(5@C:G*
aut+ Acceso a autenticarse0 4equiere que el cliente enve un usuario en forma de "N y sus credenciales para probar su identidad
none Sin ningn tipo de acceso
2inal(ente la definicin de 6A .u57 se tiene acceso define la entrada 0 sus atri,utos a los cuales la $CL de,era aplicarse. &st/
co(puesta de 3 partes de las cuales todas son opcionalesA
19 Bn DH eGpresado ,a-o la sintaGis si)uienteA
dn.estilo=patrGn
Donde estilo puede tener los si)uientes valoresA
e;act
Cinni(o de .ase. Indica una entrada cu0a DH es eGacta(ente i)ual a la eGpresada en patrGn. Ce usa este
estilo por defecto si se o(ite
one
Cinni(o de onelevel. Indica todas las entradas u,icadas in(ediata(ente de,a-o de la entrada eGpresada en
patrGn
su.
Cinni(o de su.tree. Indica todas las entradas eGistentes en el /r,ol de la entrada eGpresada en patrGn
c7ildren
Indica todas las entradas su,ordinadas a la entrada eGpresada en patrGn
re+e;
Indica una entrada se)%n la eGpresin re)ular representada en patrGn
29 Bn filtro LD$P confor(e el D2C 2254@ eGpresado co(o filter&'I(T)!*(DA+
39 Bna lista de atri,utos separados por co(a 8,9 eGpresados co(o attrs=35.T/&/T45BUT1.. Ci no se especifica esta
parte entonces la $CL se aplica a todos los atri,utos de la entrada.
Ci nin)una de estas 3 partes es especificada entonces un si(ple asterisco 8*9 es usado en ree(pla*o para 6acer referencia a todo.
De esta (anera se define la si)uiente directiva para slapd.con)A
access
&sta directiva define una $CL so,re A .u5 de,e darse Cunto acceso 0 A .ui5n. &s i(portante tener en cuenta ue las $CLs
son -er/ruicas@ esto si)nifica ue i(porta (uc6o el orden vertical en el ue de,en ser declaradas en el arc6ivo slapd.con).
:inta;is8 access to YR/ 7uZR[ W b2 YQ/ 7uiZn[ WQCu\nto accesoRX X
&n el si)uiente e-e(plo se prote)e el atri,uto userPass*ord de (odo ue sola(ente el usuario ad(inistrador con DH
cn=admin,dc=ne*domains,dc=com ten)a per(iso de escritura@ los usuarios anni(os ten)an slo acceso a autenticarse@ los
usuarios autenticados propietarios de su entrada puedan (odificar tal atri,uto 0 al resto se le denie)a todo el acceso. $de(/s el
directorio entero se prote)e de ser ledo por uienes no se 6a0an autenticado eGitosa(enteA
access to dn.base=RR
b2 F read
access to attrs=userPass*ord
b2 dn=Rcn=admin,dc=ne*domains,dc=comR *rite
b2 anon2mous auth
b2 sel) *rite
b2 F none
access to F
b2 dn=Rcn=admin,dc=ne*domains,dc=comR *rite
b2 users read
b2 F none
Captulo !. Ad*inistracin del servicio de directorios
!.1. ?erra*ientas de *anipulacin del .ac<end
5penLD$P inclu0e 6erra(ientas para (anipular de (anera directa el contenido del servicio de directorios efectuando ciertas
operaciones so,re el ,ac7end en uso. $ continuacin se ver/n los procedi(ientos co(unes para poner en (arc6a un servicio de
directorios desde cero.
!.1.1. @eneracin del contenido
&l pri(ero paso a se)uir en la construccin de un servicio de directorios es ar(ar el esue(a ,/sico ue conten)a las entradas
esenciales para poner en (arc6a 5penLD$P 0 en ,ase a ello poder continuar el proceso de (odificacin de contenido.
Para ello de,e )enerarse un arc6ivo LDI2 donde se definan al (enos una entradas ,/sica co(o la si)uienteA
dn: dc=ne*domains,dc=com
objectClass: dc1bject
objectClass: organization
dc: ne*domains
o: e* ;omains Technologies 5nc.
Lue)o de )uardar los ca(,ios en el arc6ivo KLbase.ldi) se de,e proceder a usar la 6erra(ienta slapadd para in)resar el contenido
al directorio sie(pre 0 cuando el de(onio slapd est! detenido.
La for(a ,/sica de uso de esta 6erra(ienta es co(o si)ueA
slapadd WopcionesX
Opciones:
-b sufijo
;e)ine el su)ijo del directorio bajo el cual se agregar\n las entradas
-c
ContinOa agregando las entradas aOn si en alguna de ellas encontrase algOn error
-l
8speci)ica la ruta del archivo 3;5= del cual agregar las entradas
-v
-odo verboso
&ntonces a6ora 0a se procede a in)resar las entradasA
J slapadd &v &b Qdc=ne*domains,dc=comR &l base.ldi)
!.1.2. Aolcado de contenido
Bna ve* ue el directorio 0a se encuentra en funciona(iento es posi,le poder volcar su contenido Fori)inal(ente al(acenado en el
,ac7end respectivoF 6acia una salida de teGto con for(ato LDI2. &sto es posi,le con la 6erra(ienta slapcat cu0a for(a de uso es la
si)uienteA
slapcat WopcionesX
Opciones:
-b sufijo
;e)ine el su)ijo del directorio debajo del cual se mostrar\ su contenido
-a fil!o
.olamente muestra las entradas 7ue coincidan con el )iltro especi)icado
-s "#
Permite mostrar el contenido del directorio 7ue se encuentre sGlo debajo de la ; especi)icada
-c
ContinOa mostrando las entradas aOn si sucediese algOn error
-l
8speci)ica la ruta de un archivo al cual enviar el contenido del directorio en )ormato 3;5=
-v
-odo verboso
&n el si)uiente e-e(plo de 6ace un volcado del directorio cu0o sufi-o es dc=ne*domains,dc=com 6acia el arc6ivo dump.ldi)A
J slapcat &b Qdc=ne*domains,dc=comR &l dump.ldi)
!.1.3. @eneracin de contraseBas
&n el transcurso del funciona(ieno del directorio el ad(inistrador en (/s de una ocasin se encontrar/ en la necesidad de )enerar
contrase=as para diversas entradas de usuarios a fin ue puedan autenticarse en el futuro vali!ndose de la 6erra(ienta slappass"d.
5,serve la for(a de uso de esta 6erra(ientaA
slappass*d WopcionesX
Opciones:
-e clave
:enera un hash a partir de la clave brindada o se la pide al usuario si se omite par\metro
-$ es%ue&a
;e)ine el es7uema del hash generado. ]alores: ?.T/@, ?-;$@, ?C40PT@, ?..T/@, ?.-;$@ 2 ?C38/4T8AT@
-' a!c$ivo
:enera un hash a partir del contenido del archivo especi)icado
-v
-odo verboso
&n el si)uiente e-e(plo se )enera un 6as6 >D5 para la contrase=a ue ser/ especificada desde la entrada est/ndar por el
ad(inistradorA
J slappass*d &h ?md$@
e* pass*ord:
4e&enter ne* pass*ord:
?-;$@T4hj5c:nPPUsp)o+U72B/==
!.2. ?erra*ientas de ad*inistracin LDAP
&stas 6erra(ientas de ad(inistracin per(iten co(unicarse con un servicio de directorios 6aciendo uso del protocolo LD$P a fin de
poder e-ecutar tareas de consultas@ ,%suedas@ autenticacin@ (odificacin@ entre otras tareas.
$ diferencia de las 6erra(ientas antes vistas Fslapadd8 slapcatF ue son especficas para (anipular el ,ac7end de 5penLD$P@ las
ue estudiare(os en esta seccin per(iten co(unicarse con cualuier i(ple(entacin de un servicio de directorios LD$P incluso
cualuiera distinto de 5penLD$P.
&s i(portante considerar ue estas 6erra(ientas reuieren necesaria(ente ue el servicio de directorios LD$P se encuentre en
e-ecucin a diferencia de slapadd por e-e(plo ue eGi)e tener el de(onio slapd apa)ado.
!.2.1. Codificar contenido del directorio
Bna operacin de (odificacin so,re un directorio puede puede 6acerse a trav!s de la 6erra(ienta ldap-odi31 cu0os par/(etros sonA
ldapmodi)2 WopcionesX
Opciones:
-a
/grega entradas en lugar de modi)icarlas. 87uivalente a usar l(apa((
-)
Utiliza autenticaciGn simple en lugar de ./.3
-c
ContinOa trabajando aOn si sucediese algOn error
-" "#
.e autentica al servidor usando la ; especi)icada
-*
Pide en la entrada est\ndar la contraseSa para el ; de autenticaciGn especi)icado con &;
-+ clave
Usa la clave especi)icada para el ; autenticaciGn especi)icado con &;
-, a!c$ivo
Usa el contenido del archivo especi)icado como clave para el ; autenticaciGn especi)icado con &;
-f a!c$ivo
Usa el contenido del archivo especi)icado con )ormato 3;5= para hacer los cambios al directorio
-- ."/0-123
4ealiza la operaciGn en el host especi)icado en la U45 con la )orma Qprotocolo:LLhost:puertoR
-0 4|5
;e)ine la versiGn del protocolo 3;/P a usar
-v
-odo verboso
Las entradas pueden ser (odificadas a trav!s de un arc6ivo de for(ato LDI2 en el cual se indiuen las entradas a a)re)ar o (odificar
especificando u! atri,utos eli(inar@ a)re)ar o (odificar. &ste arc6ivo de,e contener la pala,ra changet2pe ue per(itir/ especificar
de u! tipo de ca(,io se trata el ue est/ por efectuarse@ si)uiendo la for(a descrita de,a-oA
a(( : /grega la entrada al directorio
(elee : 8limina la entrada al directorio
&o(if, : -odi)ica los atributos de una entrada del directorio. Con esto se puede agregar 2 eliminar atributos
usando debajo las palabras QaddR 2 QdeleteR
$s@ en el si)uiente e-e(plo se crean dos entradas ue son una unidad or)ani*ativa 0 un usuario dentro de !staA
J LrootLupdate.ldi)
dn: ou=users,dc=ne*domains,dc=com
objectClass: organizationalUnit
ou: users
dn: uid=angel,ou=users,dc=ne*domains,dc=com
objectClass: account
objectClass: posi,/ccount
uid: angel
cn: /ngel 4engi)o
uidumber: "666
gidumber: "666
home;irector2: LhomeLangel
Lue)o el contenido de dic6o arc6ivo LDI2 se a)re)ar/ al directorio autenticado con el rootdn correspondienteA
J ldapmodi)2 &, &a &; Qcn=-anager,dc=ne*domains,dc=comR &< &) KLupdate.ldi) &v
Lo anterior es euivalente a usar la 6erra(ienta ldapadd co(o si)ueA
J ldapadd &, &; Qcn=-anager,dc=ne*domains,dc=comR &< &) KLupdate.ldi) &v
$6ora se )enerar/ un arc6ivo donde se indiue las (odificaciones a 6acer so,re el directorioA
$)re)ar el atri,uto userPass*ord al DH Quid=angel,ou=users,dc=ne*domains,dc=comR
$)re)ar otra entrada de usuario al directorio
&l contenido del arc6ivo LDI2 donde se ordene las operaciones a reali*ar esA
J LrootLupdate.ldi)
dn: uid=admin,ou=users,dc=ne*domains,dc=com
changet2pe: add
objectClass: account
objectClass: posi,/ccount
uid: admin
cn: /dministrator
uidumber: "66"
gidumber: "66"
home;irector2: LhomeLadmin
userPass*ord: ?..T/@).4L(2a%$2'34)g;:dv"+1$#<pT*j>3'
dn: uid=angel,ou=users,dc=ne*domains,dc=com
changet2pe: modi)2
add: userPass*ord
userPass*ord: ?..T/@a'bbAz2L2b.<s$518ri,:Un>;n^#=UA
&l ca(,io solicitado se 6ar/ co(o si)ueA
J ldapmodi)2 &, &; Qcn=-anager,dc=ne*domains,dc=comR &< &) KLupdate.ldi) &v
$6ora pode(os eli(inar la entrada Quid=angel,ou=users,dc=ne*domains,dc=comR )enerando el LDI2 correspondienteA
J LrootLupdate.ldi)
dn: uid=angel,ou=users,dc=ne*domains,dc=com
changet2pe: delete
Lue)o lo 6ace(os efectivo con ldap-odi31A
J ldapmodi)2 &, &; Qcn=-anager,dc=ne*domains,dc=comR &< &) KLupdate.ldi) &v
Bna for(a euivalente de eli(inar una entrada sera usar la 6erra(ienta ldapdelete de (anera directa sin necesidad de )enerar un
arc6ivo LDI2 con las (odificaciones. La for(a de usarlo sera co(o si)ueA
J ldapdelete &, &; Qcn=-anager,dc=ne*domains,dc=comR &< uid=angel,ou=users,dc=ne*domains,dc=com
&n caso se desee eli(inar una entrada ue tiene otras tantas su,ordinadas se reuiere el par/(etro &r co(o el si)uiente e-e(plo
donde se eli(inar/ la entrada Qou=users,dc=ne*domains,dc=comR 0 todos los usuarios ue eGistan dentroA
J ldapdelete &, &; Qcn=-anager,dc=ne*domains,dc=comR &< &r ou=users,dc=ne*domains,dc=com
!.2.2. D(s#uedas en el directorio
Bna operacin de ,%sueda so,re un directorio puede i(plicar al)unos aspectos eGtras al slo definir el patrn a ,uscar. De,e
considerarse ue (uc6as veces ser/ necesario autenticarse antes de intentar ,uscar al)o@ as co(o ta(,i!n puede ser necesario
li(itar el /(,ito de ,%sueda@ ser (/s especfico con el uso de filtros LD$P@ li(itar el n%(ero de resultados@ etc. 4odos estos aspectos
entre otros son tratados por la 6erra(ienta ldapsearc! cu0a for(a de uso es la si)uienteA
ldapsearch WopcionesX )iltro atributos
Opciones:
-)
Utiliza autenticaciGn simple en lugar de ./.3
-" "#
.e autentica al servidor usando la ; especi)icada
-*
Pide en la entrada est\ndar la contraseSa para el ; de autenticaciGn especi)icado con &;
-+ clave
Usa la clave especi)icada para el ; autenticaciGn especi)icado con &;
-, a!c$ivo
Usa el contenido del archivo especi)icado como clave para el ; autenticaciGn especi)icado con &;
-/
-uestra solamente los atributos mas no los valores
-.
-uestra el resultado en )ormato 3;5=. Una simple &3 muestra la salida en )ormato 3;5=v", una segunda
&3 suprime los comentarios 2 una tercera &3 evita mostrar la versiGn de 3;5=
-b sufijo
;e)ine el su)ijo del directorio debajo del cual se har\ la bOs7ueda
-- ."/0-123
Tace la consulta hacia el host especi)icado en la U45 con la )orma Qprotocolo:LLhost:puertoR
-s base|one|sub|c$il(!en
;e)ine el \mbito de bOs7ueda segOn el estilo especi)icado
-0 4|5
;e)ine la versiGn del protocolo 3;/P a usar
-l ie&po
3imita cu\nto tiempo Cen segundosD podr\ esperar a 7ue termine la bOs7ueda. 6 es ilimitado
-6 n7&e!o
3imita al nOmero especi)icado la cantidad de entradas devueltas. 6 es ilimitado
-v
-odo verboso
&n el si)uiente e-e(plo ,usca(os todo lo eGistente dentro del sufi-o de directorio Qdc=ne*domains,dc=comR autentic/ndonos co(o
rootdn ,a-o el DH Qcn=-anager,dc=ne*domains,dc=comRA
J ldapsearch &,333 &b Qdc=ne*domains,dc=comR &; Qcn=-anager,dc=ne*domains,dc=comR &<
$)re)ar un filtro a la ,%sueda anterior para encontrar auellos cu0o no(,re conten)a "uan o en su apellido conten)a ruizA
J ldapsearch &,333 &b Qdc=ne*domains,dc=comR &; Qcn=-anager,dc=ne*domains,dc=comR &< QCHCcn=FjuanDCsn=FruizDDR

S-ar putea să vă placă și