Acceso a datos seguro y modelos de objetos de cliente para complementos de SharePoint

En la evaluación de las opciones de acceso de datos para Complementos de SharePoint, tiene que valorar el entorno del complemento y tener en cuenta varios factores, como la comunicación entre el cliente y el servidor, y el nivel de permiso que necesita el complemento haga las tareas necesarias. También tiene que evaluar las API disponibles en el modelo para aplicaciones para SharePoint.

Información general sobre los datos en complementos de SharePoint

Es difícil imaginar un complemento de SharePoint (o cualquier complemento en cuestión) que no necesite consultar, almacenar o manipular datos. En su complemento, con frecuencia tendrá que recuperar y manipular datos de SharePoint, como elementos de listas y bibliotecas de documentos, metadatos o perfiles de usuario. De forma similar, puede que en determinados escenarios necesite obtener acceso a datos externos en el complemento de escenarios. El modelo de complementos de SharePoint proporciona varias opciones de conectividad y un amplio conjunto de API para obtener acceso a los datos y servicios que residen en SharePoint y en sistemas externos.

Al diseñar su complemento y planear el acceso a los datos, tiene que tomar dos decisiones fundamentales:

  1. ¿Qué opción de conectividad se debe usar?
  2. ¿Qué API se debe usar para obtener acceso a los datos necesarios?

Las siguientes figuras resumen las diferentes opciones que proporciona el modelo para aplicaciones para SharePoint. En las siguientes secciones, se examinará cada opción en detalle y obtendrá información sobre cuándo usarlas.

La ilustración 1 muestra las opciones disponibles para obtener acceso a datos de SharePoint en su complemento. Cuando se trabaja con estos escenarios, debe decidir si desea realizar la autenticación y la comunicación en SharePoint con (1) OAuth o con (2) la biblioteca entre dominios. Para la API de acceso a datos, debe decidir entre (3) el modelo de objetos de cliente (modelos de objetos de cliente .NET o JavaScript) o (4) la transferencia de estado representacional (REST).

Tenga en cuenta que también puede obtener acceso a determinados datos mediante (5) receptores de eventos remotos; sin embargo, el escenario principal para los receptores de eventos remotos es la ejecución de código remoto.

Figura 1. Opciones para usar datos de SharePoint en el complemento

Opciones para usar datos de SharePoint en el complemento

La ilustración 2 muestra las opciones que tiene para obtener acceso a datos externos en el complemento. Cuando se trabaja con estos escenarios, debe decidir si desea usar (1) el proxy web, (2) tipos de contenido externo o (3) la biblioteca entre dominios con una página proxy personalizada para autenticarse y comunicarse con sistemas o servicios externos. También puede usar (4) el modelo de objetos de cliente (modelos de objetos de cliente .NET o JavaScript) o (5) la transferencia de estado representacional (REST).

Figura 2. Opciones para usar datos externos en el complemento

Opciones para usar datos externos en el complemento

Opciones de conectividad de datos para complementos de SharePoint

Debe tener en cuenta varios aspectos al trabajar con datos en el complemento. Por ejemplo, ¿qué ruta usan los datos? ¿Proviene del servidor o va por el servidor? ¿Va por el cliente? ¿Es correcto autenticarse como el usuario que ha iniciado sesión? ¿El complemento necesita privilegios elevados? Las secciones siguientes pueden ayudarle con estas y otras preguntas que pueda tener.

Conectividad de datos de SharePoint

