
Un serveur web tout-en-un Redfish, KVM, GUI et DBus pour OpenBMC
Ce composant tente d'être un serveur web embarqué « à tout faire » pour OpenBMC.
Le serveur web implémente plusieurs interfaces distinctes :
Au niveau protocole, bmcweb prend en charge http et https. TLS est pris en charge via OpenSSL. HTTP/1 et HTTP/2 sont pris en charge à l'aide de l'enregistrement ALPN pour les connexions TLS et de l'en-tête de mise à niveau h2c pour les connexions http.
Bmcweb prend en charge plusieurs protocoles d'authentification :
Chacun de ces types d'authentification peut être activé ou désactivé à la fois via des modifications de politique à l'exécution (via les API Redfish correspondantes) ou via des options de configuration. Tous les mécanismes d'authentification prenant en charge nom d'utilisateur/mot de passe sont routés vers libpam, afin de permettre une personnalisation des implémentations d'authentification.
Toute l'autorisation dans bmcweb est déterminée au moment du routage, et par route, et est conforme à la Redfish PrivilegeRegistry.
*Remarque : les fonctions non-Redfish sont mappées au niveau de privilège Redfish équivalent le plus proche.
bmcweb est configuré selon les
fichiers de construction meson. Les options disponibles sont documentées dans meson.options.
meson setup builddir
ninja -C builddir
Si l'une des dépendances n'est pas trouvée sur le système hôte pendant la configuration, meson les téléchargera automatiquement via ses dépendances wrap mentionnées dans bmcweb/subprojects.
bmcweb s'appuie sur certaines données du système pour stocker des données persistantes internes au processus. Les détails sur les données exactes stockées et leur lecture/écriture sont visibles dans l'espace de noms persistent_data.
bmcweb utilise /tmp/bmcweb pour le stockage temporaire de fichiers lors des téléversements de formulaires multipart. Ce répertoire est automatiquement nettoyé par systemd au redémarrage du service via la directive TemporaryFileSystem dans le fichier de service.
Lorsque la prise en charge SSL est activée et qu'aucun certificat utilisable n'est trouvé, bmcweb générera un certificat auto-signé avant de lancer le serveur. Veuillez consulter le code source de bmcweb pour plus de détails sur les paramètres avec lesquels ce certificat est construit.
bmcweb prend en charge diverses formes de compression http, notamment zstd et gzip. Les en-têtes clients sont observés pour déterminer si les charges utiles compressées sont prises en charge.
bmcweb est capable d'agréger des ressources depuis des BMC satellites. Reportez-vous à AGGREGATION.md pour plus d'informations sur la façon d'activer et d'utiliser cette fonctionnalité.