Autenticación y RBAC en Node-RED
La respuesta honesta sobre RBAC en Node-RED
Sección titulada «La respuesta honesta sobre RBAC en Node-RED»Node-RED vanilla solo tiene 2 niveles de permiso: * (acceso completo) y read (solo lectura). Puedes tener tantos usuarios nombrados como quieras, pero cada uno es “puede hacer todo” o “puede mirar pero no tocar”. No hay restricción por flujo, jerarquía de roles, ni granularidad de funciones más allá de ese binario.
Para RBAC completo con múltiples roles, consulta la guía de FlowFuse.
Lo que adminAuth protege (y lo que no)
Sección titulada «Lo que adminAuth protege (y lo que no)»El bloque adminAuth en settings.js asegura el editor de flujos y la Admin API. No asegura el dashboard /ui — ese necesita un httpNodeAuth separado.
| Valor de permissions | ¿Puede editar flujos? | ¿Puede hacer deploy? | ¿Puede instalar nodos? |
|---|---|---|---|
* | ✓ | ✓ | ✓ |
read | ✗ | ✗ | ✗ |
Configuración paso a paso
Sección titulada «Configuración paso a paso»Paso 1: Generar hashes bcrypt (obligatorio)
Sección titulada «Paso 1: Generar hashes bcrypt (obligatorio)»Node-RED rechaza contraseñas en texto plano — debes usar bcrypt:
docker exec -it node-red npx node-red-admin hash-pw# Te pedirá la contraseña y genera: $2b$08$...Genera un hash por cada usuario que quieras crear.
Paso 2: Extraer settings.js del contenedor
Sección titulada «Paso 2: Extraer settings.js del contenedor»docker cp node-red:/data/settings.js ./settings.jsPaso 3: Editar el bloque adminAuth
Sección titulada «Paso 3: Editar el bloque adminAuth»Abre settings.js y busca (o agrega) el bloque adminAuth:
adminAuth: { type: "credentials", users: [ { username: "admin", password: "$2b$08$PEGA_TU_HASH_BCRYPT_AQUI", permissions: "*" // acceso completo }, { username: "operador", password: "$2b$08$PEGA_HASH_DEL_OPERADOR", permissions: "read" // solo lectura } ], sessionExpiryTime: 86400, // 1 día en segundos},
// También protege el endpoint /dashboard:httpNodeAuth: { user: "viewer", pass: "$2b$08$PEGA_HASH_DEL_VIEWER"},// Nota: httpNodeAuth es UNA credencial compartida para todos los que accedan al dashboardPaso 4: Montar el archivo y reiniciar
Sección titulada «Paso 4: Montar el archivo y reiniciar»Agrega el volumen en docker-compose.yml:
# En el servicio node-red:volumes: - nodered-data:/data - ./settings.js:/data/settings.js # ← monta tu archivo localReinicia y verifica:
docker compose restart node-red
# Debe retornar 401 (no autorizado):curl -s -o /dev/null -w "%{http_code}" http://localhost:1880Comparativa rápida: vanilla vs FlowFuse
Sección titulada «Comparativa rápida: vanilla vs FlowFuse»| Función | settings.js (vanilla) | FlowFuse CE (gratis) | FlowFuse Enterprise |
|---|---|---|---|
| Login con contraseña al editor | ✓ | ✓ | ✓ |
| Múltiples usuarios nombrados | ✓ (archivo) | ✓ (UI web) | ✓ |
| Niveles de permiso | ⚠ Solo 2 | ✓ 4 roles | ✓ 4 roles + nivel de app |
| Rol Dashboard Only | ✗ (1 cred. compartida) | ✓ | ✓ |
| Modo Protección de Instancia | ✗ | ✓ | ✓ |
| Log de auditoría | ✗ | ✓ | ✓ |
| SSO / SAML | ✗ | ✗ | ✓ |
| UI de gestión de usuarios | ✗ (editar archivo) | ✓ | ✓ |
| Infraestructura extra | Ninguna | +2 contenedores | +2 contenedores |
| Precio | Gratis | Gratis (autoalojado) | De pago |
¿Cuándo usar cada opción?
Sección titulada «¿Cuándo usar cada opción?»¿Trabajas solo o con 1 persona?└─ Sí → settings.js vanilla es suficiente
¿Equipo de 2–10 personas?└─ Sí → FlowFuse CE
¿Necesitas rol "solo dashboard" para algunos usuarios?└─ Sí → FlowFuse CE
¿Necesitas logs de auditoría o separación prod/dev?└─ Sí → FlowFuse CE + Protection Mode
¿Necesitas SSO corporativo / SAML?└─ Sí → FlowFuse EnterpriseContinúa con la guía de FlowFuse para ver la configuración completa con RBAC de 4 roles.