Elementos web aislados
Con esta funcionalidad, puede crear elementos web que se comunican de forma segura con las API protegidas con Azure AD sin exponer el token de acceso a los demás componentes de la página o incluso los scripts del espacio empresarial.
Por qué elementos web aislados
Para permitir que las soluciones de SharePoint Framework accedan de forma segura a API protegidas con Azure AD, puede usar la administración de la API para especificar a qué API pueden acceder los scripts en su espacio empresarial y con qué permisos. A continuación, usando SharePoint Framework, podrá obtener fácilmente un token de acceso de la API específica. A la vez que simplifica significativamente la comunicación con las API protegidas con Azure AD, permite que todos los scripts, no solo determinadas soluciones de SharePoint Framework, obtengan un token de acceso para cualquiera de las API autorizadas. Si uno de los scripts que usa en su inquilino se aprovecha, puede tener acceso a cualquiera de las API aprobadas en nombre del usuario actual.
Los elementos web aislados introducen una nueva forma de aislar el acceso a las API protegidas con Azure AD y asegurar que solo determinados elementos web de SharePoint Framework puedan obtener un token de acceso de la API específica.
Cómo funcionan los elementos web aislados
Importante
La funcionalidad de los elementos web aislados está disponible solo en SharePoint Framework v1.8 y versiones posteriores. Los elementos web aislados solo se admiten en páginas modernas. Aunque es posible que pueda agregar elementos web aislados a páginas clásicas, tras la publicación, el elemento web no se representará ni generará error. Los elementos web aislados solo se pueden instalar en el catálogo de aplicaciones del espacio empresarial. No funcionarán desde un catálogo de aplicaciones de colección de sitios.
Las soluciones que usan la funcionalidad de elementos web aislados tienen una marca específica establecida en los metadatos del proyecto en el archivo *.sppkg . Al implementar estas soluciones en el catálogo de aplicaciones, todas las solicitudes de permisos de API se especifican como aisladas.
Después de aprobar una solicitud de permiso de API aislada, SharePoint creará otra aplicación de Azure AD en el Azure AD vinculado al espacio empresarial de Microsoft 365. Esta aplicación de Azure AD es específica para la solución de SharePoint Framework que solicitó los permisos de API y tendrá establecidos los permisos de OAuth como solicitó dicha solución. La dirección URL de retorno de la aplicación de Azure AD, que utiliza el flujo de OAuth implícito, se establecerá en un dominio único que está ligado a esa aplicación de SharePoint Framework específica.
Se mostrarán todos los elementos web de soluciones con permisos aislados, cuando se agregue a una página, usando un iframe que señale a un dominio único vinculado a la solución de SharePoint Framework concreta. De esta forma, SharePoint Framework puede aplicar permisos exclusivos de API y asegurarse de que ninguna otra solución o script en el espacio empresarial puede obtener un token de acceso a estas API.
Scaffolding de un proyecto que utiliza permisos aislados
Al aplicar scaffolding a un nuevo proyecto de SharePoint Framework destinado a SharePoint Online, el generador de Yeoman de SharePoint Framework mostrará el siguiente mensaje:
¿Los componentes de la solución necesitarán permisos para acceder a las API web que son exclusivas y no se compartirán con otros componentes en el espacio empresarial?:
Si la respuesta es Sí, el generador agrega una marca a la configuración del proyecto en el archivo config/package-solution.json estableciendo la propiedad isDomainIsolated
en true
. Como la capacidad de elementos web aislados se aplica solo a elementos web, el generador solo le permitirá crear elementos web en el proyecto.
Importante
En teoría, podría crear manualmente una extensión SharePoint Framework en un proyecto que use permisos aislados. Sin embargo, es una mala idea, algo que nunca debe hacer y no se admite.
Si la extensión que ha agregado se ha comunicado con las API protegidas con Azure AD, no podrá recuperar el token de acceso de forma aislada y se producirá un error en tiempo de ejecución.
Comunicarse con las API
A pesar de que el elemento web usa permisos aislados, no hay nada específico sobre cómo obtener un token de acceso para una API protegida con Azure AD en el código. Además, aunque en el tiempo de ejecución se cargarán elementos web aislados dentro de un iframe que señala a un dominio único, puede comunicarse con las API de REST de SharePoint, de la misma manera que lo haría en elementos web no aislados.
Implementar soluciones con elementos web aislados
Las soluciones con elementos web aislados se implementan del mismo modo que las soluciones de SharePoint Framework normales. La única diferencia es que las solicitudes de permisos de API se implementan como aisladas. Esto es claramente visible en la página de administración de la API, donde las solicitudes de permisos API se agrupan por la solución a la que se aplican.
Los permisos API concedidos en el nivel de inquilino pueden usarse con cualquier solución de SharePoint Framework o parte de la secuencia de comandos en el espacio empresarial. Los permisos aislados por otro lado, solo pueden usarse con la solución que los solicitó.
Usar elementos web aislados
Cuando se agregan a la página, se muestran elementos web aislados usando un iframe. Este iframe apunta a un dominio único asignado para la solución de SharePoint Framework donde se encuentra el elemento web. También se hace referencia a este dominio en la URL de la aplicación de Azure AD que se creó para hospedar los permisos aislados para la solución de SharePoint Framework determinada. El dominio único le permite comprobar que solo los elementos web de la solución de SharePoint Framework determinada puedan obtener un token de acceso para el conjunto de permisos aislados.
Panel de propiedades para elementos web aislados
El panel de propiedades de los elementos web aislados se representa como un iframe independiente con una instancia adicional del mismo elemento web. Aporta algunos detalles que los desarrolladores deben tener en cuenta:
- Los eventos del ciclo de vida del elemento web aislado, como
render
, se llamarán dos veces: una para el propio elemento web y otra para el panel de propiedades. - El tamaño del iframe del panel de propiedades se limita a las dimensiones del panel. Tenga en cuenta si planea usar modales o controles anchos en el panel de propiedades.
Eliminación de elementos web aislados
El método onDispose
para elementos web aislados no se puede llamar porque la eliminación del iframe del DOM limpia automáticamente todos los recursos, incluidas las conexiones de socket, asociados al documento del iframe.
Actualizar un proyecto existente para usar permisos aislados
Si va a actualizar un proyecto existente de SharePoint Framework a v1.8.0 y desea usar la funcionalidad de permisos aislados, puede hacerlo estableciendo en el archivo config/package-solution.json la propiedad isDomainIsolated
en true
. Deberá asegurarse de que el proyecto contiene solo elementos web.
Después de cambiar el proyecto para usar permisos aislados, deberá volver a implementar el proyecto. Esto emitirá nuevas solicitudes de permiso de API, aisladas para la solución, que tendrá que aprobar el administrador de inquilinos.
Eliminar soluciones con permisos aislados
Al aprobar permisos aislados de API, SharePoint crea una aplicación dedicada de Azure AD específica para la solución de SharePoint Framework que solicita los permisos. Cuando se quita la solución de SharePoint Framework del catálogo de aplicaciones, no se eliminan los permisos de la API ni la aplicación de Azure AD.