domingo, 26 de junio de 2011

Ahorro de costes con Google Apps (III). Bye, bye, Exchange. Bienvenido, Mr. LDAP


En los anteriores artículos vimos cómo configurar nuestro dominio para ser usado con Google Apps y aprendimos a hacer unos ajustes básicos. Ahora ya llegado la hora de configurar nuestras propias aplicaciones con el fin de sustituir el servicio Exchange en nuestra compañía.

De las principales ventajas del Exchange, hay algunas que podemos replicar casi de manera inmediata con lo visto hasta ahora. La primera y más característica de este tipo de servidor: la opción de usar una "Libreta Global de direcciones" de la compañía.

Para poder seguir usando esto, realmente nunca habríamos necesitado un Exchange, ya que éste lo único que hace es mostrarnos una vista de las direcciones que tenemos dadas de alta en nuestro dominio Active Directory. Como todo el mundo sabe, el Active Directory no es nada especialmente nuevo ni mucho menos inventado por Microsoft; es en realidad una (otra) implementación del estándar abierto LDAP (Lightweight directory access protocol).


El directorio de equipos, grupos, carpetas y usuarios puede estar basado en cualquier servidor Windows, Netware o Linux que tengan cualquier implementación de LDAP (por ejemplo OpenLDAP).

Mediante el protocolo LDAP podemos acceder y manipular absolutamente todos los datos necesarios para, entre otras cosas, mantener al día nuestra libreta global de direcciones (incluyendo listas de distribución), de una manera casi idéntica a como lo habríamos realizado en un Exchange.

Dado que estos artículos están orientados especialmente a aquellos que desean desprenderse de las garras de Microsoft, enfocaré el desarrollo del tema sobre la base de un directorio Active Directory característico de sistemas operativos Windows Server con el que sin duda estarán familiarizados. No obstante, todo será aplicable de manera muy similar a cualquier otra implementación de LDAP en sistemas basados en Unix o bien en Netware (cuya implementación LDAP es quizás mi favorita).

PRIMEROS PASOS. ORGANIZANDO EL DIRECTORIO


Antes de nada, tenemos que escoger un nombre de dominio para nuestra compañía ficticia. En este caso será debugmachine.local.

Para tener un directorio cuya organización facilite nuestra interacción vía LDAP, deberemos tener en cuenta un detalle diferenciador respecto de cómo se gestionan los usuarios en MS Exchange. Cualquier administrador familiarizado con Exchange conoce la opción avanzada de "No mostrar en las listas de direcciones de Exchange". Dicha opción, muy útil para ocultar un usuario que ha causado baja en la compañía, no la tendremos cuando estemos administrando el directorio directamente por LDAP.

Una forma de solventar esta diferencia es estructurar las unidades organizativas de tal modo que siempre tengamos un contenedor en un nivel anterior a la unidad organizativa que contiene a todos los usuarios activos. Esta última unidad será siempre considerada como la rama "raíz" al hacer búsquedas, por lo que siempre tendremos un contenedor donde colocar los usuarios que queramos hacer desaparecer de las listas.
Para llevar a cabo este paso, crearé dos unidades organizativas muy importantes. Una, llamada Usuarios ocultos será útil para mover ahí los usuarios que no queremos que salgan en la libreta de direcciones (por ejemplo porque abandonaron la compañía), y otra, llamada root que será la raíz de todas las Unidades Organizativas reales de la compañía, es decir, las que contendrán a todos los usuarios, equipos, grupos, etc. que pretendemos que continúen activos.



El siguiente paso consiste en escoger la forma en que queremos acceder contra el servicio LDAP. Existen básicamente dos formas de hacerlo: de manera anónima o mediante autenticación. El acceso anónimo es muy cómodo pero tiene dos inconvenientes: evidentemente la seguridad, y en segundo lugar, que algunos programas de correo tienen comportamientos indeseados cuando se les configura una password vacía.

