Teoría sobre o servizo de directorios

De MediaWiki
Ir a la navegación Ir a la búsqueda

Introducción

Un servicio de directorio (SD) é unha aplicación ou un conxunto de aplicacións que almacena e organiza a información sobre os usuarios dunha rede de ordenadores e sobre os recursos da rede de xeito que permite ós administradores xestionar o acceso de usuarios os recursos sobre dita rede; polo tanto os servizos de directorio actúan como unha capa de abstracción entre os usuarios e os recursos compartidos.

Como base de datos, un servizo de directorio está altamente optimizado para lecturas e proporciona alternativas avanzadas de búsqueda nos diferentes atributos que se poden asociar os obxetos dun directorio. Os datos que se almacenan no directorio son definidos por un esquema extensible e modificable.

Os servizos de directorio utilizan un modelo distribuido para almacenar a súa información e esa información xeneralmente está replicada entre os servidores que forman o directorio.

Características

Un directorio en cualquera sistema operativo é unha base datos preparada para navegar, ler e buscar na información almacenada.

Os directorios permiten aotpar información de forma electrónica, a diferenza dos directorios clásicos, como unha guía telefónica onde se buscaba por apelidos ordeados alfabéticamente o teléfono dunha persona en concreto.

Estos directorios electrónicos non contemplan transaccións complicadas, nin opción de volta atrás como os que se poden atopar nos sistemas de bases de datos para xestionar grandes cantidades de información. A actualización nestos directorios é mediante cambios simples, seempre que se permita na definición do directorio. De todos xeitos os directorios están preparados para dar resposta a grandes solicitudes de búsqueda; tamén teñen a capacidade de incrementar a disponibilidade e a fiabilidade cando se replica a información.

Funcións básica

As funciones básicas dun directorio son as seguintes:

  • Buscar información: é a función principal pola que se crea o directorio electrónico.
    É accedida de múltiples formas: por nombre ou por calquera oitro campo que esté implementado no directorio.
  • Xestionar información: función primordial xa que é a que permite agregar, editar ou borrar usuarios por distintos campos. N
    Normalmente centralizase a información nun directorio o que acceden as aplicacións; no caso de que exista máis dun directorio, habería que sincronizar todos para que posean a mesma información
  • Control de seguridade: a última función sería controlar o acceso por parte dos usuarios. Ademáis da seguridade o servizo de directorio xestiona os certificados dixitais dos usuarios.
En conclusión, as aplicacións que acceden ós servizos de directorio son moi diversas: aplicacións web, correo electrónico, acceso a edificios, sistemas operativos e as aplicaciones coporativas que requiran da xestión de accesos.

Organización de LDAP

A organización deste tipo de directorios pode estar centralizada ou distribuida:

  1. Centralizado: neste caso todas as consultas canalizanse nun único servidor, e todas son respondidas por él.
    coma vantaxe ten que non é preciso sincronizaro a outros servidores
    coma principal inconvinte é que no caso de fallo o sistema queda sen validación.
    Polo tanto como mínimo é necesario realizar un backup do servicio de directorio.
  2. Distribuido: esta opción permite que a información esté dividida en varios servidores que permiten responder ante as consultas dos clientes. Os datos poden estar fraccionados ou replicados:
    cando a información está fraccionada, os servidores que interveñen no servizo de directorio non conteñeen toda a información; só un subconxunto dela.
    cando a información está replicada, toda a información do directorio forma parte de todos os servidores que compoñen o cluster do servizo de directorio.

A opción máis aconsellable para dar servizo de directorio é unha mezcla das anteriores opcións: unha parte da información estará replicada e outra fraccionada para para contrarrestar os inconvintes dunha e outra opción.

O primeiro directorio deste tipo xurdíu na década dos oitenta creado pola UIT e denominouse X.500. 
Organiza as entradas no directorio de forma xerárquica e con gran cantidade de almacenamento de datos, polo que:
1) as facilidades de búsqueda de información
2) a ampliación da arquitectura sendo altamente escalable. 
X.500 necesitaba dun protocolo de conexión entre o cliente e o servidor polo que o principio decidieron usar DAP, pero iso implicaba usar todos os protocolos subyacentes no modelo OSI; ahí é onde xurde LDAP coma éxito de conexión entre o cliente e o servidor.

