Dentro de SharePointIntegración de directorios de SharePoint

Pav Cherny

Descarga de código disponible en: SharePoint2008_09.exe(2.775 KB)

Contenido

Servicio de administración de directorios de SharePoint
Servicio de administración de directorios personalizado
SharePoint e ILM
Conclusión

Microsoft Windows SharePoint Services (WSS) 3.0 y Microsoft Office SharePoint Server (MOSS) 2007 incluyen capacidades de sincronización de directorios a través de un servicio de administración de directorios capaz de proporcionar objetos de grupo y contactos habilitados para correo para recursos de SharePoint en Active Directory. El aprovisionamiento de estos tipos de

objetos de destinatario para recursos de SharePoint® permite a los usuarios seleccionar bibliotecas, listas y grupos de SharePoint directamente de la libreta de direcciones de Microsoft® Outlook® al enviar documentos o información de otro tipo.

Los objetos de destinatario de SharePoint también ofrecen una manera de controlar la transferencia de mensajes y la conversión de formatos en una organización con Exchange Server. Entre otras funciones, puede evitar que remitentes no autenticados, como remitentes de correo no deseado, envíen mensajes a bibliotecas de SharePoint mediante el establecimiento de restricciones de entrega de mensajes en Active Directory®.

Las capacidades de administración de directorios de SharePoint son limitadas, si bien en el momento de redactar este artículo se entiende que Exchange Server 2003 es el sistema de mensajería subyacente. Por el momento, si usa Exchange Server 2007 o un sistema de mensajería de terceros, necesitará ampliar o reemplazar las características integradas de administración de directorios con una solución personalizada para lograr el nivel deseado de interoperabilidad.

En este artículo revisaremos brevemente las características de administración de directorios de SharePoint y, a continuación, describiremos un método para superar las limitaciones existentes. Nuestra premisa es que el servicio de administración de directorios integrado cumple sólo los requisitos de usuario más básicos. Los entornos con diversos sistemas de mensajería y plataformas de directorios necesitan una mayor flexibilidad y funcionalidad. Al reemplazar el componente integrado con una solución personalizada, podrá sincronizar información de destinatarios de SharePoint con cualquier solución de directorio que ofrezca capacidades de API o importación.

Para demostrar este punto, enseñaremos cómo sincronizar la información de destinatarios de SharePoint de un modo compatible con Exchange Server 2007. También es posible usar una solución personalizada para sincronizar la información de destinatarios con IBM Lotus Notes u otros sistemas.

Obtiene, además, la capacidad de centralizar los procesos de aprovisionamiento de directorios a partir de un servicio de metadirectorio, como Identity Information Server, que se incluye en Microsoft Identity Lifecycle Manager (ILM) 2007 Feature Pack 1 (FP1). En especial, demostraremos cómo integrar SharePoint con ILM 2007 para coordinar el aprovisionamiento de objetos de directorio para bibliotecas de documentos de SharePoint. En el material complementario de este artículo, disponible en la sección Descargas de código de .com, encontrará las herramientas, el código fuente, así como instrucciones detalladas para crear esta solución.

Servicio de administración de directorios de SharePoint

A diferencia de Exchange Server, que usa Active Directory para casi toda la información de configuración y destinatarios, SharePoint se basa en bases de datos de configuración y contenido. SharePoint debe por tanto propagar la información de destinatarios correspondiente a las bibliotecas, listas y grupos habilitados para correo de sus bases de datos a un directorio. Después de todo, los clientes de mensajería esperan encontrar información de destinatarios en una libreta de direcciones, que se genera por lo general a partir de objetos de directorio.

SharePoint incluye de fábrica un servicio de administración de directorios para este fin que forma parte del servicio web de integración de correo electrónico (Share­point­EmailWS.asmx) que podrá configurar en Administración central de SharePoint 3.0, en la página Operaciones, en Configuración del correo electrónico entrante. En la figura 1 se ilustra el funcionamiento del servicio de administración de directorios integrado.

fig01.gif

Figura 1 Arquitectura del servicio de administración de directorios de SharePoint (haga clic en la imagen para ampliarla)

Cuando habilita una granja de servidores web para la administración de directorios y, a continuación, asigna una dirección de correo electrónico a una biblioteca, lista o grupo para que reciban mensajes, como cuando usa EmailSettings.aspx, está llamando implícitamente al servicio web de integración de correo electrónico para que proporcione los objetos de destinatario correspondientes en Active Directory. Primero, SharePoint almacena la información de dirección de correo electrónico en la base de datos de contenido. A continuación, SharePoint envía la solicitud de aprovisionamiento en su nombre al servicio web de integración de correo electrónico usando para ello la identidad de la cuenta del grupo de aplicaciones web. Si la solicitud de aprovisionamiento falla, obtendrá la información de las direcciones de correo electrónico en la base de datos de contenido pero sin los objetos de destinatario correspondientes en Active Directory.

