Resum

Un directori és una base de dades especialitzada i específicament dissenyada per optimitzar les operacions de consulta on s’emmagatzemen objectes i informació sobre aquests objectes, anomenada atributs. El programari que emmagatzema, organitza i facilita l’accés a la informació d’un directori s’anomena servei de directori.

Els directoris contenen informació basada en objectes, les actualitzacions i modificacions de les seves dades son simples i poc freqüents, estan optimitzats per donar una resposta ràpida a operacions de cerca i revisió, i poden replicar la informació per augmentar-ne la disponibilitat i fiabilitat alhora que es redueix el temps de resposta de les consultes.

L’experiència demostra que quan es tenen certes dades en un directori, diverses aplicacions acaben accedint-hi i és convenient haver implementat un directori per facilitar-ne el manteniment. Des del punt de vista de l’administració de sistemes, configurar el sistema perquè les aplicacions facin servir un servei de directori comú permet controlar més fàcilment els riscos de fallada per inconsistència de dades i concentrar els esforços en millorar l’administració i tolerància a fallades del servei.

Els serveis de directori s’implementen seguint el model client-servidor: quan una aplicació vol accedir al directori realitza una consulta al servei, que serà l’encarregat d’accedir a la base de dades i retornar el resultat de l’operació.

Per poder-se comunicar, client i servidor han d’implementar un protocol comú. Aquest protocol s’anomena Lightweight Directory Access Protocol (LDAP) i s’ha convertit en un estàndard d’accés a la informació emmagatzemada en un servidor de directori per als usuaris i les aplicacions.

Diverses organitzacions van estar implicades en la creació d’un protocol anomenat Directory Access Protocol (DAP), especificat en la norma X.500. Com que el DAP és un protocol molt complex, es defineix l’LDAP, que és un subconjunt del DAP desenvolupat per al seu ús amb TCP/IP, de manera que n’hereta els conceptes fonamentals però simplifica la comunicació entre el client i el servidor i no inclou les característiques DAP menys utilitzades.

Els avantatges més significatius de l’LDAP són que permet una consulta ràpida de les dades, es tracta d’una solució distribuïda, és independent de la plataforma, la seguretat està integrada al dipòsit de dades, la implementació del client és fàcil, té una gran difusió i un cost baix.

Es pot decidir separar el directori entre diversos servidors per motius organitzatius o per facilitar-ne la gestió i es poden delegar parts del directori a un altre servidor. També es pot augmentar la disponibilitat i la fiabilitat del directori fent servir més d’un servidor, tot i que durant un temps limitat pot ser necessària una sincronització entre mestre i esclaus.

L’actualització de les dades es produeix a nivell d’entrada i no d’atribut, de manera que si es modifica un únic atribut, el mestre propaga als esclaus tota l’entrada, cosa que resulta problemàtica en entrades molt grans o quan les modificacions són molt freqüents.

L’LDAP està implementat sobre TCP/IP i fa servir cadenes simples per transportar les dades. És un protocol orientat a missatges.

El model d’informació LDAP defineix quin tipus d’informació es pot emmagatzemar en el directori i les unitats bàsiques en les quals l’LDAP estructura la informació.

En l’LDAP la informació està estructurada en forma d’arbre. Aquest arbre s’anomena Directory Information Tree (DIT). Cada node de l’arbre s’anomena entrada. Cada entrada està formada per un conjunt d’atributs, cadascun dels quals és d’un tipus i conté un o més valors.

Cada entrada està identificada per un atribut anomenat nom distintiu o DN (Distinguished Name) que és únic al directori i fa referència a l’entrada de manera unívoca.

Els atributs que conté una entrada estan condicionats per les classes d’objecte a les quals pertany. Una classe d’objecte agrupa conjunts d’atributs que poden ser opcionals o obligatoris i la unió de tots els atributs de totes les classes d’objecte de les quals forma part una entrada són els atributs permesos per l’entrada.

Les classes d’objecte es relacionen en una jerarquia en la qual l’origen comú és la classe d’objecte top. Una classe sempre hereta les característiques de les classes d’objecte pare, incloent tots els atributs obligatoris de les classes superiors.

Les regles de coincidència defineixen els mètodes de comparació disponibles en el servidor LDAP.

Els esquemes són els llocs on es defineixen les diferents classes d’objecte i atributs. Els esquemes més habituals són core.schema, cosine.schema, inetorgperson.schema. Els esquemes són reutilitzables.

El model de nomenclatura defineix com s’organitza i es referencia la informació. Aquest model defineix el nom distintiu, el sufix del directori, els àlies i les referències.

El model funcional defineix com es recupera i modifica la informació del directori, descrivint les operacions que es poden realitzar en el directori en el moment de l’accés, el manteniment i la gestió.

Les operacions que es poden realitzar són connectar, desconnectar, abandonar, cercar, comparar, afegir, modificar, esborrar i reanomenar (modificar el DN).

El model de seguretat mostra com es controla l’accés a la informació continguda en el directori, realitzant dos processos: autenticació i autorització.

Per representar el contingut del directori i per a les sol·licituds d’actualització del directori es fa servir el format LDIF (LDAP Data Interchange Format), que és un estàndard de format de text pla.

