Skip to content

Autenticacion y Seguridad

7.1 Inicio de Sesion

El acceso a la plataforma requiere tres datos:

  • Tenant (Empresa): identificador unico de la empresa
  • Correo electronico: direccion de correo registrada
  • Contrasena: contrasena definida en el registro o modificada posteriormente

El endpoint de inicio de sesion es:

POST /api/auth/login
json
{
  "email": "usuario@empresa.com.br",
  "password": "suContrasena",
  "tenant": "nombre-de-la-empresa"
}

7.2 Autenticacion en Dos Factores (MFA)

Para mayor seguridad, Voki soporta autenticacion en dos factores mediante TOTP (Time-based One-Time Password):

  1. Active el MFA en las configuraciones de su cuenta
  2. Escanee el codigo QR con una aplicacion autenticadora (Google Authenticator, Authy, etc.)
  3. En cada inicio de sesion, ademas del correo y la contrasena, se solicitara el codigo de 6 digitos del autenticador

El endpoint de verificacion MFA es:

POST /api/auth/mfa/verify

7.3 Restablecimiento de Contrasena

En caso de olvidar su contrasena:

  1. En la pantalla de inicio de sesion, haga clic en "Olvide mi contrasena"
  2. Ingrese su correo electronico y tenant
  3. Recibira un correo electronico con un enlace para restablecer la contrasena
  4. El enlace es valido por tiempo limitado (expira tras su uso)

Endpoints involucrados:

POST /api/auth/forgot-password
POST /api/auth/reset-password

7.4 Tokens JWT

Voki utiliza JSON Web Tokens (JWT) para autenticacion:

TokenValidezUso
Access Token15 minutosAcceso a la API y paginas autenticadas
Refresh Token7 diasRenovacion del access token sin nuevo inicio de sesion

El access token debe enviarse en el encabezado de cada solicitud:

Authorization: Bearer {access_token}

Cuando el access token expira, utilice el refresh token para obtener uno nuevo:

POST /api/auth/refresh

7.5 Aislamiento por Tenant

Cada empresa (tenant) posee su propio esquema en la base de datos PostgreSQL, garantizando aislamiento completo de los datos:

  • Los datos de una empresa nunca son accesibles por otra
  • Cada tenant tiene sus propias tablas, indices y registros
  • El tenant se determina por el JWT y se valida en cada solicitud
  • No es posible acceder a datos de otro tenant incluso con un token valido

7.6 Encabezados de Seguridad

Todas las respuestas de la plataforma incluyen encabezados de seguridad:

  • HSTS: Fuerza la conexion HTTPS
  • X-Frame-Options: DENY: Impide la insercion en iframes (proteccion contra clickjacking)
  • X-Content-Type-Options: nosniff: Previene MIME-type sniffing
  • Referrer-Policy: strict-origin-when-cross-origin: Controla la informacion de referencia
  • Permissions-Policy: Restringe el acceso a APIs del navegador

7.7 Limitacion de Solicitudes (Rate Limiting)

Para proteger contra ataques de fuerza bruta y abuso:

EndpointLimite
Autenticacion (/api/auth/*)5 solicitudes por minuto
API publica (/api/signup/*, /api/v1/call/*)30 solicitudes por minuto

Al exceder el limite, la respuesta sera 429 Too Many Requests.


Manual de Uso — Voki v4.0