Recursos adicionales

Las solicitudes de aprovisionamiento pueden fallar por diversos motivos. El motivo más común es perder los permisos de acceso a la metabase IIS. Puesto que SharepointEmail­WS.asmx está diseñado para ser un servicio web para cuentas de grupos de aplicaciones, consulta la metabase IIS para comprobar si el autor de la llamada es una cuenta de grupo de aplicaciones y deniega el acceso en caso contrario, independientemente de los niveles de permiso para el sitio de SharePoint y Active Directory de que disponga.

Sin embargo, SharepointEmailWS.asmx realiza esta comprobación de acceso con la identidad del autor de la llamada, por lo que la cuenta del grupo de aplicaciones autor de la llamada necesita tener acceso a la metabase para comprobar sus propios permisos de acceso. Esto le obliga a conceder a las cuentas de grupos de aplicaciones permisos elevados para poder realizar correctamente la operación.

Es evidente que la concesión de permisos elevados en un servidor web puede ser origen de problemas de seguridad. Hay mejores maneras de controlar el acceso a un servicio web ASP.NET. Además, SharePoint espera encontrar el servicio de administración de directorios en el sitio de Administración central; sin embargo, este sitio no está permanentemente disponible en una granja de servidores web bloqueada para reducir la superficie de ataque. Así pues, si desea usar el servicio de administración de directorios integrado en su entorno de producción de SharePoint, deberá aceptar la presencia de una configuración de seguridad debilitada.

Otras limitaciones existentes se deben al hecho de que el servicio de administración de directorios integrado se basa en una arquitectura cliente-servidor fuertemente emparejada. Microsoft.SharePoint.dll usa directamente System.DirectoryServices.dll, por lo que no es posible implementar una lógica propia para personalizar el proceso de aprovisionamiento. La implementación del servicio de administración de directorios integrado, por ejemplo, no escribe todos los atributos de destinatario de forma compatible con Exchange Server 2007 y, además, no se pueden personalizar las reglas de generación de atributos.

La imposibilidad de implementar una lógica propia también implica que no es posible personalizar el proceso de aprovisionamiento para implementar, por ejemplo, aprobaciones personalizadas. SharePoint es compatible con los procesos de aprobación para grupos; sin embargo, esta característica se basa en el sitio de Administración central. Aunque sólo los administradores de granjas de servidores de SharePoint pueden aprobar solicitudes pendientes, éstos no se encargan necesariamente de aprobar los procesos de aprovisionamiento de Active Directory.

Y lo que quizás sea más importante, no existen procesos de aprobación para bibliotecas de documentos y listas habilitadas para correo. Al habilitar la administración de directorios, concede a todos los administradores del sitio de la granja de servidores web el derecho de crear contactos y grupos habilitados para correo en Active Directory. Tampoco se puede estructurar la administración de destinatarios a partir de unidades organizativas, ya que todos los objetos de destinatario de cada granja de servidores web se colocan en una misma unidad organizativa.

No podrá mover los objetos de destinatario a otra unidad organizativa porque el servicio de administración de directorios espera encontrar los objetos de destinatario en la unidad organizativa de SharePoint, por lo que deberá conceder en Active Directory permisos administrativos a la cuenta del grupo de aplicaciones de Administración central. Tampoco hay manera de implementar la sincronización bidireccional entre SharePoint y Active Directory. Al cambiar los atributos de objetos en Active Directory, no se propagan los cambios de nuevo en el entorno de SharePoint.

Servicio de administración de directorios personalizado

Ahora que hemos determinado que el servicio de administración de directorios integrado ofrece espacio para aumentar la flexibilidad, hablemos de las diferentes alternativas. La buena noticia es que SharePoint permite implementar un servicio propio de administración de directorios. Lo único que hay que hacer es registrar el servicio web como servicio de administración de directorios remoto en Administración central de SharePoint 3.0, en la página Operaciones, en Configuración del correo electrónico entrante.

Para obtener instrucciones detalladas sobre cómo implementar y registrar un servicio web personalizado, consulte la hoja de cálculo "Directory Integration Based on a Custom Directory Management Service.xps" (Integración de directorios a partir de un servicio de administración de directorios personalizado) del material complementario. Asimismo, este servicio web personalizado muestra cómo proporcionar objetos de destinatario compatibles con Exchange Server 2007 en Active Directory sin cmdlet ni herramientas de administración de Exchange. El correspondiente código fuente se encuentra en la carpeta EmailIntegrationService. En la figura 2 se muestra la arquitectura de esta solución.

