Business Intelligence & Analytics

Gobierno de Datos y Seguridad RLS en Apache Superset: Embeds Empresariales y Multitenancy

Descubra cómo implementar Row-Level Security (RLS), SDK de Embedded Dashboards con Guest Tokens JWT y políticas multitenant seguras en Apache Superset para portales SaaS enterprise.

Ing. Christian Mollo(Arquitecto de Business Intelligence & Big Data en FORBUS S.R.L.)
2026-09-10
9 min de lectura

Desafíos de Gobernanza y Multitenancy en BI Enterprise

En la era del análisis de datos masivo, las aplicaciones empresariales y portales SaaS necesitan proporcionar tableros interactivos a clientes externos y departamentos internos garantizando que cada usuario visualice únicamente los registros autorizados.

En este artículo, el Ing. Christian Mollo explica cómo implementar la seguridad a nivel de fila (Row-Level Security - RLS), la incrustación segura de tableros con JWT Guest Tokens y el tuning de rendimiento en Apache Superset.


1. Seguridad a Nivel de Fila (Row-Level Security - RLS)

La función RLS en Apache Superset intercepta dinámicamente las consultas SQL generadas por la interfaz y añade cláusulas WHERE personalizadas según el rol o atributos del usuario conectado.

Ejemplo de Política RLS por Organización / Tenant

Supongamos una tabla analítica ventas_corporativas. Deseamos que los usuarios del departamento regional de Bolivia únicamente accedan a sus transacciones:

  1. Creación de la Regla en Superset Admin > Row Level Security:
    • Nombre de la Regla: Filtro Regional Bolivia
    • Módulo / Tabla: ventas_corporativas
    • Roles Asociados: Rol_Ejecutivo_Bolivia
    • Cláusula SQL Filter: pais_codigo = 'BOL' AND sucursal_id IN (SELECT sucursal_id FROM usuario_sucursales WHERE usuario_id = {{ current_user_id() }})

Gracias al motor de plantillas Jinja2 interno de Superset ({{ current_user_id() }} y {{ current_username() }}), las reglas RLS son 100% dinámicas y previenen la filtración no autorizada de datos sensibles.


2. Incrustación de Dashboards con SDK Embebido y Guest Tokens

Integrar tableros de Apache Superset dentro de un portal de clientes (Next.js / React) sin requerir inicio de sesión directo se logra a través del SDK oficial @superset-ui/embedded-sdk.

Renderizando Diagrama de Arquitectura...

Flujo de Seguridad Backend (NestJS / Node.js)

El servidor backend solicita un Guest Token temporal a la API REST de Superset mediante credenciales administrativas:

typescript
// Servicio NestJS para generación de Guest Tokens en Apache Superset
async getSupersetGuestToken(dashboardId: string, userAttributes: UserPayload): Promise<string> {
  const loginResponse = await axios.post('https://bi.4bus.cloud/api/v1/security/login', {
    username: process.env.SUPERSET_ADMIN_USER,
    password: process.env.SUPERSET_ADMIN_PASSWORD,
    provider: 'db',
  });

  const accessToken = loginResponse.data.access_token;

  const guestTokenResponse = await axios.post(
    'https://bi.4bus.cloud/api/v1/security/guest_token/',
    {
      user: {
        username: userAttributes.email,
        first_name: userAttributes.firstName,
        last_name: userAttributes.lastName,
      },
      resources: [{ type: 'dashboard', id: dashboardId }],
      rls: [
        { clause: `empresa_id = '${userAttributes.tenantId}'` }
      ],
    },
    {
      headers: { Authorization: `Bearer ${accessToken}` },
    }
  );

  return guestTokenResponse.data.token;
}

3. Integración en el Frontend Next.js / React

En la aplicación cliente frontend, utilizamos el paquete embedDashboard para renderizar el tablero en un contenedor iframe seguro con aislamiento sandbox:

tsx
import { embedDashboard } from '@superset-ui/embedded-sdk';
import { useEffect, useRef } from 'react';

export function EmbeddedAnalyticsBoard({ dashboardId, fetchGuestToken }: { dashboardId: string, fetchGuestToken: () => Promise<string> }) {
  const containerRef = useRef<HTMLDivElement>(null);

  useEffect(() => {
    if (containerRef.current) {
      embedDashboard({
        id: dashboardId,
        supersetDomain: 'https://bi.4bus.cloud',
        mountPoint: containerRef.current,
        fetchGuestToken: () => fetchGuestToken(),
        dashboardUiConfig: {
          hideTitle: true,
          hideTab: false,
          hideChartControls: true,
        },
      });
    }
  }, [dashboardId]);

  return <div ref={containerRef} className="w-full h-[800px] rounded-2xl border border-white/10" />;
}

Conclusión

El gobierno de datos y la capacidad de incrustar tableros analíticos multitenant con políticas RLS convierte a Apache Superset en la solución de Business Intelligence por excelencia para empresas de vanguardia.

Consulte con el equipo de FORBUS S.R.L. (4bus.cloud) para implementar arquitecturas analíticas a medida.

Etiquetas Técnicas:

#Apache Superset#Row-Level Security#Embedded Dashboards#JWT Guest Tokens#Multitenancy#BI Governance
I

Ing. Christian Mollo

Arquitecto de Business Intelligence & Big Data en FORBUS S.R.L.

Especialista en desarrollo enterprise, optimización de infraestructura cloud y autor verificado en 4bus.cloud (FORBUS S.R.L.).