logo

¿Tienes un reto en mente?

Escuchamos tus ideas para materializarlas en soluciones TI vanguardistas, generando valor, oportunidades reales y competitividad a tu empresa, comprometidos con un servicio ágil y personalizado.
soporte@gfourmis.com
+57 (2) 3707528 - +57 3193352486

Conectar Laravel con Qlik Sense (Parte 2)

¿Cómo conectar Laravel con Qlik Sense?. En este capítulo realizaremos los pasos necesarios para conectar nuestra aplicación desarrollada bajo el popular framework para PHP llamado Laravel.

En el servidor de Qlik Sense

Crear regla de acceso al stream

Permitir a los usuarios de un determinado directorio acceder con permisos de lectura al stream que queremos ser consumido desde la aplicación cliente.

Laravel con Qlik Sensee

QMC > Streams > Edit stream

 

Asignar acceso al usuario

Asignar una licencia al usuario que se autenticará desde la aplicación cliente.

Allocation user

QMC > Licence usage summary > User access rules > User access allocations

 

Generar certificados

Exportar los certificados para la máquina cliente: ingresar el nombre de la máquina, asignar una contraseña, seleccionar la opción de incluir la clave secreta y elegir el formato PEM.

Export certificate

QMC > Certificates

Los certificados generados se almacenan en la ruta C:\ProgramData\Qlik\Sense\Repository\Exported Certificates\<hostname>.

 

Autorizar máquina cliente

Ingresar los siguientes valores a la lista blanca: nombre de máquina, IP y subdominio de la máquina cliente.

White list

QMC > Virtual proxies > Edit virtual proxy

 

Para que surta efecto los cambios se debe reiniciar el servidor de Qlik Sense a través del administrador de tareas de Windows en la pestaña Servicios.

 

Configurar el firewall

 

En la máquina donde se ejecuta el servidor de Qlik Sense, debemos ir al firewall de Windows para habilitar los siguientes puertos:

  • 80
  • 443
  • 4248
  • 4244
  • 4243
  • 4242
  • 4747
  • 4343
  • 4748

En el servidor de la aplicación

Configurar certificados

Una vez conectados a la máquina cliente por SSH ejecutar el siguiente comando para crear el directorio que alojará los certificados previamente exportados desde la QMC.

sudo mkdir -p /home/user/qliksense/certificates/hostname

Copiar los certificados a la máquina cliente, los cuales fueron genrados previamente desde la QMC.

Client folder certificates

Asignar permisos al usuario asociado al servidor web de aplicaciones, en este caso, www-data, para Apache.

sudo chown -R www-data:www-data /home/user/qliksense/certificates

Crear aplicación

Previamente se había creado una instancia EC2 en AWS con sistema operativo Ubuntu (16.04), Apache (2.2), PHP (5.6) y CURL (7.47)

  1. Instalar Laravel Framework (5.1).
  2. Agregar dependencia guzzlehttp/guzzle (6.2) en Laravel (opcional).
  3. En el archivo .env definir las siguientes variables: QLIK_PROXY_REST_URI=https://my.subdomain.com:4243/qps/
    QLIK_CERT_PASSWORD=myS3cretPassw0r4
    QLIK_CERT_FILE=/home/user/qliksense/certificates/hostname/client.pem
    QLIK_CERT_KEY_FILE=/home/user/qliksense/certificates/hostname/client_key.pem
    QLIK_CERT_TYPE=PEM

Integrar Laravel con Qlik Sense

A partir del script Connecting with PHP de la documentación oficial de Qlik, se realizó una aplicación que tiene la siguiente lógica:

  1. Valida que el usuario se haya autenticado en la aplicación.
  2. Valida que el usuario tiene acceso a Qlik Sense (tabla local donde se relacionen los usuarios autorizados).
  3. Mediante una petición CURL con los datos especificados en las variables QLIK_* definidas en el archivo .env, autenticar el usuario ante el servidor de Qlik Sense.
  4. Si la autenticación es exitosa, obtener la respuesta del servidor de Qlik Sense y extraer los encabezados.
  5. Obtener el valor del item ‘X-Qlik-Session’.
  6. Crear una cookie con el nombre ‘X-Qlik-Session’, el valor obtenido en el paso anterior, tiempo de expiración 1 hora, ruta ‘/’, y dominio de la apliación ‘subdomain.com’.
  7. Redirigir el usuario a la página principal de la aplicación.
  8. En esta página principal debe existir un enlace a las páginas secundarias donde se ha embedido cada unos de las visualizaciones de Qlik Sense mediante iframe.
Felipe Rojas
Felipe Rojas

Emprendedor y entusiasta, usa la tecnología en pro de una Colombia más participativa, promoviendo y generando ideas de negocio innovadoras, es un líder innato dispuesto a escuchar a la gente.

1 Comentario
  • Avatar
    Alfredo Cortes
    Responder
    Publicado en 9:53 am, 30 junio, 2018

    Es un tema interesante, aunque se podría mostrar más detalles de la lógica en Laravel.

Escribe un comentario

Comentario
Nombre
Correo electrónico
Sitio web