Las siguientes opciones de conectividad están disponibles al obtener acceso a datos de SharePoint (vea la ilustración 1):

  • OAuth: un protocolo abierto que permite la autorización segura de forma simple y estándar. OAuth permite a los usuarios aprobar una aplicación para actuar en su nombre sin compartir su nombre de usuario y contraseña. Puede usar OAuth con código de servidor. Es una buena opción si debe ejecutar un proceso no interactivo o si necesita aumentar los privilegios a otros que sean distintos de los del usuario que ha iniciado la sesión. Para obtener información sobre OAuth, vea Autorización y autenticación de complementos de SharePoint.

  • Biblioteca entre dominios: una alternativa del lado cliente en forma de archivo JavaScript (SP.RequestExecutor.js) hospedado en el sitio web de SharePoint al cual puede hacer referencia en el complemento remoto. La biblioteca de dominios le permite interactuar con más de un dominio en la página de complemento remoto mediante un proxy. Es una buena opción si prefiere que el código del complemento se ejecute en el cliente en lugar de en el servidor, o si existen barreras de conectividad, como firewalls, entre SharePoint y su infraestructura remota. Para obtener más información, vea Cómo obtener acceso a los datos de SharePoint desde complementos con la biblioteca entre dominios.

  • Receptores de eventos remotos: puede usar receptores de eventos remotos para manejar los eventos que ocurren en un elemento del complemento, como una lista, un elemento de lista o un sitio web. Estos eventos son similares a los de una solución de SharePoint tradicional, excepto que pueden funcionar con los componentes remotos del complemento de SharePoint. Tenga en cuenta que algunas propiedades del elemento están disponibles para el receptor de eventos remotos. Para obtener más información, vea Crear un receptor de eventos remotos en complementos de SharePoint. De forma similar, puede usar receptores de eventos de complemento para personalizar la forma mediante la cual el complemento se instala, se actualiza y se desinstala. Para obtener más información, vea Crear un receptor de eventos de complemento en complementos de SharePoint.

Opciones de conectividad de datos de SharePoint: ¿Qué opción de conectividad tengo que usar?

La tabla siguiente enumera los requisitos y los escenarios que se pueden encontrar al crear complementos comunes. Una x en la columna indica qué opción se puede usar en cada caso.

Tabla 1. Opciones de conectividad de datos de SharePoint

Requisito/escenario OAuth Biblioteca entre dominios
Uso tecnologías del lado cliente (HTML + JavaScript). x
Deseo usar interfaces REST. x x
Existe un firewall entre SharePoint y mi complemento remoto;
además, tengo que emitir las llamadas a través del explorador.
x
Mi complemento necesita obtener acceso a recursos como el usuario que ha iniciado la sesión. x x
Mi complemento necesita elevar privilegios a otros que no sean
los del usuario que actualmente ha iniciado la sesión.
x
Mi complemento necesita actuar en nombre de un usuario distinto al que ha iniciado la sesión. x
Mi complemento necesita ejecutar operaciones solo mientras el usuario tiene iniciada la sesión. x x
Mi complemento necesita ejecutar operaciones incluso cuando el usuario no ha iniciado la sesión. x
Mi complemento necesita ejecutar código remoto como respuesta a un evento en SharePoint.

Dado que los receptores de eventos remotos se crean sobre OAuth, una comparación en esta tabla no es la mejor forma de decidir si deben utilizarse o no. Use los receptores de eventos remotos cuando necesite ejecutar código remoto además del intercambio de datos.

Conectividad de datos externos

Las siguientes opciones de conectividad están disponibles al obtener acceso a datos externos (vea la ilustración 2):

  • Proxy web: Como desarrollador, puede usar el proxy web expuesto en las API de cliente, como JSOM. Al usar el proxy web, la solicitud inicial se emite en SharePoint. A su vez, SharePoint solicita los datos al punto de conexión especificado y envía la respuesta a la página. Use el proxy web cuando quiera que la comunicación se produzca en el nivel de servidor. El proxy web está diseñado para acceder a datos no estructurados que no requieren autenticación. Para obtener más información, vea Consulta de un servicio remoto mediante el proxy web en SharePoint.

  • Tipos de contenido externo: puede crear complementos que tienen acceso a datos externos de SAP, Netflix y propietario y otros tipos de datos sin necesidad del Administrador de espacios empresariales. Se mantiene el acceso a las aplicaciones externas a través de Servicios de conectividad empresarial (BCS), que proporciona una interfaz coherente y uniforme que puede ser usada por otras aplicaciones de SharePoint. Los ECT de ámbito de aplicación son una buena opción si se usa un modelo de BCS y el acceso a los datos requiere autenticación. Para obtener más información, vea Tipos de contenido externo de ámbito de complemento en SharePoint.

  • Página de proxy personalizada para la biblioteca entre dominios: Puede usar la biblioteca entre dominios para acceder a los datos del complemento remoto si proporciona una página de proxy personalizada hospedada en la infraestructura del complemento remoto. Como desarrollador, es responsable de la implementación de la página de proxy personalizada y debe proporcionar lógica personalizada, como el mecanismo de autenticación para el complemento remoto. Use la biblioteca entre dominios con una página de proxy personalizada si desea que la comunicación se establezca en el nivel de cliente. Para obtener más información, vea Crear una página de proxy personalizada para la biblioteca entre dominios en SharePoint.

