Autenticación segura en WhatsApp con Inpla: menos fricción, más control

Autenticación segura en WhatsApp con Inpla: menos fricción, más control

La idea detrás de Inpla era simple: permitir que los usuarios de Kutamma y woku interactuaran con nuestros sistemas directamente desde WhatsApp. Sin embargo, una cosa es la idea, y otra muy distinta es hacerla realidad sin volverse loco en el intento.

Cuando un problema te abruma, esquívalo estratégicamente

En nuestra hackatón inicial (de 48 horas que mutó a dos semanas, porque así funciona la vida tech), nos dimos cuenta de algo importante: la comunicación usuario-agente-agente era un tema en el que ni Diego ni yo éramos expertos. Hicimos pruebas con Azure OpenAI, pero los resultados fueron… en fin, "no logramos un resultado aceptable" es una forma elegante de decir que era un desastre.

Así que tomamos una decisión estratégica: evitar lo que no dominamos y atacar lo que sí podemos resolver rápido. Priorizar problemas solucionables antes que frustrarnos con los imposibles.

Meme this is fine, para representar la situación de cuando no se resuelve el core y se toma un camino alternativo.


Autenticación sin fricción (o cómo evitar que tu equipo te odie)

Primero, abordamos la autenticación del usuario a través de Inpla usando WhatsApp como interfaz. Queríamos que la fricción para los equipos de desarrollo fuera mínima. Pero como buenos CTOs, caímos en la eterna discusión:

  • "¿Realmente vale la pena hacer que esto sea seguro, o solo nos estamos agregando más trabajo?"

La respuesta vino con una lógica sencilla: si el beneficio es mayor al esfuerzo, se justifica. Después de todo, ya hemos creado lógica para autenticarnos con múltiples servicios antes. Así que, en lugar de seguir debatiendo, nos pusimos manos a la obra.

Decidimos hacer dos endpoints en cada servicio (Kutamma y woku) para registrar en Inpla:

  1. Buscar si el usuario existe.
  2. Generar un token que permita autenticarse vía Inpla.

Los dos endpoinst que programé en Kutamma.


La mecánica de autenticación en WhatsApp

Una vez definidos los endpoints, implementamos la lógica de autenticación de esta forma:

  1. Un usuario no autenticado inicia conversación con el bot de WhatsApp.
  2. El bot le pide su email registrado en el servicio.
  3. Inpla genera un código OTP y lo envía por correo.
  4. El usuario ingresa el código OTP en la conversación de WhatsApp.
  5. Inpla verifica el código y autentica el número de WhatsApp asociado a la empresa.

Imagen de la conversación con WhatsApp de una autenticación de Kutamma mediante Inpla.


Seguridad: no queremos que esto sea un desastre

La exposición de datos en una interfaz como WhatsApp es un riesgo real. No tienes control absoluto sobre la plataforma, así que la autenticación tenía que ser lo más segura posible.

Con este método, dimos el primer paso para que los agentes pudieran acceder a los servicios de Kutamma y woku por medio de Inpla sin comprometer la seguridad.


Ahora lo entretenido...

Esto es solo el inicio. Luego de que resolvimos la autenticación, empezó la parte divertida: hacer que los agentes realmente ejecuten tareas y sean útiles. Pero eso es historia para otro post…

Read more