Xunta de Galicia


Powered by MediaWiki

Introdución a LDAP

LDAP xurdiu para cubrir a necesidade dunha base de datos especializada na información de persoas, e as súas agrupacións dentro dunha estrutura máis ampla. Dende a axenda de contactos corporativa, ao sistema de acceso restrinxido segundo categorías. Dende os membros dun grupo de traballo, aos compoñentes todos da corporación. A centralización destes datos presenta avantaxes evidentes, de cara a manter a coherencia dos datos, ou mesmo a súa custodia segura. As siglas LDAP agochan a definición de “Protocolo de Acceso a Directorio Lixeiro”. Temos, pois, un protocolo de acceso que ha de estar máis ou menos cuberto por calquera das múltiples implementacións existentes. No noso caso, imos empregar o paquete de software chamado OpenLDAP.

Licenza

OpenLDAP esta cuberto polos termos da Open LDAP Public License, version 2.7.

Reseña sobre a comunidade de desenvolvemento

O desenvolvemento deste software e a súa documentación faise por persoal voluntario espallado polo , que se coordina a través de Internet. Hai un grupo estábel apoiado pola Fundación OpenLDAP, que se dedica a recoller para cubrir os gastos derivados de infraestruturas e outros. O “core”, o núcleo, do proxecto establece a arquitectura do desenvolvemento, e está por Howard Chu, Pierangelo Masarati e Kurg Zeilenga. Ao redor deles hai un equipo máis amplo de 13 persoas que desenvolven apartados específicos

Ideas xerais sobre LDAP

O Directorio do que fala LDAP é un directorio ou axenda composta por datos persoais dun conxunto homoxéneo de membros dunha organización, ou relacionados con ela, e agrupados en departamentos ou “Unidades Organizativas”. Por súa vez esas Unidades Organizativas poden estar agrupadas noutras de rango superior. Basicamente, o Directorio é unha árbore de informacións que, pola propia estrutura dos datos ten carácter xerárquico. Cada unha das entradas da árbore, cada un dos seus nodos, ten unha serie de atributos que son os que gardan a información. O número, nome e tipos de datos que pode almacenar cada atributo esta definido no “schema”, que especifica todos e cada un dos atributos que pode conter cada elemento do directorio.

Para facer referencia a calquera dos elementos do directorio emprégase un sistema de nomenclatura polo cal se amosa o tipo de elemento, e a súa posición dentro da árbore, dunha forma semellante ao empregado falamos de entradas no sistema DNS. Máis alá da estrutura de DNS, o directorio empregará as estrutura propias da organización para agrupar a información sobre persoas. Así, para referirnos a unha persoa que forma parte dun departamento nunha organización, empregaríamos a seguinte sintaxe:

cn=persoa,ou=departamento,dc=organizacion,dc=org.

Instalación de OpenLDAP

O paquete que temos que instalar é “slapd”, aínda que tamén é útil o paquete “ldap-utils” Durante o proceso de instalación teremos que responder unha pregunta: o contrasinal da persoa administradora. Unha vez rematada a instalación básica procedemos a unha primeira configuración: para iso dende a liña de ordes facemos unha “reconfiguración” do paquete:

dpkg-reconfigure slapd 


Teremos que responder a unhas preguntas:

  • o da nosa organización
  • o nome da nosa organización
  • o contrasinal da persoa administradora
  • o formato da base de datos (empregar a primeira opción: BDB)
  • eliminar a base de datos se purgue slapd? (respostamos que non)
  • trasladar a base de datos antiga? (a que se creou na instalación; decimos que si)
  • admitir protocolo versión 2? (dicimos que si)

Despois reiniciarse o servidor de LDAP. Para facer manualmente a parada ou reinicio do servizo, empregamos invoke-rc.d, seguido do nome do servizo: “slapd”, e da orde (“start”, “stop”, restart”...). Por exemplo, para facer unha parada e volver a arrancar o servizo faríamos:

invoke-rc.d slapd stop
invoke-rc.d slapd start


Para facilitar o traballo de administración do servidor LDAP podemos empregar unha ferramenta web, phpldapadmin. Precisa dun servidor web. Se nun servidor acabo de crear tentamos instalar o paquete “phpldapadmin” as dependencias obrigarán a facer unha instalación do Apache. Unha vez instalado, poderemos acceder a el no url http://127.0.0.1/phpldapadmin.