El modo autenticado es simple: consiste en especificar una credencial con suficientes privilegios para hacer consultas. Todos los usuarios de Active Directory tienen, por defecto, esta posibilidad. El problema es que Outlook y otros programas de correo no permiten integrarse con el usuario logueado y obligan a especificar las credenciales en la configuración. En caso de un hipotético cambio de contraseña en el dominio, habría que luego ir a configurar de nuevo la conexión con la libreta LDAP en el programa de correo.

Yo propongo como solución tirar por el camino de en medio. Para facilitar la configuración de todos los accesos LDAP de la compañía, indistintamente de los cambios de contraseñas, podemos crear un usuario en nuestro dominio cuya función sea exclusivamente esa. Le llamaremos accesoLDAP@debugmachine.local y la password que estimemos oportuno según los requerimientos de seguridad que necesitemos.

ENCONTRANDO LA RUTA LDAP 


Una vez preparado y organizado nuestro dominio para accederlo por LDAP, necesitamos un último paso: hallar la ruta LDAP que vamos a usar como raíz de búsqueda. Dicha ruta se especifica en el formato estándar X500 (podéis conocer más detalles sobre cómo se especifica este formato en este artículo).

En nuestro caso, si queremos establecer una libreta de direcciones global para toda la compañía, necesitamos la ruta LDAP de la unidad organizativa root, que sería la siguiente:

OU=root, DC=debugmachine, DC=local

Como vemos, el orden se hace de atrás hacia adelante (excepto los dos valores DC que hacen alusión al dominio desglosado en sus dos miembros).

Pero hilando más fino, podríamos crear no una, sino varias libretas de direcciones distintas, separadas para cada delegación u oficina (en nuestro caso, para cada Unidad Organizativa). Tendríamos entonces:

OU=Delegación Jerez de la Frontera, OU=root, DC=debugmachine, DC=local
OU=Delegación Murcia, OU=root, DC=debugmachine, DC=local
OU=Oficinas centrales, OU=root, DC=debugmachine, DC=local

Como vemos, la lógica del formato X500 es muy simple y aunque en el link anterior está bien descrito, confío en que los ejemplos previos serán más que suficientes para que fácilmente especifiquéis los vuestros.

CONFIGURANDO OUTLOOK


En primer lugar agregaremos la cuenta de usuario. El procedimiento es sencillo: se crea una nueva cuenta usando protocolo IMAP según la propia Google lo describe en este documento.

Una vez realizado, creamos la libreta de direcciones global que actúe contra nuestro controlador de dominio (preferentemente contra alguno que sea un catálogo global). Los ejemplos están realizados con Microsoft Outlook 2003, pero son igual de válidos para cualquier versión posterior.



Vamos al menú Herramientas y después Cuentas de correo electrónico... y agregamos una nueva libreta de direcciones de tipo LDAP:



Y escribimos los siguientes parámetros, para después clickar en "Más configuraciones...":


En esta ventana rellenaremos los campos de ambas pestañas en la manera que sigue (hay que tener en cuenta que el puerto LDAP por defecto es el 389, pero si usamos un servidor catálogo global, entonces se usa el 3268):




Aceptamos todos los cambios, y, muy importante, cerramos y volvemos a abrir Outlook. Una vez tengamos de nuevo abierta la aplicación, sólo tenemos que abrir la Libreta de direcciones (atajo ctrl+shift+B) y veremos lo siguiente:


¡Ahí está! Es nuestra libreta de direcciones de siempre, siendo leída desde el dominio Active Directory, y sin ningún servidor Exchange en el escenario. Como antes expliqué, se puede repetir el proceso tantas veces se necesite para tener diferentes libretas de direcciones segmentadas según el criterio que necesitemos (por ejemplo, por sedes).

OK. ¿Y QUÉ PASA CON EL CORREO?

El correo configurado vía IMAP es similar a un buzón tradicional en Outlook, pero hay algunos matices. Algunas diferencias las evitaremos mediante configuración, mientras que para otras tendremos que introducir leves diferencias en nuestra manera de trabajar.

Todo ello lo veremos en la siguiente entrega.

Saludo y ahorro.