fig02.gif

Figura 2 Arquitectura del servicio de administración de directorios personalizado (haga clic en la imagen para ampliarla)

La interfaz del servicio web personalizado debe respetar la interfaz del servicio de administración de directorios, tal como se documenta en el SDK de SharePoint. Si busca "SharepointEmailWS" en el sitio web de MSDN® (msdn.microsoft.com), encontrará toda la información necesaria. Compruebe asimismo el archivo Service.cs de la carpeta EmailIntegrationService\App_Code del material complementario. Este archivo implementa la interfaz necesaria del servicio web, mientras que el código real de aprovisionamiento de objetos de Active Directory reside en SPRecipient.cs. La función UpdateRecipientAttributes de SPRecipient.cs, por ejemplo, genera los atributos necesarios de Exchange Server 2007. SPRecipient.cs es el archivo de código que debe reemplazar si desea desarrollar un servicio propio de administración de directorios personalizado.

Un servicio de administración de directorios personalizado es una herramienta útil para solventar los requisitos de permisos elevados e integrar SharePoint con sistemas de directorios o mensajería de terceros. No es necesario comprobar la metabase IIS para limitar el acceso al servicio web a cuentas de grupos de aplicaciones. En su lugar, puede agregar una sección <authorization> al archivo web.config del servicio web (vea el material complementario para obtener un ejemplo).

Sin embargo, quedan pendientes varios problemas, ya que no es posible controlar si SharePoint llama al servicio de administración de directorios y cuándo lo hace. Entre otros casos, SharePoint no llama al Servicio de administración de directorios cuando elimina una lista o biblioteca de documentos habilitada para correo, por lo que permanece un objeto no válido de destinatario en Active Directory. Tanto si usa el servicio de administración de directorios integrado como una solución personalizada, no puede garantizar que la información de destinatario en Active Directory sea coherente con los recursos de SharePoint.

SharePoint e ILM

Para lograr una integración de directorios confiable, considere la posibilidad de implementar un paquete de administración de directorios profesional, como ILM. Este sistema se basa en un modelo de sincronización de directorios de extracción. Los agentes de administración extraen la información de sus orígenes conectados, la importan en un metadirectorio común y exportan la información del metadirectorio a sus sistemas conectados. Los sistemas de origen no insertan por lo general su información en el metadirectorio. Al extraer la información, puede garantizar la coherencia con cada ciclo de sincronización.

Otra ventaja es que ILM incluye de fábrica varios agentes de administración para la compatibilidad con Active Directory, Lotus Notes y otros sistemas diversos. Lo único que necesita hacer es implementar un agente de administración personalizado para SharePoint con el objetivo de sincronizar la información de SharePoint con otra plataforma de directorios compatible en el entorno.

Debe implementar la lógica para recuperar la información deseada de SharePoint, guardar la información en un archivo de importación y transferir la información importada al metadirectorio. Sin embargo, no necesita implementar la lógica para exportar esa información del metadirectorio a Active Directory ni a otra plataforma de directorio. En la figura 3 se muestra cómo implementar la sincronización de SharePoint a Active Directory mediante ILM. También es posible ejecutar la sincronización en el sentido contrario para proporcionar recursos de SharePoint a objetos de directorio, aunque esta función pueda considerarse innecesaria u opcional.

fig03.gif

Figura 3 Integración de directorios basada en Identity Lifecycle Manager (haga clic en la imagen para ampliarla)

Un punto de partida interesante para desarrollar un agente de administración de SharePoint es el artículo de Alex Tcherniakhovski "Conexión de ILM 2007 con listas de servicios de SharePoint" que encontrará en blogs.msdn.com/alextch/archive/2007/09/02/wsslistsandilm.aspx. Alex muestra cómo crear una solución de administración de directorios a partir de ILM que se basa en las solicitudes de aprovisionamiento de InfoPath® enviadas a una biblioteca de documentos. El agente de administración de Alex recupera todas las solicitudes aprobadas de la biblioteca de documentos y crea los objetos de metadirectorio correspondientes, que pueden exportarse a continuación a los directorios conectados.