LDAP (Lightweight Directory Access Protocol) implementa unha serie estándares definidos polo IETF en varios RFC. As funcións máis chamativas e que levaron ó éxito de LDAP son:

  • usa TCP/IP en lugar de protocolos teóricos do modelo OSI, que requiere menos recursos e é máis accesible
  • representa a información mediante cadeas de caracteres en lugar de complicadas estructuras ASN.1.
  • o seu modelo funcional é máis simple s eliminaronse opcións raras pouco usadas en X.500, polo que resulta máis intuitivo para implementalo.

LDAP define un protocolo para o contido das mensaxes entre un cliente e o servidor propiamente dicho. Este protocolo permite acceder as operacións definidas polo cliente, ás respostas do servidor e os datos transportados na mensaxe.

Unha implementación de LDAP de código aberto realízase mediante Open LDAP. É desarrollada polo OpenLDAP Project e posúe as siguientes características:

  • É multiplataforma.
  • Baseado no estándar X.500.
  • Ten estrutura de árbol denominado DIT.
  • Soporta LDAPv3 e esquema distribuido.
  • Internacionalización mediante o uso de caracteres UTF-8.
  • Ten mecanismos de búsqueda avanzados

Entrando en profundidad, se va a analizar el estándar LDAP desde diferentes puntos de vista que componen el servicio de directorio:

  1. Modelo de información: este modelo nos permite darle forma a la estructura de la información almacenada en LDAP. El dato básico en el directorio es una entrada que corresponde con un objeto del mundo real. Una entrada se compone de un conjunto de atributos, cada uno de ellos tiene un tipo con sus valores. El tipo como en cualquier lenguaje de programación define la información que se va a almacenar y los valores son la información en sí. Todos los atributos tienen un identificador llamado OID y una sintaxis que permite definir qué valores va a poseer. Se aproxima a la forma de almacenar la información en Windows Server 2012, que se basa también en LDAP. Un ejemplo de este tipo sería el siguiente: dn: dc=ejemplo, dc=com La clave de este tipo de modelo es que cada servidor puede definir su estructura o esquema, aunque se tienda a que el esquema de directorio sea estándar para todos los servidores que intervienen en la compartición del servicio de directorio.
  2. Modelo de referencia: a la hora de nombrar los datos LDAP define cómo se organizan y referencian estos, primero se definen las estructuras de cómo se organizan las entradas y posteriormente se indica cómo referenciar o acceder a las mismas.

Ficheiros básicos de configuración e uso

O formato de intercambio de datos LDAP (LDIF) é unha extensión de ficheiro de texto sen formato usada para almacenar datos do directorio LDAP (Lightweight Directory Access Protocol) coma un conxunto de rexistros e solicitudes de actualizacións de LDAP que incluen:

  • agregar
  • eliminar
  • modificar
  • cambiar nome

LDAP é un protocolo que determina a ubicación dos ficheiros, dispositivos e organización a través da rede TCP/IP.

Creado na década dos 90 por Tim Howes, Mark C. Smith e Gordon nunha primera versión foi actulizado para o seu uso coa versión 3 de lDAP a finales dos 90. Está documento no RFC 2849.

A sintaxe que posee LDIF é:

dn: <nome distinguido>
<nome_atributo>: <valor>
<nome_atributo>: <valor>
<nome_atributo>: <valor>

Polo tanto unha entrada do directorio en formato de intercambio de datos LDIF consta de dúa partes:

  1. DN que debe figurar na primeira liña de entrada e que componse da cadea dn: seguida do nome distinguido (DN) da entrada.
  2. A segunda parte son os atributos da entrada

Non existe ningunha orde prestablecida pero o ideal é colocar primeiro o atributo object-class para mellorar a comprensión do ficheiro.

Nun ficheiro LDIF pode existir máis dunha entrada derinida. Cada entrada sepárase das demáis por unha liña en branco e a súa vez, en cada entrada pode haber unha cantidade arbitraria dos pares nome_atributo -> valor. Realizar copias de seguridad é convinte para que en caso de calquer fallo ou introdución de datos erróneos se poida regresar ó punto de partida.

Exemplos

Crea unha unidade organizativa chamada empregados dentro do dominio proba.com:
dn:ou=empregados,dc=proba,dc=com
objectClass:organizationalUnit
ou:empregados
Crea un empregado da organización cos seus atributos dentro da OU anterior:
dn:uid=jose,ou=empregados,dc=proba,dc=com
objectClass:inetOrgPerson
uid:jose
ou:empregados
cn:Jose
sn:lopez
title:Profesor
userPassword:{MD5}1eb3691f6a502ca3065f9702b75b6a34
roomnumber:Room134
mail:joselv@proba.com

Software de servizos de directorio

Algúns dos servicios de directorio ofrecidos polos fabricantes son:

Referencias