Share via


Elementos web que hospedan aplicaciones externas como Silverlight

Última modificación: viernes, 15 de octubre de 2010

Hace referencia a: SharePoint Foundation 2010

En este artículo
Introducción
Distintos niveles de desarrollo
Acceso a datos entre dominios de Silverlight
Proveedor de aplicaciones externas
Creación de un elemento web de hospedaje

En los temas de esta sección se describe cómo hospedar aplicaciones que no son de SharePoint en elementos web. Se incluyen temas en los que se describe cómo permitir a los usuarios aprovechar el elemento web de Silverlight integrado en Microsoft SharePoint Foundation para hospedar una aplicación de Silverlight. El archivo ejecutable de la aplicación de Silverlight puede encontrarse en un dominio que no sea el de la aplicación web de SharePoint Foundation cuyas páginas contienen el elemento web de Silverlight. También puede crear elementos web de hospedaje de aplicaciones personalizados e incluso personalizar la arquitectura de SharePoint Foundation para el hospedaje de aplicaciones mediante la creación de un proveedor de la aplicación externa (EAP).

Introducción

Dentro de ciertas limitaciones, los usuarios de sitios web con derechos de colaborador pueden agregar elementos web que hospedan aplicaciones que no son de SharePoint, como aplicaciones de Silverlight, a las páginas web de SharePoint. Estas aplicaciones, incluso, se pueden hospedar en servidores fuera del dominio de la aplicación web de SharePoint Foundation, y pueden leer y escribir datos de SharePoint, siempre que se las haya registrado adecuadamente como entidad de seguridad de la aplicación. Estos elementos web proporcionan equipos de desarrollo a fin de integrar rápidamente aplicaciones que no son de SharePoint a sitios web de SharePoint Foundation.

Nota

Una aplicación es externa a una aplicación web de SharePoint Foundation (es decir, tiene un dominio distinto), si el URI del ejecutable de la aplicación es diferente al URI de la aplicación web en alguna de las cuatro maneras que se describen en el tema sobre comunicación y seguridad HTTP con Silverlight. Comunicación entre dominios.

Distintos niveles de desarrollo

La cantidad de trabajo de desarrollo que se debe realizar para integrar una aplicación a SharePoint Foundation varía, principalmente, de acuerdo a los siguientes factores.

  • Si el ejecutable de la aplicación está hospedado dentro de la aplicación web de SharePoint Foundation o en algún otro dominio externo.

  • Si es necesario que la aplicación lea y escriba datos de SharePoint Foundation.

  • Si se debe cambiar la configuración predeterminada que regula cómo se presenta el elemento web.

  • Si la aplicación necesita una configuración personalizada para ejecutarse en un elemento web de SharePoint Foundation.

  • Si se requiere una interfaz de usuario personalizada en SharePoint Foundation para crear y editar las propiedades del elemento web que hospeda la aplicación.

En los casos más sencillos, la aplicación que no es de SharePoint está ubicada dentro del mismo dominio que la aplicación web de SharePoint Foundationo está hospedada en una dirección URL externa, pero no necesita obtener acceso a datos de SharePoint. Cualquiera que sea la situación, no se requiere desarrollo de SharePoint. Cuando finalice el ejecutable, el administrador de la aplicación web implementa la aplicación en un servidor de aplicaciones o una biblioteca de documentos. A los usuarios que agregan un elemento web que puede hospedar una aplicación que no es de SharePoint se les solicita que suministren la dirección URL del ejecutable al agregar el elemento web. Si la aplicación se implementa localmente, puede obtener acceso a datos de SharePoint Foundation mediante el Modelo de objetos cliente administrado en el contexto del usuario actual. (Si la aplicación externa es una aplicación de Silverlight, usa la versión especial de Silverlight del modelo de objetos cliente).

Si la aplicación se va a implementar en un dominio distinto al de la aplicación web y si va a necesitar obtener acceso a datos de SharePoint, la integración requiere el uso del acceso a datos entre dominios de Silverlight (Silverlight CDA).

