¿Cómo evitar errores comunes al crear un panel de administración de SaaS? Esbozaremos algunas dificultades y posibles soluciones específicas para todos los creadores de SaaS.
¿Qué ocurre cuando se crea una aplicación SaaS que tiene más de unos pocos clientes? En algún momento ocurre lo inevitable. El personal de ventas y atención al cliente se dirige al equipo de desarrollo con requisitos como:
- Muéstrame qué cuentas se utilizan activamente
- Permitirme entrar en una cuenta de cliente para soporte técnico
- Activar o desactivar un indicador de función específico para alguna cuenta
- Algunos usuarios no pueden iniciar sesión, ¿puede decirme qué método utilizan para autenticarse?
- Tengo un revendedor y necesitan acceso a sus subcuentas
- Necesito ampliar la prueba gratuita de una cuenta
- Una cuenta necesita una configuración específica que sólo los agentes de éxito del cliente deberían poder configurar
- Muéstrame el MRR total de un grupo específico de clientes.
Diversas herramientas pueden cubrir algunos de estos casos de uso. Herramientas de PLG como Segment y journy.io pueden realizar un seguimiento de la actividad. Tal vez utilice un servicio de señalización de características como LaunchDarkly. Stripe o Chargebee podrían gestionar algunos de los aspectos relacionados con la facturación. Mientras tanto, los problemas relacionados con la autenticación podrían ser visibles en su cuenta Auth0. Sin embargo, es poco probable que esté utilizando todas estas plataformas. Incluso si lo está, probablemente no pueda cubrir algunos casos de uso.
La solución es construir un panel de administración personalizado. Parece que hay algunos frameworks y servicios comerciales disponibles para empezar rápidamente. Pero, ¿cómo elegir uno frente a construir uno propio desde cero?
Evita los paneles de administración integrados en tu aplicación
Como primer principio, recomendamos evitar cualquier panel de administración inyectado en el código de la aplicación principal, como hace ActiveAdmin. Esto tiene muchas desventajas:
- Es probable que se detecten nuevas rutas API de administración en el código cliente de su aplicación y que los atacantes puedan sondear o atacar esta vulnerabilidad
- Es probable que acabe teniendo varios tipos de usuarios dentro de una misma base de código, lo que complicará las revisiones de control de acceso.
- Añadir funciones de protección adicionales, como restringir el acceso desde una única dirección IP, será mucho más difícil.
- Si se detecta un problema crítico en el código del panel de administración, es más difícil desconectarlo sin desconectar la aplicación.
Las aplicaciones que no siguen este principio tienen más posibilidades de acabar en las historias de Slashdot. He aquí una: https://yro.slashdot.org/story/23/01/09/221207/researchers-track-gps-location-of-all-of-californias-new-digital-license-plates. En particular, esta historia demuestra que es posible convertir una cuenta de usuario en una cuenta de superadministrador que puede ver los datos de otros usuarios.
Elija un panel de administración con un registro de auditoría de las acciones de los usuarios
En caso de que haya que decirlo, eso significa que sus administradores tendrán que autenticarse con cuentas de usuario separadas. (¡Nada de iniciar sesión con una contraseña compartida utilizando support@app.io!). ¿Cuál es la ventaja de esto? Si se actualiza la configuración de alguna cuenta sensible, podrás averiguar más tarde quién hizo el cambio.
Imponer al menos 2FA (o 3FA) para autenticar a los usuarios administradores.
Elija una solución de panel de administración que le permita añadir factores adicionales a la 2FA, como restricciones de IP o acceso a través de otras soluciones de confianza cero.

Bonificación: Utilice las cabeceras de la Política de Seguridad de Contenidos (CSP) para bloquear javascript desconocido.
Bloquear javascript desconocido es crítico, especialmente en portales de administración interna. A continuación, un ejemplo de cómo Apple era vulnerable a la vulnerabilidad de inyección de correo electrónico, que podría haberse resuelto con simples cabeceras CSP.
Este tuit me ha recordado a una vez que estaba hackeando en el programa de recompensas por fallos de Apple. Encontré, de todas las cosas, una cita de Harry Potter codificada en base64 en una página interna de depuración y administración de cuentas de iCloud. Es la primera vez que comparto esto, ya que han pasado más de 90 días ... https://t.co/CBc8QC5y3i pic.twitter.com/BNauDq7w01
- Sam Curry (@samwcyo) 24 de diciembre de 2023
Reflexiones finales sobre la creación de un panel de administración seguro
Sí, es posible crear un panel de administración seguro para tu aplicación. Tendrás que elegir un marco de trabajo que te ayude o una solución SaaS o de bajo código existente que te ayude a empezar. Mientras lo mantengas separado de tu aplicación principal y se comunique con ella a través de API privadas, no tendrás problemas.
Aikido es una herramienta de seguridad de aplicaciones todo en uno. ¿Quieres ver si tu aplicación es segura? Empieza a escanear gratis.