OpenFGA en pymes: permisos por relación y prueba

OpenFGA 1.18.0 permite modelar permisos por usuario, relación y objeto. Guía para probar accesos, auditoría, costo y salida sin mezclar roles.

ULTIMA MILLA · Técnico · 22 de jun de 2026 · 4 min de lectura

OpenFGA en pymes: permisos por relación y prueba

¿Quién puede aprobar una factura cuando una persona pertenece a dos áreas? OpenFGA 1.18.0 permite responder permisos por relación entre usuario, objeto y acción, en vez de dejar toda la lógica pegada a roles generales. Para pymes, colegios profesionales y sistemas con múltiples sedes, esta guía explica qué dato guarda, cómo se consulta y qué prueba mínima evita accesos heredados.

Dónde aparece el permiso mezclado

La cifra que ordena la decisión viene de GitHub: OpenFGA tenía 5.322 estrellas, actividad el 20 de junio de 2026 y release v1.18.0 publicado el 17 de junio. El número no reemplaza una prueba local, pero muestra un proyecto vivo para revisar antes de escribir otra tabla de permisos sin contrato. El rol heredado es el punto de falla. La documentación de conceptos dice que el servicio responde chequeos de autorización determinando si existe una relación entre un usuario y un objeto, usando un modelo de autorización y tuplas de relación. CNCF registra a OpenFGA como proyecto incubating desde el 28 de octubre de 2025. Para una organización chica, ese dato global baja a una pregunta simple: qué usuario puede leer, editar, aprobar o borrar cada recurso.

Cómo funciona por dentro

El flujo empieza con el modelo. Sistemas escribe tipos como usuario, área, factura, expediente o proyecto, y define relaciones: miembro, revisor, aprobador, dueño o lector. OpenFGA recibe ese modelo y entrega una versión consultable por API. Si el modelo está mal escrito, el chequeo responde permisos equivocados aunque la aplicación funcione. El segundo paso carga tuplas. Una tupla une usuario, relación y objeto: usuario Ana es revisora del expediente 42; el área compras administra la factura 700; la gerencia lee el tablero mensual. OpenFGA guarda esas relaciones en su store. PostgreSQL puede guardar auditoría externa, solicitudes, cambios aprobados y evidencia de quién pidió cada alta. El tercer paso ocurre en la aplicación. Antes de mostrar un botón o ejecutar una acción, la aplicación pregunta a OpenFGA si ese usuario tiene la relación necesaria con ese objeto. La API responde permitido o rechazado. El cuarto paso separa permisos: mesa de ayuda carga altas, responsable de área aprueba, sistemas administra el servicio y auditoría consulta eventos. El quinto paso agrega contexto cuando corresponde. Las tuplas contextuales permiten pasar datos temporales, como sede activa o condición de horario, sin grabarlos como relación permanente. El sexto paso prueba salida: se ejecutan casos escritos con usuarios reales, objetos reales y resultados esperados. Si una prueba falla, el modelo se corrige antes de producción.

Qué se instala o configura primero

La pila inicial usa OpenFGA 1.18.0, PostgreSQL 17 para la base del servicio, una aplicación cliente, logs de auditoría, backup diario y pruebas de modelo en repositorio. Con dólar oficial vendedor de $ 1.481,94, un servidor de USD 15 a USD 35 por mes queda entre $ 22.229 y $ 51.868 mensuales. Una implementación de USD 700 a USD 1.400 equivale a $ 1,04 a $ 2,07 millones. Incluye modelo inicial, diez casos de prueba, integración con una pantalla crítica, registro de cambios y restauración. No incluye rediseño completo de la aplicación ni migración de identidades si el sistema ya tiene usuarios duplicados. UMSA suele pedir un primer entregable acotado: una matriz con cinco acciones y cinco objetos, más un archivo de pruebas que diga quién puede leer, editar, aprobar y borrar. Ese archivo vale más que una reunión larga porque el equipo puede repetirlo cada vez qué cambia una regla. El objeto concreto aparece en la mesa administrativa: una carpeta de matriculados con stickers de colores suele esconder permisos distintos. La traducción técnica consiste en convertir esos colores en relaciones escritas y probarlas con usuarios reales. La capacitación dura una operación completa. Una persona pide acceso, otra aprueba, sistemas aplica la relación y auditoría revisa el evento. Si el acceso queda explicado en una tupla, el cambio puede repetirse sin depender de memoria.

Dónde se rompe y cómo probarlo

El primer riesgo es copiar roles viejos sin revisar objetos. La señal aparece cuando “administrador” puede aprobar todo. La prueba toma tres objetos sensibles, asigna un rol amplio y confirma que las acciones no autorizadas quedan rechazadas. El segundo riesgo es olvidar la baja. La señal aparece cuando una persona deja un área y conserva relaciones sobre expedientes. La prueba cambia su pertenencia, ejecuta chequeos sobre objetos anteriores y guarda el resultado. El tercer riesgo es consultar permisos sólo en la interfaz. La señal aparece cuando el botón desaparece, pero la API acepta la acción. La prueba llama al endpoint directo con usuario sin relación y espera rechazo. El cuarto riesgo es perder el store sin auditoría externa. La prueba restaura OpenFGA y PostgreSQL en otro servidor, ejecuta los casos escritos y revisa quién cambió cada relación. Un permiso fino sirve cuando cada acceso tiene objeto, razón y prueba.

Para seguir leyendo