Opciones de conectividad de datos externos: ¿Qué opción de conectividad tengo que usar?

La tabla siguiente enumera los requisitos y los escenarios que se pueden encontrar al crear complementos comunes. Una x en la columna indica qué opción se puede usar en cada caso.

Tabla 2. Opciones de conectividad de datos externos

Requisito/escenario Proxy web Tipos de contenido externo Biblioteca entre dominios con página de proxy personalizada
Uso tecnologías del lado cliente (HTML + JavaScript). x x x
No puedo agregar páginas o componentes al servicio o el complemento remoto. x x
Deseo usar interfaces REST. x x x
Deseo usar el CSOM JavaScript. x x x
Deseo usar el CSOM .NET. x x
No hay conectividad directa entre la infraestructura de SharePoint y mi complemento. Necesito emitir llamadas a través del explorador. x x
Mi complemento necesita obtener acceso a recursos como el usuario que ha iniciado la sesión. x x x

API de acceso a datos disponibles para complementos de SharePoint

Las siguientes opciones de la API están disponibles para obtener acceso a datos de SharePoint desde el complemento:

  • Transferencia de estado representacional (REST): Para escenarios en los que necesita acceder a entidades de SharePoint desde tecnologías cliente que no usan JavaScript y no se basan en la plataforma .NET Framework, SharePoint proporciona una implementación de un servicio web REST que usa el protocolo Open Data (OData) para realizar operaciones CRUDQ (Crear, Leer, Actualizar, Eliminar y Consultar) en datos de SharePoint. Además, casi todas las API de los modelos de objetos de cliente tienen un punto de conexión REST correspondiente. Esto permite que el código interactúe directamente con SharePoint mediante cualquier tecnología que admita funcionalidades DE REST estándar. Para usar las funcionalidades de REST integradas en SharePoint, el código crea una solicitud HTTP RESTful a un punto de conexión que corresponde al objeto de SharePoint deseado. El servicio REST controla la solicitud HTTP y proporciona una respuesta en formato Atom o Notación de objetos JavaScript (JSON). Para obtener más información sobre REST en SharePoint, consulte Uso de operaciones de consulta de OData en solicitudes REST de SharePoint.

  • Modelo de objetos de cliente de .NET Framework (OM de cliente de .NET): Casi todas las clases del sitio principal y del modelo de objetos de servidor de lista tienen una clase correspondiente en el modelo de objetos de cliente de .NET Framework. Además, el modelo de objetos de cliente de .NET Framework también expone un conjunto completo de API para ampliar otras características, incluidas algunas características de nivel de SharePoint, como ECM, taxonomía, perfiles de usuario, búsqueda avanzada, análisis, BCS y otras. Para obtener más información sobre los modelos de objetos del lado cliente, vea Elegir el conjunto de API adecuado en SharePoint.

  • Modelo de objetos de cliente de JavaScript (JSOM): SharePoint proporciona un modelo de objetos de JavaScript para su uso en scripts insertados o archivos de .js independientes. Incluye toda la misma funcionalidad que el modelo de objetos de cliente de .NET Framework. JSOM es una manera útil de incluir código de SharePoint personalizado en un complemento, especialmente en un complemento hospedado en SharePoint, donde no se permite el código del lado servidor personalizado. También permite a los desarrolladores web usar sus aptitudes de JavaScript existentes para crear complementos de SharePoint con una curva de aprendizaje mínima. Para obtener más información sobre los modelos de objetos del lado cliente, vea Elegir el conjunto de API adecuado en SharePoint.

Es posible que haya API adicionales que pueda usar en el complemento de SharePoint al acceder a datos externos. Depende de las interfaces que los sistemas y servicios externos tienen para ofrecer. También debería considerar estas interfaces en el diseño.

Ver también