
Un servidor web Redfish, KVM, GUI y DBus que lo hace todo para OpenBMC
Este componente intenta ser un servidor web embebido que lo hace todo para OpenBMC.
El servidor web implementa varias interfaces distintas:
A nivel de protocolo, bmcweb admite http y https. TLS se admite mediante OpenSSL. HTTP/1 y HTTP/2 se admiten mediante el registro de ALPN para conexiones TLS y la cabecera de mejora h2c para conexiones http.
Bmcweb admite varios protocolos de autenticación:
Cada uno de estos tipos de autenticación puede habilitarse o deshabilitarse tanto mediante cambios de política en tiempo de ejecución (a través de las APIs de Redfish correspondientes) como mediante opciones de tiempo de configuración. Todos los mecanismos de autenticación que admiten usuario/contraseña se enrutan a libpam, para permitir la personalización de las implementaciones de autenticación.
Toda la autorización en bmcweb se determina en el momento del enrutamiento y por ruta, y se ajusta a Redfish PrivilegeRegistry.
*Nota: las funciones que no son de Redfish se asignan al nivel de privilegio de Redfish equivalente más cercano.
bmcweb se configura según los archivos de construcción de meson. Las opciones disponibles están documentadas en meson.options.
meson setup builddir
ninja -C builddir
Si alguna de las dependencias no se encuentra en el sistema host durante la configuración, meson las descargará automáticamente mediante sus dependencias wrap mencionadas en bmcweb/subprojects.
bmcweb se apoya en algunos datos del sistema para almacenar datos persistentes internos al proceso. Los detalles sobre los datos exactos almacenados y cuándo se leen/escriben pueden verse desde el espacio de nombres persistent_data.
bmcweb utiliza /tmp/bmcweb para el almacenamiento temporal de archivos durante las subidas de formularios multiparte. Este directorio se limpia automáticamente por systemd al reiniciar el servicio mediante la directiva TemporaryFileSystem en el archivo de servicio.
Cuando el soporte SSL está habilitado y no se encuentra un certificado utilizable, bmcweb generará un certificado autofirmado antes de iniciar el servidor. Consulte el código fuente de bmcweb para obtener detalles sobre los parámetros con los que se construye este certificado.
bmcweb admite varias formas de compresión http, incluyendo zstd y gzip. Se observan las cabeceras del cliente para determinar si se admiten cargas útiles comprimidas.
bmcweb es capaz de agregar recursos de BMC satelitales. Consulte AGGREGATION.md para obtener más información sobre cómo habilitar y usar esta función.