Saltar al contenido principal
La autenticación y la autorización son fundamentales para proteger tu sistema. Mientras la autenticación confirma quién es el usuario, la autorización controla a qué puede acceder o qué puede hacer. Ambas son esenciales para mantener tus aplicaciones seguras y tus datos protegidos. En el caso de Midaz, dado que es de código abierto y se distribuye on-premise —junto con sus plugins— no se requiere una capa de multi-tenancy incorporada. La mayoría de los clientes ya cuentan con sus propios mecanismos de autenticación, y lo respetamos. Aun así, sabemos que implementar controles de seguridad detallados no siempre es sencillo, especialmente cuando trabajas con aplicaciones críticas como el Ledger. Por eso creamos el Access Manager: un componente opcional diseñado para manejar el acceso de usuarios y la gestión de identidad cuando necesitas más control a nivel de aplicación.

¿Por qué usar Access Manager?

Cuando tu estrategia de seguridad requiere controles nativos y granulares en Midaz y sus plugins, Access Manager es la herramienta indicada. Te ayuda a gestionar usuarios, credenciales y accesos con foco en el rendimiento y la flexibilidad.
ConsejoAccess Manager está disponible como parte del modelo Enterprise. Si quieres conocer más o evaluarlo para tu caso de uso, ponte en contacto con nuestro equipo.

Componentes

Access Manager está compuesto por dos servicios independientes que trabajan en conjunto:
  • Auth: Actúa como puente entre tus aplicaciones y la capa de autenticación/autorización. Se encarga de:
    • Generación de tokens de acceso (OAuth2).
    • Renovación de tokens.
    • Validación de credenciales.
  • Identity: Ofrece una interfaz clara —vía API REST o la Consola— para gestionar usuarios y controles de acceso. Cubre:
    • Gestión de usuarios.
    • Credenciales máquina a máquina (M2M).
Todo está diseñado para maximizar el rendimiento, la simplicidad y la extensibilidad.
AtenciónAunque Access Manager se divide en dos servicios independientes, no funcionan de forma aislada. Cada servicio depende del otro para operar correctamente. Asegúrate de que ambos estén funcionando antes de empezar.

Especificaciones técnicas

  • APIs RESTful y una interfaz vía Consola disponibles.
  • Midaz y sus plugins incluyen la librería lib-auth, lista para aplicar verificaciones de autorización.
  • Feature flag disponible mediante la variable de entorno PLUGIN_AUTH_ENABLED para activar o desactivar la validación.
  • Gestión de tokens y flujo de credenciales basada en OAuth2.
  • Integración lista con plataformas de autenticación y autorización de terceros.
  • Caché con Valkey para mejorar el rendimiento.
  • Control de acceso basado en roles (RBAC) alineado con la estructura de recursos de Midaz.

Casos de uso

Access Manager es ideal para:
  • Clientes que buscan autenticación y autorización incorporadas a nivel de aplicación.
  • Organizaciones sin una solución IAM previa.
  • Escenarios que requieren integraciones M2M seguras.
  • Equipos que desean un control de acceso unificado para Midaz y todos sus plugins.

Mejores prácticas

Access Manager es potente: gestiona identidad, autorización y credenciales en el núcleo de tu stack de Midaz. Ese poder conlleva responsabilidad. Aquí te contamos cómo usarlo de forma segura y eficiente.

Credenciales

Crea credenciales en ambos extremos

Si dos plugins necesitan comunicarse entre sí, ambos deben tener creadas las credenciales M2M necesarias. No asumas simetría: defínelas explícitamente en ambos lados.

Asegura el entorno físico

Access Manager almacena credenciales localmente. Eso significa que cualquiera con acceso al hardware podría extraerlas. Asegura estrictamente la máquina física o virtual que hospeda el plugin — es tu primera línea de defensa.

Evita exponer endpoints que recuperen credenciales

Los administradores en Access Manager (a través de Identity) pueden recuperar credenciales; por eso estos endpoints no deben integrarse en ningún sistema back-office. Mantén las operaciones sensibles aisladas para reducir el riesgo de exposición accidental.

Recomendaciones de seguridad

Usa flujos aplicación-a-aplicación para endpoints sensibles

Para accesos críticos, como el Ledger, recomendamos interactuar mediante Applications. Así mantienes control total sobre cada credencial. Si algo se filtra, puedes revocar o eliminar la Application sin afectar a todo el sistema.

¿Acciones manuales? Usa credenciales basadas en usuarios

Cuando una persona deba actuar (debug, operaciones, etc.), crea credenciales de usuario con el grant password, no client_credentials. Así, si necesitas revocar el acceso, puedes bloquear al usuario y forzar el cierre de sesión usando el endpoint correspondiente.

Habilitar Access Manager

Después de instalar el plugin Access Manager, debes habilitarlo para que funcione correctamente. Esto implica actualizar las variables de Auth en los archivos .env de Midaz Ledger, Midaz Console o cualquier plugin en el que quieras usar Access Manager. Tu configuración debería verse así:
## AUTH CONFIGS
PLUGIN_AUTH_ENABLED=true
PLUGIN_AUTH_HOST=http://plugin-auth:4000
ImportanteUna vez que Access Manager está habilitado, todas las solicitudes API deben incluir un encabezado Authorization con un token de acceso Bearer válido.Sin este encabezado, tus solicitudes serán rechazadas, incluso para endpoints públicos o que antes eran accesibles.Aprende cómo generar y usar tokens de acceso.

Dónde actualizar

Encontrarás los archivos .env relevantes en estas ubicaciones:
  • Midaz Ledger and Midaz Console
    • /midaz/components/onboarding
    • /midaz/components/transaction
    • /midaz/components/console
  • Other plugins
    • El archivo .env debería estar en el directorio raíz del plugin.
Consejo¿No ves los archivos? Ajusta la configuración de tu sistema para mostrar archivos ocultos, ya que los .env suelen estar ocultos por defecto.

Reconstruye después de los cambios

Después de actualizar el entorno, reconstruye tus imágenes de Docker para aplicar los cambios:
1
En tu terminal, ve a la raíz de tu proyecto Midaz.
2

If Docker is running, stop it:

make down
3

Then rebuild everything:

make rebuild-up