Saltar al contenido principal Saltar al contenido complementario

Migrar mashups

No todas las mashups se implementan de la misma manera. Considere el contenido siguiente como una guía que describe algunas de las consideraciones necesarias en el proceso de migración de mashups. Asegúrese de haber completado lo siguiente antes de intentar migrar mashups:

  • Haber implementado y configurado un espacio empresarial inquilino de Qlik Cloud.

  • Los usuarios pueden autenticarse a través de IdP, y las aplicaciones necesarias se han migrado a los espacios compartidos o administrados adecuados, donde los usuarios tienen permisos de visualización como mínimo. Para obtener información acerca de los permisos en espacios, consulte Gestionar permisos en espacios compartidos y Gestionar permisos en espacios administrados.

  • Tener acceso al espacio empresarial inquilino con el rol de administrador de espacio empresarial (requerido para crear una integración web).

También debe estar familiarizado con la forma en que las mashups de Qlik Sense se implementan normalmente con JavaScript y HTML, ya sea que incrusten objetos solo con IFrames o con las API de Qlik Capability.

Para mayor claridad, las nuevas mashups se referirán a las existentes en Qlik Cloud y las antiguas mashups se referirán a las existentes en Qlik Sense administrado por el cliente.

Integraciones Web

Sus nuevas mashups en Qlik Cloud cargarán e inscrustarán contenido desde su espacio empresarial inquilino de Qlik Cloud en lugar de Qlik Sense administrado por el cliente. Debe configurar una integración web en Qlik Cloud para que pueda identificar el sitio web de origen de su mashup.

Las integraciones web son un mecanismo de seguridad que permite que los sitios web que presentan una identificación ID válida asociada con una lista de inclusión de URL generen visualizaciones incrustadas. Cualquier aplicación web que interactúe con Qlik Cloud requiere de la configuración de una integración web en su espacio empresarial inquilino.

Crear una integración web en Qlik Cloud

Debe ser un administrador de espacio empresarial inquilino en Qlik Cloud para crear una integración web.

Haga lo siguiente:

  1. En la Consola de gestión, vaya a la sección Web y haga clic en Crear nuevo en la esquina superior derecha.
  2. En el cuadro de diálogo, asigne un nombre a la integración web.

  3. Escriba la dirección del origen en el siguiente formato: https://domain.com. Luego, haga clic en Agregar para agregar el origen a la lista de permitidos.

    Nota informativaPuede agregar más de un origen.
  4. Haga clic en Crear.
Crear una integración web

Una vez que cree la integración web, se le proporcionará una identificación. Este es el ID de integración web de Qlik para su mashup, que es un atributo o parámetro obligatorio en el nuevo código de la mashup.

ID de integración Web

Ejemplo de ID de integración Web

Para más información sobre cómo crear integraciones web, consulte Administrar integraciones web.

Autenticación

Las mashups en Qlik Sense administrado por el cliente generalmente gestionan la autenticación a través de un proxy virtual, donde el mecanismo de autenticación está preconfigurado. Las opciones incluyen Header, Ticket, SAML, JWT, OpenID Connect (OIDC) y Anónimo, entre otras. Para más información, vea Soluciones de autenticación (solo en inglés).

En su antigua mashup de Qlik Sense administrado por el cliente, la autenticación generalmente se maneja en el código antes de que los recursos, incluidos los archivos estáticos necesarios y las bibliotecas de Qlik se carguen a través de este proxy virtual.

Por ejemplo,

  • Con Ticket y JWT, generalmente hay una llamada al módulo de autenticación de back-end para crear de forma segura un ticket Qlik o un token JWT.

  • Con Header, algún módulo subyacente o proxy inverso establece el encabezado apropiado.

  • Con OIDC y SAML, debe haber una redirección inicial al proveedor de identidad correspondiente que desencadena el flujo de autenticación para finalmente iniciar la sesión con Qlik Sense, para que pueda cargar recursos y comenzar a incrustar contenido.

Qlik Cloud no utiliza un proxy virtual. En su lugar, utiliza una integración web que crea en el espacio empresarial inquilino. Para la autenticación, están disponibles los dos mecanismos siguientes: 

  • Inicio de sesión interactivo: este mecanismo se basa en el IdP configurado que su espacio empresarial inquilino usa para el acceso regular. Este es el IdP de la cuenta de Qlik de forma predeterminada, o cualquiera de las opciones disponibles, como Okta, Auth0, ADFS, AzureAD, Salesforce, Generic y Keycloak.

  • JSON Web Tokens (JWT): este mecanismo de autenticación se basa en tokens JWT firmados que normalmente se generan de forma segura mediante un servicio de back-end. En este caso, debe haber un proveedor de identidad configurado en su espacio inquilino, del tipo JWT.

