# Metadirectorio

Metadirectorio es un software utilizado para replicar datos entre diferentes fuentes aunque estas fuentes no tengan nada que ver entre sí. Podría llamarse un conector de bases de datos de diferentes fuentes o fabricantes. Actualmente muchos fabricantes nombran a los metadirectorios como Administradores de Identidad Identity Management aunque esta definición no es la más correcta el uso predominante de los metadirectorios es la gestión de usuarios, claves y permisos. Estos productos también pueden usarse para otras aplicaciones.

## Usos Comunes

Es muy utilizado para replicar información que tiene algún nexo en común (clave conjunta) y replicar estos valores a lo largo de las diferentes fuentes de información. Por ejemplo un metadirectorio puede replicar información entre una base de datos relacional RDBDS, y una base de datos en árbol LDAP. Además algunos productos tienen la opción de utilizar conectores externos programados en Perl, o Java.

### Aplicaciones prácticas

Los metadirectorios son muy utilizados en entornos donde se tiene que sincronizar o copiar información entre diferentes fuentes de datos, esto es muy solicitado en entornos donde se desea implantar single sign-on, gestión de contraseñas o para realizar la provisión/borrado/edición de la información de una sola vez o desde una sola fuente centralizada.
Es muy utilizado para gestión de usuarios de grandes redes corporativas donde suelen confluir aplicaciones de diferentes fabricantes y que usan información de diferentes bases de datos LDAP, Active Directory, Oracle. El uso de metadirectorios simplifica el tratamiento de la información, ya que un cambio en los atributos de un usuario (contraseña, teléfono, departamento, etc.) no es necesario que sea realizado en los diferentes sistemas que tenga la empresa, sino que es replicado de manera transparente y consistente entre los diferentes sistemas. También puede ser utilizado para replicar información entre bases de datos que no ofrecen una forma de conexión y control de la información que no sea en modo cliente, (bloqueo de registros), control de duplicados, etc. Actualmente los metadirectorios son capaces de sincronizar datos de fuentes tan dispares como Oracle Internet Directory, Lotus notes, IBM Tivoli Directory Server, NetIQ eDirectory, SUN Java System Directory Server, Active Directory, SAP, o cualquier base de datos relacional propietaria que sea accesible por Perl, java o XML.

### Diseño interno del metadirectorio

Por norma general estos productos utilizan el un sistema modular para su desarrollo, por lo que están formados por conectores; estos conectores sirven para acceder a las bases de datos, y cuentan asimismo con una base de datos central que suele ser en formato árbol (LDAP) que sirve para almacenar la configuración. Usan también bases de datos "proxy" que almacenan la información de los datos sincronizados que son de uso interno del producto, son utilizadas para mantener la integridad y la relación de los datos.

## Reglas que gobiernan en los metadirectorios

El flujo de datos que pasan por el directorio es gobernado por una serie de reglas, estas reglas son las que dicen qué datos se replican en uno u otro sentido. Las reglas son necesarias para que el metadirectorio funcione y están asociadas a unos o más conectores. Estas suelen regular el nombre que tendrá un dato en una base de datos y el nombre con el que se almacenará en otra. También puede realizar operaciones sencillas, como unir, separar o borrar cierta información de los datos que pasan a través de estas reglas. Los usos de las reglas y su potencia dependen totalmente del producto que se use con el metadirectorio, por lo que su uso requiere un estudio detallado preliminar de estas.

### Diseño de reglas en metadirectorios

Para gestionar las reglas en el metadirectorio es necesario siempre un Análisis previo de la información a tratar y los flujos que estos datos tendrán. Como regla general se pueden dar unas pautas, pero suele ser necesario la implicación de todos los administradores de los productos a conectar y un buen analista de sistemas para diseñar un conjunto de reglas eficaz.