El format LDIF representa el contingut del directori amb una sèrie de registres, cadascun dels quals representa una entrada del directori o una sol·licitud d’actualització. Els fitxers LDIF no formen part del directori, simplement el representen i hi permeten interactuar.

Els fitxers LDIF estan formats per seqüències o agrupacions de directives. Les seqüències poden ser d’entrada o d’operador.

L’OpenLDAP és una implementació lliure, de codi obert, del protocol LDAP i consta del servidor pròpiament dit, les llibreries client que es fan servir per desenvolupar aplicacions client i diverses utilitats i exemples.

El servidor de l’OpenLDAP anomenat slapd està format per una secció de processament frontal (frontend), que controla les connexions de xarxa i el processament del protocol, i una secció de processament dorsal o de segon pla (backend), que s’encarrega de recuperar i emmagatzemar les dades en resposta a les peticions. Aquesta arquitectura és modular i permet canviar de backend en funció de les necessitats. Els overlays són components de programari situats a la secció de processament dorsal que fan funcions anàlogues a aquests, modificant el comportament del backend sense haver de reprogramar el codi o permetent modificar la resposta del backend abans de tornar-la al frontend.

La instal·lació del servidor slapd a Debian GNU/Linux és senzilla, ja que el programari es troba als dipòsits propis de la distribució. Per realitzar la instal·lació cal fer una sèrie de comprovacions prèvies, com la configuració de xarxa i la verificació del nom de la màquina i del domini.

Un cop feta la instal·lació es pot comprovar si s’ha fet correctament i, si s’escau, reconfigurar el servei. Per arrencar i aturar el servei de directori es fan servir les ordres habituals del sistema aplicades al dimoni slapd.

L’slapd permet una configuració dinàmica del seu comportament. La configuració es pot canviar sense haver d’iniciar el servei, fent servir una entrada del mateix DIT per emmagatzemar la configuració. Aquesta configuració s’anomena cn=config.

L’administració, consulta i ús del directori es pot realitzar mitjançant una aplicació nativa per a un sistema operatiu determinat, una aplicació web que es pot fer servir des de qualsevol ordinador o la interfície de la línia d’ordres (amb l’ajuda dels fitxers LDIF).

Les utilitats de la línia d’ordres proporcionades per l’slapd són slappasswd, slapindex, slapd, slapauth, slapcat, slapacl, slapadd, slapdn i slaptest. Addicionalment, el paquet de programari ldap-utils proporciona una sèrie d’eines client que permeten accedir al servidor. Són ldapadd, ldapdelete, ldappasswd, ldapcompare, ldapsearch o ldapmodify, entre d’altres.

Un exemple d’utilitat web per gestionar un directori és l’aplicació phpLDAPadmin, que permet, mitjançant una interfície web, la realització de totes les operacions habituals de manera simple i efectiva.

És de gran utilitat per a una organització que diferents aplicacions puguin fer servir les dades d’un mateix directori per al seu funcionament habitual. Això facilita el manteniment de les dades en el sistema d’informació de l’organització.

És habitual fer servir la informació emmagatzemada al directori per realitzar l’autenticació dels usuaris que inicien sessió en les diferents màquines de l’organització. Per a aquesta tasca, convé que la informació dels usuaris estigui emmagatzemada en objectes que pertanyin a la classe posixAccount, que conté els atributs necessaris perquè el sistema pugui crear els processos necessaris per a l’autenticació de l’usuari i el seu inici de sessió.

La PAM (Pluggable Authentication Module) és una biblioteca d’autenticació genèrica que qualsevol aplicació pot utilitzar per validar usuaris, comprovant si les credencials proporcionades són correctes. L’NSS (Name Service Switch) és una interfície genèrica per obtenir els paràmetres d’un compte d’usuari. Tant la PAM com l’NSS es poden configurar dinàmicament.

La instal·lació de l’acreditació centralitzada mitjançant l’OpenLDAP en un sistema operatiu Debian GNU/Linux inclou la instal·lació del programari necessari perquè tant la PAM com l’NSS facin servir la informació emmagatzemada en un servidor LDAP per realitzar les seves funcions. El programari necessari es troba en els paquets libpam-ldap i libnss-ldap. A més de respondre les preguntes bàsiques durant la instal·lació del programari, cal configurar els fitxers /etc/ldap/ldap.conf i /etc/nsswitch.conf, i comprovar la configuració dels fitxers situats en el directori /etc/pam.d/.

Si s’integra l’aplicació Samba amb l’OpenLDAP es pot aconseguir un sistema d’autenticació centralitzat per als usuaris no només de Linux sinó també de Windows. Per fer aquesta integració es configura Samba com a client LDAP, però abans és necessari incloure l’esquema samba.schema a la configuració del servidor. La inclusió d’un nou esquema amb el model de configuració cn=configde l’slapd no és trivial i requereix convertir els fitxers .schema en fitxers .ldif, que sí que poden ser tractats. Per configurar Samba com a client LDAP s’ha de configurar el fitxer /etc/samba/smb.conf i és convenient utilitzar les utilitats proporcionades pel programari inclòs al paquet smbldap-tools.

Hi ha moltíssimes aplicacions i serveis que es poden integrar amb l’OpenLDAP. En són exemples el servidor d’FTP Pure-FTPd i el gestor de continguts web Joomla.

Anar a la pàgina següent:
Resultats d'aprenentatge