Saltar al contenido
Acceso WebUI (Basic Auth)

Acceso WebUI (Basic Auth)

Cuando la Web UI de Pando es accesible desde otros dispositivos en tu red (no solo tu computadora), la Autenticación Básica la protege con un nombre de usuario y contraseña. Esto impide el acceso no autorizado a tu instancia de Pando.

¿Cuándo Se Necesita Basic Auth?

Dirección de BindDesde la Misma MáquinaDesde Otros Dispositivos¿Se Necesita Auth?
localhost o 127.0.0.1No (no accesible)No
0.0.0.0 o IP específica

Ejemplos:

  • Ejecutar pando serve en tu portátil y acceder solo localmente → No se necesita auth
  • Ejecutar pando serve --host 0.0.0.0 para acceder desde tu móvil u otro ordenador → Se necesita auth

Configurar Basic Auth

Vía Web UI (Recomendado)

  1. Abre la Web UI de Pando y ve a Ajustes > Acceso WebUI
  2. Añade al menos un usuario (nombre de usuario + contraseña)
  3. Activa “Exigir usuario y contraseña”

El panel de ajustes muestra si la autenticación está activa o inerte (porque el servidor está vinculado a localhost).

Vía Archivo de Configuración

Añade a tu .pando.toml:

[Server]
Host = "0.0.0.0"    # o tu IP de red

[Server.BasicAuth]
Enabled = true

[[Server.BasicAuth.Users]]
Username = "admin"
Password = "tu-contraseña-segura"

O en .pando.json:

{
  "server": {
    "host": "0.0.0.0",
    "basicAuth": {
      "enabled": true,
      "users": [
        { "username": "admin", "password": "tu-contraseña-segura" }
      ]
    }
  }
}

Cómo Funciona

Protección Automática

Pando detecta automáticamente cuándo se necesita protección:

  1. Vínculo a localhost → No se necesita auth (seguro por defecto)
  2. Vínculo que no es localhost → Auth activada si hay usuarios configurados
  3. Peticiones desde tu máquina → Siempre permitidas (incluso con vínculo que no es localhost)

Flujo de Login

Cuando accedes a la Web UI desde otro dispositivo:

  1. La Web UI detecta que se requiere auth
  2. Aparece un diálogo de inicio de sesión (no el prompt nativo del navegador)
  3. Introduce tu nombre de usuario y contraseña
  4. Quedas autenticado para la sesión

Seguridad de Contraseñas

  • Las contraseñas se almacenan cifradas en tu archivo de configuración (usando cifrado AGE)
  • Solo se descifran en memoria cuando Pando arranca
  • La Web UI puede revelar contraseñas bajo demanda (para usuarios autenticados)
  • Nunca se envían en texto plano por la red (se usa HTTPS)

Gestionar Usuarios

Añadir un Usuario

Web UI: Ajustes > Acceso WebUI > Añadir usuario

API:

curl -X POST http://localhost:3939/api/v1/config/api-server/basic-auth/users \
  -H "Content-Type: application/json" \
  -d '{"username": "nuevousuario", "password": "contraseñasegura"}'

Eliminar un Usuario

Web UI: Ajustes > Acceso WebUI > Haz clic en eliminar en el usuario

API:

curl -X DELETE http://localhost:3939/api/v1/config/api-server/basic-auth/users/username
Eliminar el último usuario desactiva automáticamente basic auth. Esto evita bloquearte fuera.

Revelar una Contraseña

Web UI: Ajustes > Acceso WebUI > Haz clic en revelar en el usuario

API:

curl -X POST http://localhost:3939/api/v1/config/api-server/basic-auth/users/username/reveal

Referencia de Configuración

ConfiguraciónUbicaciónDescripción
Server.Host.pando.tomlDirección de vínculo (localhost solo local, 0.0.0.0 para red)
Server.BasicAuth.Enabled.pando.tomlActivar/desactivar basic auth
Server.BasicAuth.Users.pando.tomlLista de pares usuario/contraseña

Casos de Uso Comunes

Acceso desde Móvil/Tableta

# Iniciar Pando accesible desde tu red
pando serve --host 0.0.0.0

# Luego activar basic auth desde los Ajustes de la Web UI

Acceso de Equipo

[Server]
Host = "0.0.0.0"

[Server.BasicAuth]
Enabled = true

[[Server.BasicAuth.Users]]
Username = "alice"
Password = "contraseña-alice"

[[Server.BasicAuth.Users]]
Username = "bob"
Password = "contraseña-bob"

Desarrollo (Sin Auth)

# Acceso local solamente - no se necesita auth
pando serve
# o
pando serve --host localhost

Solución de Problemas

“Se requiere basic auth” pero no lo configuré

Estás accediendo a Pando desde otro dispositivo. Opciones:

  • Vincula a localhost: pando serve --host localhost
  • Configura basic auth como se describe arriba

No puedo activar auth sin usuarios

Debes añadir al menos un usuario antes de activar basic auth. El sistema impide activar auth sin credenciales.

Auth es “inerte” en ajustes

El servidor está vinculado a localhost, por lo que auth no se exige. Esto es normal y seguro — auth solo se activa cuando el servidor es accesible por la red.

Basic auth protege la superficie de la API. Las peticiones localhost y los servidores vinculados a loopback nunca se desafían, manteniendo los flujos de trabajo de desarrollo fluidos.