
Redfish、KVM、GUI、DBusのすべてに対応するOpenBMC用ウェブサーバー
このコンポーネントは、OpenBMC向けの「何でもできる」組み込みウェブサーバーを目指しています。
このウェブサーバーは、いくつかの異なるインターフェースを実装しています:
bmcwebはプロトコルレベルでhttpとhttpsをサポートしています。TLSはOpenSSLを通じてサポートされます。HTTP/1およびHTTP/2は、TLS接続にはALPN登録、http接続にはh2cアップグレードヘッダを使用してサポートされます。
Bmcwebは複数の認証プロトコルをサポートしています:
これらの各認証タイプは、ランタイムポリシーの変更(関連するRedfish API経由)または設定時オプションの両方で有効または無効にできます。ユーザー名/パスワードをサポートするすべての認証メカニズムはlibpamにルーティングされ、認証実装のカスタマイズを可能にします。
bmcwebにおけるすべての認可はルーティング時にルートごとに決定され、Redfish PrivilegeRegistryに準拠します。
*注:非Redfish機能は、最も近い同等のRedfish特権レベルにマッピングされます。
bmcwebはmesonビルドファイルに従って設定されます。利用可能なオプションはmeson.optionsに文書化されています。
meson setup builddir
ninja -C builddir
設定中にホストシステム上で依存関係のいずれかが見つからない場合、mesonはbmcweb/subprojectsに記載されているwrap依存関係を通じて自動的にそれらをダウンロードします。
bmcwebは、プロセス内部の永続データを保存するために、システム上の一部のデータに依存しています。保存される正確なデータと、それが読み書きされるタイミングの詳細は、persistent_data名前空間から確認できます。
bmcwebは、マルチパートフォームアップロード中の一時ファイル保存に/tmp/bmcwebを使用します。このディレクトリは、サービスファイル内のTemporaryFileSystemディレクティブにより、サービス再起動時にsystemdによって自動的にクリーンアップされます。
SSLサポートが有効で利用可能な証明書が見つからない場合、bmcwebはサーバーを起動する前に自己署名証明書を生成します。この証明書が構築されるパラメータの詳細については、bmcwebソースコードを参照してください。
bmcwebは、zstdやgzipを含むさまざまな形式のhttp圧縮をサポートしています。クライアントヘッダーを監視して、圧縮ペイロードがサポートされているかどうかを判断します。
bmcwebは、サテライトBMCからのリソースを集約することができます。この機能の有効化と使用方法の詳細については、AGGREGATION.mdを参照してください。