No obstante, de forma predeterminada, SharePoint no genera solicitudes de aprovisionamiento basadas en InfoPath cuando se habilita para correo una lista o un grupo. Para llevar esto a cabo, puede usar un servicio de administración de directorios personalizado, aunque al hacerlo deberá hacer frente a los problemas de coherencia mencionados anteriormente, ya que SharePoint no llama al servicio de administración de directorios en cualquier circunstancia. Por este motivo, se recomienda que el agente de administración recupere la información de destinatario deseada de SharePoint directamente de las listas y grupos de su colección de sitios. Si necesita procesos de aprobación, puede generar solicitudes de aprovisionamiento basadas en InfoPath para recursos nuevos en el agente de administración y procesar posteriormente todas las solicitudes aprobadas.

Dispone de varias opciones para recuperar información de SharePoint. Puede leer la información directamente de las bases de datos de contenido, usar el modelo de objetos de SharePoint o hacer uso de los servicios web de SharePoint.

No se recomienda obtener acceso directo a las bases de datos de contenido, ya que las estructuras de bases de datos podrían cambiar en versiones futuras, con lo que dejaría de funcionar su solución de administración de directorios.

También puede resultar engañoso usar el modelo de objetos de SharePoint directamente en el agente de administración, puesto que el modelo de objetos requiere que ejecute el código de forma local, mientras que si instala ILM en un servidor web en cada granja de servidores de SharePoint de su entorno, puede complicar la infraestructura de administración de directorios.

Puede que se haya planteado usar los servicios web de SharePoint, pero eso crea otra dificultad porque no se puede acceder fácilmente a la información deseada a través de los servicios web de SharePoint, como, por ejemplo, la información de dirección de correo electrónico de grupos de SharePoint o la dirección de servidor de correo electrónico entrante para mostrar.

A la postre, parece que lo mejor es implementar un servicio web personalizado de SharePoint que use el modelo de objetos de SharePoint para recuperar la información deseada y devolverla al autor de la llamada en forma de documento XML. Ahora es posible centralizar la implementación de ILM e integrar cualquier número de granjas de servidores y colecciones de sitios a través de instancias individuales del servicio web personalizado de SharePoint, como se muestra en la figura 3.

Hay un último aspecto que vale la pena mencionar, y es el hecho de que la integración de directorios basada en ILM no evita tener que contar con un servicio de administración de directorios personalizado. Si bien este servicio personalizado no necesita realizar ninguna tarea porque ILM proporciona los objetos de directorio, debe proporcionar un servicio personalizado para poder habilitar la administración de directorios en Administración central de SharePoint 3.0. De lo contrario, no podrá asignar direcciones de correo electrónico a grupos, por poner sólo un ejemplo. En la figura 4 se muestra la arquitectura de la solución resultante.

fig04.gif

Figura 4 Integración de directorios de SharePoint basada en servicios web (haga clic en la imagen para ampliarla)

Es posible convertir el servicio de administración de directorios personalizado incluido en el material complementario en un servicio ficticio mediante la configuración del parámetro OpMode en el archivo web.config (<add key="OpMode" value="dummy"/>). Con esta configuración, el servicio personalizado siempre devuelve SUCCESS como respuesta a las llamadas de aprovisionamiento sin realizar tarea alguna.

Asimismo, el servicio personalizado expone un método ResolveUsers que podrá llamar el agente de administración de SharePoint para resolver los nombres de cuenta de usuario basados en NetBIOS en nombres distintivos, paso necesario para el aprovisionamiento de grupos. SharePoint devuelve la información de pertenencia a grupos en forma de lista de nombres de cuenta de usuario basados en NetBIOS; sin embargo, Active Directory espera nombres distintivos. Y eso es todo. Para obtener información sobre cómo implementar la solución resultante, consulte "Configuring Directory Integration based on ILM 2007.xps" (Configuración de la integración de directorios basada en ILM 2007) en el material complementario.

WSS 3.0 y MOSS 2007 incluyen un servicio de administración de directorios con el objetivo de integrar SharePoint con Exchange Server 2003 para la colaboración para múltiples plataformas basada en mensajería.

No obstante, hay algunas limitaciones. Los usuarios deben reemplazar el servicio de administración de directorios integrado con una solución personalizada. También es posible usar una solución de administración de directorios profesional como ILM para integrar SharePoint en una infraestructura de administración de directorios. Esto ofrece un nivel máximo de flexibilidad y ayuda a garantizar la coherencia de la información a través de un modelo de sincronización de extracción.

Pav Cherny es experto en TI y autor especializado en tecnologías de Microsoft para la colaboración y las comunicaciones unificadas. Sus publicaciones incluyen notas del producto, manuales de productos y libros centrados en operaciones de TI y administración de sistemas. Pav es presidente de Biblioso Corporation, una empresa especializada en servicios de documentación y localización administrados.