He pensado iniciar mis entradas en nuestro nuevo blog de empresa con una descripción del proyecto que llevó a CSS a ganar el prestigioso premio de Microsoft "2010 Core Infrastructure Solutions, Identity & Security Partner of the Year".
El proyecto implicaba un uso interesante del motor de sincronización del Gestor de identidades de Forefront (FIM) para proporcionar aprovisionamiento delegado de Exchange. Mi esperanza al describir este proyecto es proporcionar un ejemplo y tal vez inspiración en cuanto a lo que puede utilizar FIM para lograr.
Producto
Forefront Identity Manager (FIM) de Microsoft, proporciona una amplia variedad de servicios en torno a la gestión de identidades, incluida la sincronización de directorios, la gestión de grupos, la gestión de certificados, el flujo de trabajo, la delegación y el restablecimiento de contraseñas mediante autoservicio.
El desafío
El cliente tenía tres filiales como resultado de una adquisición, cada una con su propio bosque de Active Directory y sistema de correo electrónico, y cada una con distintos niveles de capacidades técnicas. Una de las filiales gestionaba sus sistemas bastante bien y otra no tenía una copia de seguridad viable de su sistema de correo electrónico.
El objetivo comercial de la empresa era conseguir que la compañía y sus filiales estuvieran todas en una plataforma de correo electrónico estable y gestionada de forma centralizada utilizando la versión actual de Exchange.
El reto consistía en que cada filial tenía su propio bosque de Active Directory y, desde el punto de vista político, no era factible reducir el entorno AD a un dominio o incluso a un bosque. Desde el punto de vista administrativo, cada filial mantenía su propio Active Directory y sus propios usuarios.
La empresa matriz no quería conceder ningún derecho administrativo ni en el sistema central de Active Directory ni en Exchange a los administradores de las filiales, pero sí quería delegar la gestión de usuarios y el aprovisionamiento de buzones a las filiales. Además, se deseaba que los usuarios de las filiales pudieran acceder al entorno Exchange central con sus cuentas AD de las filiales sin necesidad de un inicio de sesión independiente para acceder al correo electrónico.
Los administradores de las filiales debían poder especificar para sus propios usuarios si poseían o no un buzón en el entorno central de Exchange y si ese usuario podía enviar correo electrónico a Internet o estaba restringido al correo electrónico interno de la empresa. Por último, los administradores de las filiales debían poder especificar las direcciones SMTP de sus usuarios y si éstos debían figurar o no en la libreta de direcciones global.
La solución
La solución que empleó CSS consistió en que los administradores de las filiales pusieran "pistas" en sus propios directorios activos que FIM leería y luego tomaría las medidas de aprovisionamiento adecuadas en el entorno central.
El siguiente diagrama muestra dónde encaja la FIM en el panorama:
Proporcionar las pistas de aprovisionamiento
Las sugerencias o directivas de aprovisionamiento proporcionadas por los administradores de las filiales debían almacenarse en algún lugar de los directorios activos de las filiales para que fueran visibles para FIM. Utilizamos varios de los atributos de "extensión" que están presentes en el esquema de AD de casi todo el mundo. Un atributo contendría el valor de "Ninguno", "Empresa" o "Internet" para indicar si el usuario disponía de buzón o no y si el buzón tenía derechos para enviar y recibir a Internet o estaba restringido al correo electrónico corporativo. Otro se utilizaba para contener una lista de direcciones SMTP para el buzón; y finalmente un tercero contenía "Verdadero" o "Falso" para indicar si el usuario debía ser incluido en el GAL.
Los administradores de las filiales tenían derechos para actualizar atributos en sus propios directorios, pero no existe una interfaz de usuario sencilla para editar los atributos de las extensiones (no estaban en Server 2008 y no tenían instaladas las herramientas administrativas de Exchange). Consideramos brevemente la posibilidad de que los administradores utilizaran ADSI Edit o herramientas de edición de directorios similares, pero rechazamos la idea debido al riesgo potencial de errores y daños. Dado que los administradores de la filial utilizaban la herramienta estándar Usuarios y equipos de Active Directory (ADUC) para gestionar sus usuarios, optamos por ampliar ADUC añadiendo una pestaña adicional que exponía los atributos de extensión de una forma fácil de entender. He aquí su aspecto:
Después de crear un usuario, todo lo que un administrador necesitaba hacer era cambiar a esta pestaña y especificar los detalles de Exchange para el usuario.
Sincronización
Aproximadamente cada diez minutos, el motor de sincronización de FIM consultaba los tres directorios activos de las filiales para comprobar si los administradores de las filiales habían realizado algún cambio en los usuarios que requiriera procesamiento y, en caso afirmativo, FIM realizaba el correspondiente trabajo de aprovisionamiento o desaprovisionamiento.
Aprovisionamiento a Exchange
Exchange admite el acceso a buzones de correo desde cuentas de bosques remotos de Active Directory mediante una función denominada "buzones vinculados". Para configurarlo, necesita una cuenta de marcador de posición que sea propietaria del buzón en el mismo bosque en el que reside Exchange. Esta cuenta de marcador de posición debe tener el buzón habilitado, pero el inicio de sesión deshabilitado. Cuando habilita el buzón, indica a Exchange que se trata de un buzón vinculado y especifica la cuenta del bosque remoto que tendrá acceso al buzón.
Por defecto, FIM aprovisiona buzones de Exchange estándar y puede aprovisionar cuentas de marcador de posición, pero no tiene capacidad para crear buzones vinculados y no puede desaprovisionar un buzón de Exchange sin eliminar también la cuenta subyacente.
Para resolver estos problemas, CSS creó un agente de gestión personalizado o "conector" para que FIM gestionara el aprovisionamiento y desaprovisionamiento de buzones de Exchange independientemente de las cuentas AD. De forma encubierta, el agente de gestión emite los comandos PowerShell apropiados para averiguar qué buzones existen actualmente, crear nuevos buzones normales o vinculados y eliminar buzones de las cuentas.
Uno de los requisitos era permitir a los administradores de las filiales especificar qué direcciones de correo electrónico SMTP tendrían sus usuarios. El motor de sincronización de FIM puede enviar esta información a Active Directory, pero ni FIM ni AD le avisarán si pone la misma dirección SMTP en varios buzones. Para complicar más las cosas, si pone la misma dirección SMTP en varios buzones, la entrega de correo entrante a esa dirección SMTP fallará silenciosamente.
Para evitarlo, creamos otro agente de gestión personalizado para que FIM procesara las direcciones SMTP. El agente volvió a utilizar comandos PowerShell de Exchange para solicitar la asignación de direcciones SMTP a buzones de correo. La interfaz PowerShell de Exchange comprobará si hay direcciones SMTP duplicadas y emitirá una advertencia que nosotros atrapamos y reenviamos al administrador de la filial para informarle del conflicto de direcciones.
Por último, para gestionar el requisito de seguridad de que algunos usuarios pudieran enviar correo electrónico a Internet y otros estuvieran restringidos al correo electrónico exclusivo de la empresa, configuramos la gestión básica de grupos en FIM para colocar en un grupo de Windows a los usuarios que los administradores de las filiales habían indicado que estaban restringidos al correo electrónico exclusivo de la empresa y configuramos las reglas de seguridad adecuadas en Exchange.
Resumen
El resultado final fue que CSS delegó en los administradores de un bosque remoto de Active Directory la capacidad de crear y eliminar buzones de Exchange, mantener direcciones de correo electrónico, manipular la pertenencia a grupos de AD y afectar a la Lista Global de Direcciones, todo ello de forma controlada y sin conceder ningún derecho administrativo en el bosque central corporativo.
Por lo tanto, si tiene una necesidad similar de delegar opciones administrativas a usuarios sin privilegios, como el mantenimiento de buzones de Exchange o la pertenencia a grupos, puede plantearse utilizar FIM para hacerlo.
Para terminar, añadiré que cuando realizamos este proyecto para nuestro cliente, en realidad utilizamos la versión anterior de FIM (que se llamaba ILM) porque en aquel momento FIM aún no había salido al mercado. La herramienta ILM que utilizamos se convirtió en el motor de sincronización en FIM y es sólo una parte de la funcionalidad que ahora proporciona FIM. Hay muchas más opciones de delegación más allá de lo que he descrito aquí en la versión actual de FIM.