Acceso a datos entre dominios de Silverlight

La ventaja que tienen los usuarios de SharePoint Foundation para poder hospedar aplicaciones que están en un dominio distinto al de la aplicación web de SharePoint Foundation es que muchas de estas aplicaciones se pueden hospedar en un servidor de aplicaciones y estar disponibles para todas las aplicaciones web de la granja de servidores. Silverlight CDA permite que los administradores controlen los permisos de los servidores externos que hospedan las aplicaciones externas sin restringir en exceso la posibilidad que los usuarios tienen de agregar elementos web que hospedan estas aplicaciones a las páginas de elementos web. La aplicación inicia sesión en la aplicación web de SharePoint Foundation como un tipo de usuario distintivo conocido como ‘entidad de seguridad de la aplicación’. Los permisos de la aplicación consisten en un cruce entre los permisos que el administrador otorgó a este usuario especial y los permisos del usuario real que abrió la página web que contiene el elemento web que hospeda la aplicación.

Nota

Normalmente, si un servidor externo hospeda más de una aplicación usada en SharePoint Foundation, todas estas aplicaciones usarían las mismas credenciales de usuario de entidad de seguridad de la aplicación. Se pueden crear diferentes usuarios de entidad de seguridad de la aplicación para cada aplicación, pero no se puede evitar que el servidor use cualquier usuario de entidad de seguridad de la aplicación para cualquiera de sus aplicaciones.

Los siguientes son los elementos críticos de Silverlight CDA que los programadores deben conocer.

  • Un administrador de la granja de servidores debe habilitar el acceso a datos de SharePoint Foundation en una aplicación de un dominio externo mediante el registro de un proveedor de aplicaciones externas (EAP) y, por razones de seguridad, esto no puede llevarse a cabo en la interfaz de usuario de SharePoint Foundation. En su lugar, se debe realizar mediante programación. Puede incluir las instrucciones sobre el código necesario con la solución o suministrar una pequeña utilidad para que ejecuten los administradores de la granja de servidores. Para obtener más información acerca de la creación de este código de utilidad, vea Procedimiento para habilitar un proveedor de la aplicación externa.

    Nota

    El EAP solo debe registrarse una vez, incluso si se usan varias aplicaciones externas.

  • Debe crear un marcado XML de aplicación externa que proporcione a SharePoint Foundation la información que necesita sobre la aplicación. A los usuarios que agregan un elemento web que hospeda la aplicación se les solicita que suministren el marcado, por lo tanto éste se debe encontrar a disposición de los usuarios. Para obtener más información acerca de la creación de este marcado, vea Procedimiento para crear un marcado XML de aplicación externa.

  • El administrador de la granja de servidores debe crear una identidad de usuario por medio de la cual la aplicación externa iniciará sesión en SharePoint Foundation y este usuario debe estar configurado como ‘entidad de seguridad de la aplicación’. Por razones de seguridad, esta configuración no se puede llevar a cabo en la interfaz de usuario. Debe proporcionar una utilidad que asigne valores a ciertas propiedades del objeto SPUser que representa una aplicación que requiere acceso entre dominios a datos de SharePoint Foundation. Para obtener más información acerca de la creación de esta utilidad, vea Procedimiento para crear un usuario de entidad de seguridad de aplicación. Los propietarios de sitios web que desean que sus colaboradores puedan agregar un elemento web que hospede la aplicación deben agregar la entidad de seguridad de la aplicación como un usuario de sus sitios web.

  • Debe crear un controlador de solicitudes HTTP que se instale en el dominio de la aplicación externa. Las solicitudes de la aplicación externa a una aplicación web de SharePoint Foundation se dirigen en primer lugar a su controlador que posteriormente las reenvía, junto con un hash de seguridad y las credenciales de usuario, al servidor front-end web de SharePoint Foundation. Para obtener más información acerca de la creación de este controlador, vea el tema Procedimiento para crear un reenviador de solicitudes HTTP para aplicaciones externas.

  • El código de la aplicación de Silverlight que lee o escribe datos en la aplicación web de SharePoint Foundation usa una versión de Silverlight especial del modelo de objetos cliente de SharePoint Foundation que se implementa en sus propios ensamblados de cliente. Para obtener más información acerca de este modelo de objetos y su programación, vea Uso del modelo de objetos Silverlight e Implementación de Silverlight.