Ldap1.png
Ilustración 1: phpLDAPadmin, interface web de configuración de LDAP

Para validarnos nel teremos que empregar como “Login DN” a cadea: “cn=admin,dc=capacitacion,dc=com” se antes fixemos o descrito no exemplo. Como contrasinal, empregamos o que tamén dimos antes.

O phpldapadmin permite crear, modificar e consultar as entradas da árbore de directorio, e agrupa os diferentes elementos nunha estrutura despregábel que facilita a comprensión das relacións entre eles.

Configuración básica

Neste punto xa temos un servidor LDAP activo que atende solicitudes de información sobre unha organización. O que nos falta é meterlle os datos, poboar a árbore do directorio. Normalmente, tanto para encher o directorio de datos, como para facer copias de seguridade del, empréganse uns arquivos especiais de texto chamados “ldiff”. Neles, lístase toda a información do directorio agrupada por obxectos, todas as entradas e todos os seus valores. Se empregamos a orde slapcat poderemos ver esta información. Vamos envorcar a saída desta orde nun ficheiro de texto chamado directorio.ldif:

slapcat > directorio.ldif

O signo de “maior que” redirixe a saída do anterior cara a un ficheiro, neste caso chamado “directorio.ldif”. Se editamos o ficheiro, veremos o seu :

dn: dc=capacitacion,dc=com
objectClass: top
objectClass: dcObject
objectClass: organization 
o: capacitacion 
dc: capacitacion 
structuralObjectClass: organization 
entryUUID: 0516f726-11c4-102d-83af-e397585e66a3 
creatorsName: 
createTimestamp: 20080908073222Z 
entryCSN: 20080908073222.362964Z#000000#000#000000
modifiersName: 
modifyTimestamp: 20080908073222Z 
dn: cn=admin,dc=capacitacion,dc=com 
objectClass: simpleSecurityObject 
objectClass: organizationalRole 
cn: admin 
description: LDAP administrator 
userPassword:: e2NyeXB0fUtiSnd6U0YvUkRhbUE= 
structuralObjectClass: organizationalRole 
entryUUID: 0517375e-11c4-102d-83b0-e397585e66a3 
creatorsName: 
createTimestamp: 20080908073222Z 
entryCSN: 20080908073222.364863Z#000000#000#000000 
modifiersName: 
modifyTimestamp: 20080908073222Z 

Hai unha serie de campos que definen o tipo de obxecto que é, outros documentan data de creación e cambio, e outros o identifican. O dun ficheiro ldiff pódese envorcar nun servidor LDAP empregando o ldapadd:

ldapadd -f directorio.ldif

Con estas duas ordes, pódese establecer a base para unha mínima estratexia de copias de seguridade do noso directorio.

Outra orde que tamén se atopa no paquete ldap-utils é ldapsearch, que nos permite facer procuras dentro do directorio dende a liña de ordes. Por exemplo, se escribimos unha procura básica como a seguinte, obteremos todas as entradas que están por debaixo de “dc=capacitacion,dc=com” na árbore do directorio:

ldapsearch -x -b “dc=capacitacion,dc=com”
# extended LDIF 
# 
# LDAPv3 
# base <dc=capacitacion,dc=com> with scope subtree 
# filter: (objectclass=*) 
# requesting: ALL 
# 
# capacitacion.com 
dn: dc=capacitacion,dc=com 
objectClass: top 
objectClass: dcObject 
objectClass: organization 
o: capacitacion 
dc: capacitacion 
# admin, capacitacion.com 
dn: cn=admin,dc=capacitacion,dc=com 
objectClass: simpleSecurityObject 
objectClass: organizationalRole 
cn: admin 
description: LDAP administrator 
# search result 
search: 2 
result: 0 Success 
# numResponses: 3 
# numEntries: 2 

Licenza desta guía

Esta guía forma parte da documentación de apoio para a capacitación TIC en SwL e foi elaborada pola empresa TEGNIX. para o Centro de Referencia e Servizos de Software Libre de Galiza – Mancomún. Distribúese baixo as condicións dunha Licenza Creative Commons: Recoñecemento-CompartirIgual 3.0