Mashups donde los objetos de Qlik tienen incrustadas varias API de capacidades

Autenticación mediante inicio de sesión interactivo

Posibles actualizaciones de código HTML

Al igual que sucede con su mashup de Qlik Sense administrado por el cliente, debe cargar dos archivos estáticos de Qlik en la sección <head> en html (qlik-styles.css y require.js). No obstante, con Qlik Cloud se puede acceder directamente a estos archivos sin necesidad de autenticación.

Posibles actualizaciones de código HTML

Posibles actualizaciones de código JavaScript

Si su mashup de Qlik Sense administrado por el cliente está usando las API de capacidad para incrustar e interactuar con objetos en Qlik Sense administrado por el cliente, revise el código siguiente, que en este ejemplo incorpora varias visualizaciones mediante la biblioteca Capability API de Qlik.

Posibles actualizaciones de código JavaScript

Variable de configuración y baseUrl para require

Con su nueva mashup de Qlik Cloud, la variable de configuración debe reflejar el host e webIntegrationId de su espacio empresarial inquilino. Además, dado que no hay un proxy virtual, el prefijo debe ser simplemente /. Puede establecer un atributo de identidad para que la sesión no se comparta y se use solo para el contexto de esta mashup. El puerto debe ser 443, lo que implica que isSecure siempre es verdadero.

La configuración de require debe contener su webIntegrationId, y baseUrl es más simple ya que las comunicaciones con Qlik Cloud siempre se realizan a través de https en el puerto 443.

Variable de configuración y baseURL que requerir

Cargar las API de capacidades

Antes de cargar la biblioteca de las API de capacidades de Qlik con require (js/qlik), verifique si el usuario ya inició sesión. Esto se puede hacer, por ejemplo, activando una llamada API REST para el punto de conexión de metadatos del usuario actual. Si el estado de respuesta no es 200, el código debe redirigir a la pantalla de inicio de sesión, inyectando dos parámetros en la URL : returnto (la URL real de su mashup) y qlik-web-integration-id.

La ejecución del código es la siguiente:

  • Compruebe si el usuario ya inició sesión con una solicitud GET al punto de conexión de la API de REST /api/v1/users/me.

    • Si es negativo (el estado de la respuesta no es 200), redirija a la pantalla de inicio de sesión/login y agregue los parámetros return to y qlik-web-integration-id.

    • Si es positivo (el estado de respuesta es 200), cargue la biblioteca de API de capacidades qlik/js con require y continúe usando este conjunto de API.

El código final tendrá un aspecto similar al siguiente ejemplo. Con JavaScript no existe una forma única de escribir el código perfecto, por lo que esta es solo una opción de código válida.

Autenticación mediante JSON Web Token (JWT)

Configurar un proveedor de identidad JWT

Un token JWT es el resultado del cifrado de algunos metadatos de usuario de carga útil (como nombre, correo electrónico, grupos, asunto) que se firma de forma segura con una clave privada de certificado. Cualquiera que tenga la clave pública del certificado asociado puede validar el token y leer la información del usuario que contiene.

Para que Qlik Cloud valide sus tokens JWT firmados, debe configurar un proveedor de identidad en su espacio empresarial inquilino en Qlik Cloud, del tipo JWT. Una vez configurado, el espacio empresarial inquilino puede aceptar y validar solicitudes de API que contengan un token JWT portador debidamente firmado.

  1. En la Consola de gestión, seleccione Proveedor de identidad en la sección Configuración para crear uno nuevo.

    Crear una configuración de proveedor de identidad con tipo JWT

  2. Pegue la clave pública de certificado en formato PEM en el recuadro Certificate superior.

  3. Si lo desea, puede especificar el Emisor e ID de clave, de todos modos se le proporcionarán estos valores después de la creación.

    Emisor e ID de clave para la configuración del proveedor de identidad

Actualizaciones potenciales del código del servicio backend del token JWT firmado

Con Qlik Sense administrado por el cliente, la carga útil para generar un token JWT solo requería el ID de usuario y el directorio de usuario de las notificaciones, según lo requiere el proxy virtual en Qlik Sense para la autenticación JWT. Con Qlik Cloud, esta carga útil requiere más y diferentes atributos de notificación.

