Saltar al contenido principal

Arquitectura multi-tenant

KintiSoft está concebido como una plataforma SaaS con un modelo de arquitectura multi-tenant, que permite atender a diferentes clientes u organizaciones dentro de una misma solución tecnológica.

Comprender este modelo es importante para desarrollar integraciones que respeten los límites de acceso a la información y funcionen correctamente en entornos con múltiples organizaciones.

¿Qué es una arquitectura multi-tenant?​

Una arquitectura multi-tenant permite que una plataforma de software preste servicios a diferentes clientes, denominados tenants, utilizando componentes compartidos de infraestructura o aplicación.

Cada tenant representa un contexto de acceso y organización de datos.

Aunque varios tenants puedan utilizar una misma plataforma, sus operaciones deben mantenerse correctamente aisladas conforme a las reglas de seguridad y autorización.

información

Multi-tenant no significa necesariamente que todos los clientes compartan una misma base de datos. Existen diferentes estrategias de almacenamiento y aislamiento.

¿Qué es un tenant?​

Un tenant representa un límite lógico dentro de una plataforma multi-tenant.

Dependiendo del diseño del sistema, puede agrupar:

  • Información empresarial.
  • Usuarios y permisos.
  • Configuraciones.
  • Recursos y entidades.
  • Operaciones del negocio.

El tenant permite establecer el contexto en el que deben ejecutarse las operaciones autorizadas.

Modelo conceptual​

El siguiente diagrama representa una arquitectura multi-tenant de forma general.

flowchart TD
A["Aplicaciones y clientes"] --> B["API de KintiSoft"]
B --> C["Autenticación y autorización"]
C --> D{"Contexto de acceso"}
D --> E["Tenant A"]
D --> F["Tenant B"]
D --> G["Tenant C"]

E --> H["Recursos autorizados A"]
F --> I["Recursos autorizados B"]
G --> J["Recursos autorizados C"]

Este diagrama es conceptual. No representa necesariamente la infraestructura interna, los servicios desplegados ni la estrategia física de almacenamiento de KintiSoft.

Tenant, organización y usuario​

Es importante diferenciar estos conceptos.

ConceptoDescripción
TenantContexto lógico utilizado para delimitar el acceso a recursos dentro de una plataforma multi-tenant.
OrganizaciónEntidad empresarial representada en la plataforma.
UsuarioIdentidad que accede al sistema y realiza operaciones de acuerdo con sus permisos.
RolConjunto de permisos asociados a determinadas funciones.
API KeyCredencial utilizada para autenticar integraciones cuando la API admite este mecanismo.
nota

La relación exacta entre tenant, organización, usuario y API Key depende del modelo de identidad y autorización implementado por KintiSoft.

Aislamiento de datos​

El aislamiento es uno de los principios fundamentales de los sistemas multi-tenant.

Su objetivo es impedir que una identidad perteneciente a un contexto acceda a información de otro contexto sin autorización.

Aislamiento lógico​

El aislamiento lógico utiliza controles de aplicación, autorización y acceso a datos para delimitar los recursos que pueden consultarse o modificarse.

Estos controles deben aplicarse en el servidor y no depender únicamente de los filtros enviados por un cliente.

Aislamiento físico​

Algunas arquitecturas utilizan recursos de almacenamiento separados por tenant, mientras que otras emplean infraestructura compartida con mecanismos de aislamiento lógico.

La estrategia elegida depende de los requisitos de seguridad, escalabilidad y operación de la plataforma.

aviso

La documentación pública de KintiSoft debe describir únicamente los mecanismos de aislamiento que estén confirmados por su implementación. No debe asumirse un modelo de base de datos compartida o separada.

Autenticación y autorización​

En una integración multi-tenant es importante distinguir dos procesos.

Autenticación​

Permite verificar la identidad del cliente o de la integración que realiza la solicitud.

Autorización​

Determina qué recursos y operaciones puede utilizar la identidad autenticada.

Una solicitud correctamente autenticada no implica necesariamente que tenga permisos para acceder a cualquier recurso.

El servidor debe validar los permisos correspondientes a cada operación.

Para conocer los mecanismos utilizados por KintiSoft, consulta Autenticación.

Contexto de tenant en una integración​

Al trabajar con una API multi-tenant, cada solicitud debe ejecutarse dentro de un contexto autorizado.

La forma de establecer ese contexto depende de la implementación de la API.

Entre los mecanismos habituales se encuentran:

  • Credenciales asociadas a un tenant.
  • Tokens que contienen información del contexto autorizado.
  • Identificadores explícitos validados por el servidor.

Estos mecanismos son ejemplos generales y no deben interpretarse como opciones necesariamente disponibles en KintiSoft.

Ejemplo conceptual​

Considera una integración que administra información de dos organizaciones independientes:

IntegraciónContexto autorizadoOperación
Aplicación ATenant AConsultar productos autorizados
Aplicación BTenant BConsultar productos autorizados

Aunque las integraciones utilicen el mismo servicio de API, sus permisos y el contexto de acceso deben determinar qué información puede devolver el servidor.

Una integración nunca debe asumir que modificar un identificador de tenant es suficiente para obtener acceso a otra organización.

Relaciones entre recursos​

Las integraciones empresariales suelen trabajar con entidades relacionadas, como clientes, productos, documentos y movimientos.

En un modelo multi-tenant es importante considerar que:

  1. Los identificadores deben interpretarse dentro del contexto definido por la API.
  2. Las relaciones entre entidades deben respetar los límites de autorización.
  3. Los clientes de la API no deben asumir que todos los identificadores son globalmente únicos.
  4. Las operaciones deben validar la existencia y los permisos de acceso a los recursos relacionados.
consejo

Consulta siempre la referencia de cada endpoint para conocer el alcance de sus identificadores y las relaciones permitidas entre recursos.

Buenas prácticas para integraciones multi-tenant​

1. Protege las credenciales​

Almacena las API Keys y otros secretos en mecanismos seguros, fuera del código fuente y de aplicaciones públicas.

2. Respeta los permisos​

Utiliza únicamente credenciales y operaciones autorizadas para el contexto correspondiente.

3. Evita mezclar información​

Si tu integración trabaja con varias organizaciones, mantén separados sus datos, configuraciones y credenciales.

4. Valida las respuestas​

No presupongas que un recurso existe o que una solicitud tendrá acceso a él. Implementa el manejo de respuestas de error.

5. Diseña registros seguros​

Evita almacenar credenciales, tokens o información sensible en logs y sistemas de monitoreo.

6. Considera el contexto de caché​

Si almacenas temporalmente respuestas de la API, asegúrate de que las claves de caché contemplen el contexto de autorización correspondiente.

Esto evita reutilizar información de una organización en operaciones de otra.

Errores habituales​

Algunas situaciones que pueden presentarse al desarrollar integraciones multi-tenant son:

SituaciónConsideración
Credenciales inválidasVerifica su vigencia y el mecanismo de autenticación.
Permisos insuficientesComprueba que la integración esté autorizada para la operación.
Recurso no encontradoVerifica el identificador y el contexto autorizado.
Datos de organizaciones mezcladosRevisa la separación de credenciales, cachés y contextos en tu integración.

Los códigos HTTP y las respuestas concretas deben consultarse en la documentación de la API.

Resumen​

Una arquitectura multi-tenant permite atender a múltiples clientes dentro de una plataforma SaaS manteniendo límites de acceso entre sus recursos.

Al desarrollar integraciones con KintiSoft, es fundamental comprender el contexto de las operaciones, respetar los permisos y evitar asumir mecanismos de aislamiento que no estén definidos en la API.

Recursos relacionados​