Validación de identidad en sitios privados

Validación de identidad en sitios privados

En los casos de uso que requieren la creación de conversaciones en sesiones autenticadas, es posible pasar los datos de identidad del cliente como indica la guía de instalación avanzada, pero en ocasiones se requiere un nivel de seguridad adicional que asegure que la identidad provista tiene su origen en la organización correspondiente y que no fue interceptado por algún ente malicioso para suplantar a otro cliente.
Esta capa extra de seguridad se consigue utilizando un HMAC generado en el servidor del sitio (no puede ser creado en el navegador). El HMAC se debe generar para cada cliente que ingrese al sitio privado.
Este tipo de instalación exige un desarrollo por parte del administrador del sitio. El departamento de informática debe estar al tanto y participar de la evaluación de este tipo de este desarrollo.

Pasos para la validación de identidad

1. HMAC por cliente

En el lado del servidor web se debe generar un HMAC por cada usuario que ingrese al sitio y pasar el resultado a Let's Talk.
Lo primero es definir un valor único de identificación por cliente, por ejemplo el email, el RUT o un identificador interno del sistema (a este valor lo llamaremos uid).
Con este valor de identificación se generará el HMAC utilizando la función de hash SHA256 más un secreto que debe ser solicitado a soporte@ltmenessenger.com.
El secreto debe tratarse con extremo cuidado y no publicarse ni en la web ni almacenarse en los repositorios de código.
A continuación se muestra un ejemplo para Ruby y el uid email:
  1. # client_hash
  2. OpenSSL::HMAC.hexdigest(
  3.   'sha256', # funcion de hash
  4.   'secreto-de-organizacion', # llave secreta (¡mantener segura!)
  5.   current_user.email #  uid del cliente
  6. )
Esto es un ejemplo, pero la implementación real depende de las herramientas disponibles en el servidor.

2. Inicialización de clientes validados

Una vez que el servidor genera el client_hash (HMAC), este valor debe agregarse a los scripts de inicialización de manera adicional a los otros valores que se envían.
De esta manera Let's Talk recibirá el client_hash que servirá como firma para validar la solicitud de autenticación del cliente.
El siguiente es un ejemplo de inicialización del chat utilizando el HMAC:
  1. window.$LT(function(messenger) {
  2.   messenger.setByName('[widget-name]');
  3.   messenger.settings({
  4.       client_hash: 'ad86bb13364e8b9ffbdd16f7091ee9d68ff87557cdba48f6423e64aed5da8c11',
  5.       organization_subdomain: '[subdomain]',
  6.       consumer: {
  7.           key:   '[consumer_key]',
  8.           token: '[consumer_token]'
  9.        },
  10.       visitor: {
  11.           name:  'Client Demo',
  12.           email: 'client.demo@letsta.lk',
  13.           attrs: {
  14.              one_key: 'one_value',
  15.              another_key: 'another_value'
  16.           }
  17.      }
  18.   });
  19. };

3. Activación de la validación por HMAC

Una vez desarrolladas las funciones descritas en los pasos 1 y 2 se debe activar el control validación de identidad en la página de ajustes en las configuraciones avanzadas. De esta forma el sistema omitirá cualquier instrucción de inicialización de clientes que no contenga el HMAC.

    • Related Articles

    • Habilitar google analytics en widget web

      Cada ID de seguimiento estará relacionado a un solo widget. Habilitar id de seguimiento de google analytics Antes de la instalación de google analytics,  se deberán realizar los siguientes pasos dentro de la plataforma de administración de google: ...
    • Alertas configurables en el Panel de control

      Alertas configurables en el Panel de Control Las alertas configurables en el Panel de control permiten una mejor visualización de los datos en tiempo real. Las alertas están implementadas en las siguientes categorías de la sección "Administrar":  1) ...
    • Instalación del Widget

      El widget web permite cubrir una diversidad de casos de uso muy amplia, y para cada uno de ellos puede requerir diferentes componentes y parámetrosnde la API. Algunos ejemplos de los casos son: Lugares públicos, donde cualquier persona puede acceder, ...
    • Administración de Notificaciones

      A continuación se describirá la administración de las notificaciones gatilladas por el widget web: Administración de notificaciones Las aplicaciones de notificación serán creadas por el equipo de soporte de la plataforma. A través de este artículo se ...
    • Instalación AnyDesk

      Pasos a seguir 1. Instalar el siguiente programa: https://anydesk.com/platforms Allí verán la opción disponible de descarga para el tipo de dispositivo donde se instalará. Ejemplo: "AnyDesk.exe" 2. Se deberá hacer llegar a Lets Talk el número ...