Tendrá que ajustar el código de servicio de back-end de generación de tokens JWT para la carga útil, junto con las opciones de firma necesarias, para reflejar lo que se requiere con Qlik Cloud. Por ejemplo, el Emisor y el ID de clave del proveedor de identidad JWT son opciones de firma obligatorias. Vea Formato JWT para autorización de Qlik Sense para una descripción completa.

Posibles actualizaciones de código HTML

Al igual que sucede con su mashup de Qlik Sense administrado por el cliente, debe cargar dos archivos estáticos de Qlik en la sección <head> en html (qlik-styles.css y require.js). No obstante, con Qlik Cloud se puede acceder directamente a estos archivos sin necesidad de autenticación.

Posibles actualizaciones de código JavaScript

El concepto de código es similar al uso del inicio de sesión interactivo. Sin embargo, en este caso, en lugar de una redirección a la pantalla de inicio de sesión normal, debe iniciar una sesión JWT con una solicitud POST al punto de conexión /login/jwt-session, pasando los encabezados para el token portador JWT y la identificación id de la integración web.

  • Compruebe si el usuario ya inició sesión con una solicitud al punto de conexión de la API REST /api/v1/users/me.

    • Si es positivo (el estado de respuesta es 200), cargue y use la biblioteca de API de capacidades de qlik/js con require.

    • Si es negativo (el estado de respuesta no es 200), active una solicitud POST para iniciar la sesión JWT con el token JWT firmado dado.

      • Si es positivo, cargue y use la iblioteca de las API de capacidades de qlik/js con require.

      • Si es negativo, es probable que la autenticación JWT falle porque el JWT no es válido, caducó o no se aceptó.

El siguiente es un ejemplo de código del proceso descrito anteriormente.

API de capacidades y compatibilidad en Qlik Cloud

Aunque existe una compatibilidad casi completa entre Qlik Cloud y Qlik Sense administrado por el cliente cuando se utilizan las API de capacidades para su aplicación web, existen algunas diferencias sutiles o métodos no disponibles si usa esta biblioteca de JavaScript para sitios web con implementaciones de Qlik Cloud. Por ejemplo, la API Global no está disponible en Qlik Cloud.

Mashups donde los objetos de Qlik están incrustados con IFrames

Además de manejar la autenticación como se describe en Mashups donde los objetos de Qlik tienen incrustadas varias API de capacidades, debe estar familiarizado con la forma en que Qlik Cloud maneja la Política de seguridad de contenido (CSP).

Política de seguridad de contenido

La política CSP en Qlik Cloud bloquea el acceso a los objetos de Qlik desde otros dominios. Esto significa que al incrustar objetos de Qlik utilizando el enfoque de IFrame de API única, obtendrá el error de política frame-ancestors 'self'.

Error de política: frame-ancestors 'self'

Consulte la Política de seguridad de contenido para obtener información sobre cómo configurar CSP para que su mashup pueda usar IFrames para incrustar objetos Qlik Cloud.

Mashups que usan enigma.js

La biblioteca enigma.js le ayuda a comunicarse con Motor asociativo de Qlik en los entornos de JavaScript.

Además de la integración web requerida y el manejo de la autenticación de usuario, también debe considerar el concepto de falsificación de solicitud entre sitios (CSRF) al usar enigma.js en Qlik.

Falsificación de solicitud entre sitios (CSRF)

Qlik Cloud tiene contramedidas para protegerse contra la falsificación de solicitudes entre sitios (CSRF). Cualquier solución web con la que Qlik Cloud interactúe debe proporcionar un token CSRF válido en todas las llamadas que no sean GET REST, incluidas las conexiones WebSocket.

Al usar enigma.js en su aplicación web, ya sea en el código back-end o front-end, se crea una conexión WebSocket. Esto significa que se debe incluir un token CRSF como parámetro de la conexión WebSocket para que la biblioteca enigma.js abra una sesión segura con Qlik Cloud.

Una vez que el usuario haya iniciado sesión, se puede solicitar un token CSRF válido al punto de conexión /api/v1/csrf-token.

El siguiente ejemplo de código (con un usuario registrado) de enigma.js se usa en el código de front-end para abrir una aplicación y obtener el diseño.

Para ver un ejemplo de código completo, revise los siguientes tutoriales:

Visit the discussion forum at community.qlik.com

¿Esta página le ha sido útil?

No dude en indicarnos en qué podemos mejorar si encuentra algún problema en esta página o su contenido, como, por ejemplo, errores tipográficos, pasos que falta o errores técnicos.