Nota

Si bien las tareas anteriores deben llevarse a cabo solo si existe un dominio externo y si éste necesita acceso a datos de SharePoint Foundation, puede resultar útil completarlas aunque no se cumpla una de estas condiciones. Por ejemplo, puede resultar útil usar un XML de aplicación externa para personalizar el ancho y el alto del elemento web.

Proveedor de aplicaciones externas

Un EAP es un tipo de motor de configuración y aprovisionamiento para elementos web que hospedan aplicaciones que no son de SharePoint. El EAP interpreta el XML de aplicación externa, administra la creación de los elementos web que hospedan la aplicación y administra la edición de las propiedades de los elementos web.

Existe un EAP predeterminado que se usa a menos que se registre un EAP personalizado. Solo puede haber un EAP para cada objeto SPWebService en la granja de servidores. De este modo, el mismo EAP administra todas las aplicaciones externas hospedadas en los elementos web de todas las aplicaciones web secundarias del mismo servicio web. Para obtener más información acerca de SPWebService y los servicios web, vea Jerarquía de servicios de Microsoft SharePoint Foundation y Antecedentes: Las entidades de servicios en Microsoft SharePoint Foundation.

Puede crear un EAP personalizado y sustituir el EAP predeterminado. A continuación se presentan algunos de los escenarios en los que esto puede resultar útil:

  • El elemento web que hospeda la aplicación que no es de SharePoint necesita un elemento de herramienta personalizado que usarán los usuarios para editar las propiedades del elemento web o para otras tareas, como la creación automática de un usuario de entidad de seguridad de la aplicación para la aplicación externa.

  • El elemento web necesita un cromo personalizado.

  • La aplicación de Silverlight, o más precisamente, el reenviador de solicitudes de la aplicación, necesita un hash cliente para poder verificar que las respuestas a las consultas que se recibieron del servidor front-end web de SharePoint Foundation no se han alterado. Para obtener más información acerca de los reenviadores de solicitudes, vea Procedimiento para crear un reenviador de solicitudes HTTP para aplicaciones externas.

  • El XML de aplicación externa del elemento web necesita incluir propiedades de configuración personalizada.

  • Se debe ejecutar lógica personalizada cuando se crean los controles secundarios del elemento web.

Para obtener más información sobre cómo crear un EAP personalizado, vea Procedimiento para crear un proveedor de aplicaciones externas personalizado.

Creación de un elemento web de hospedaje

SharePoint Foundation tiene un elemento web de Silverlight integrado. Si desea hospedar otro tipo de aplicaciones en un elemento web, puede derivar de ClientApplicationWebPartBase un nuevo tipo de elemento web. Para obtener más información acerca de la creación de un elemento web que hospede una aplicación que no es de SharePoint, vea Procedimiento para crear un elemento web que hospeda una aplicación externa.

Vea también

Tareas

Procedimiento para habilitar un proveedor de la aplicación externa

Procedimiento para crear un usuario de entidad de seguridad de aplicación

Procedimiento para crear un reenviador de solicitudes HTTP para aplicaciones externas

Procedimiento para crear un proveedor de aplicaciones externas personalizado

Procedimiento para crear un elemento web que hospeda una aplicación externa

Referencia

SPExternalApplicationRegistrationInformation

SPExternalApplicationRequestProperties

SPExternalApplicationRequestResult

SPExternalApplicationRegistrationException

SPExternalApplicationSettings

SPExternalApplicationProvider

ClientApplicationWebPartBase

SilverlightWebPart

Conceptos

Ciclo de vida de una solicitud de Silverlight a una aplicación web

Procedimiento para crear un marcado XML de aplicación externa

XML de aplicación externa

Otros recursos

Overview of Integrating External Applications with Web Parts