Dokumente zur Lieferkettensicherheit sind das Was von BOMnipotent, Nutzer das Wer. Sofern Sie nicht ausdrücklich etwas anderes angeben, sind die gehosteten Dokumente nur für die Nutzerkonten sichtbar, welch von Ihnen Zugriff erahalten haben.
BOMnipotent verwendet rollenbasierte Zugriffskontrolle (RBAC): Nutzer haben Rollen, und Rollen haben
Berechtigungen
. Nach der Einrichtung enthält BOMnipotent einige Standardrollen. Diese reichen für die Serververwaltung aus. Um jedoch Nutzeranfragen annehmen zu können, sollten Sie mindestens eine neue Rolle
erstellen
.
Sobald dies erledigt ist, sieht ein typischer Workflow zur Einführung eines neuen Nutzers in Ihr BOMnipotent-System wie folgt aus:
Ein neuer Nutzer
erfragt Zugriff
zu Ihrem Server. Dabei sendet der BOMnipotent-Client einen mit dem Konto verknüpften öffentlichen Schlüssel an Ihren Server, wo er gespeichert und als “REQUESTED” gekennzeichnet wird.
Sie
genehmigen
die Anfrage. Das neue Benutzerkonto wird nun als gültig akzeptiert, verfügt aber noch über keine Berechtigungen.
Sie
weisen
dem neuen Benutzerkonto eine oder mehrere Rollen zu.
Unterabschnitte von Zugriffsverwaltung
Berechtigungen
In BOMnipotent sind Berechtigungen nicht direkt mit Benutzerkonten, sondern mit Rollen verknüpft. Der Abschnitt zur
Rollenverwaltung
beschreibt, wie diese Verknüpfung verwaltet wird, und der Abschnitt zur
Rollenzuweisung
erläutert, wie Rollen (und damit letztlich Berechtigungen) Benutzern zugewiesen werden.
Der Server verfügt über mehrere Berechtigungen im Code, von denen einige fest programmiert, andere konfigurierbar sind. Alle werden hier erläutert. Informationen zum Erstellen einer Berechtigung, die einer Rolle zugeordnet ist, finden Sie im entsprechenden
Abschnitt
.
Ihre Kunden sind in der Regel mit einem oder mehreren Ihrer Produkte verknüpft. Sie möchten alle Arten von Dokumenten und Informationen zu diesem Produkt einsehen, haben aber nicht automatisch Anspruch auf Informationen zu anderen Produkten.
PRODUCT_ACCESS
Eine Berechtigung mit dem Wert “PRODUCT_ACCESS(<PRODUCT>)” gewährt Leseberechtigung für alle mit “<PRODUCT>” verknüpften Dokumente. Dies umfasst alle Stücklisten (BOMs) dieses Produkts, alle damit verbundenen Schwachstellen und alle CSAF-Dokumente zu diesem Produkt.
Beispielsweise könnte eine Rolle mit dem Wert “PRODUCT_ACCESS(BOMnipotent)” alle mit BOMnipotent verknüpften Dokumente (und nur diese) einsehen.
Dem Sternchen-Operator “*” kann als Globbing-Platzhalter für Produktnamen genutzt werden. Dabei entspricht das Sternchen einer beliebigen Anzahl von Symbolen. Beispielsweise würde die Berechtigung “PRODUCT_ACCESS(BOM*ent)” sowohl auf “BOMnipotent” als auch auf die (fiktiven) Produkte “BOMent” und “BOM-burárum-ent” zutreffen, nicht jedoch auf “BOMtastic” (da letzteres nicht auf “ent” endet).
Folglich ermöglicht “PRODUCT_ACCESS(*)” die Anzeige aller Dokumente.
Berechtigungen für Manager
Für Dokumentmanager ist die Situation in der Regel umgekehrt: Sie benötigen die Berechtigung, die Datenbankinhalte nicht nur anzuzeigen, sondern auch zu ändern. Ihr Umfang ist typischerweise nicht auf ein bestimmtes Produkt, sondern auf einen bestimmten Dokumenttyp beschränkt. Daher wird die Trennung der Managerberechtigungen aus einer anderen Perspektive betrachtet.
BOM_MANAGEMENT
Diese Berechtigung ermöglicht das
Hochladen, Ändern und Löschen
von Stücklisten (BOMs). Sie gewährt automatisch auch die Berechtigung zur Anzeige aller gehosteten Stücklisten.
VULN_MANAGEMENT
Diese Berechtigung ermöglicht das
Aktualisieren und Anzeigen
der Liste der Schwachstellen, die mit einer BOM verknüpft sind.
CSAF_MANAGEMENT
Diese Berechtigung ermöglicht das
Hochladen, Ändern und Löschen
von CSAF-Dokumenten (Common Security Advisory Format). Sie gewährt außerdem automatisch Anzeigeberechtigungen für alle gehosteten CSAF-Dokumente.
ROLE_MANAGEMENT
Mit dieser Berechtigung kann ein Benutzer die
Berechtigungen von Rollen ändern
. Dies kann weitreichende Folgen haben, da die Änderungen potenziell viele Benutzer betreffen.
BOMnipotent kennt die feststehende Rolle “admin”. Diese Rolle verfügt stets über alle Berechtigungen, die Benutzern erteilt werden können. Darüber hinaus gibt es einige Aufgaben, die nur von Benutzern mit der Administratorrolle ausgeführt werden können:
– Nur Administratoren können die Administratorrolle anderen Benutzern
zuweisen oder entziehen
. Ein
spezieller temporärer Administratormechanismus
ermöglicht die Erstellung des ersten Administrators für einen neu erstellten BOMnipotent Server.
– Nur Administratoren können den Abonnementschlüssel für eine BOMnipotent Server Instanz
(de)aktivieren
.
Rollenverwaltung
BOMnipotent verwendet ein rollenbasiertes Zugriffsmodell (RBAC), bei dem Benutzer Rollen und Rollen Berechtigungen zugeordnet werden. Während
Berechtigungen
in BOMnipotent größtenteils fest kodiert sind, können Rollen (fast) frei verwaltet werden. Dieser Abschnitt erklärt, wie das geht.
Um Rollen und ihre Berechtigungen zu ändern oder anzuzeigen, benötigt Ihr Benutzerkonto die Berechtigung ROLE_MANAGEMENT.
Standardrollen
Beim ersten Start Ihres BOMnipotent Servers werden in der Datenbank mehrere kreativ benannte Standardrollen angelegt:
Es gibt eine spezielle Rolle namens “admin”, die nicht in den anderen Rollen aufgeführt ist. Der Grund dafür ist, dass sie nicht Teil der Datenbank, sondern des BOMnipotent-Codes selbst ist. Daher kann sie nicht geändert werden.
Da Rollen ohne Berechtigungen bedeutungslos sind, werden sie immer paarweise verwendet. Es gibt keinen speziellen Mechanismus zum Erstellen einer neuen Rolle. Stattdessen existiert eine Rolle dadurch, dass ihr eine Berechtigung hinzugefügt wird.
Die Syntax zum Hinzufügen einer Berechtigung zu einer Rolle lautet:
[INFO] Removed permission VULN_MANAGEMENT from role vuln_manager
Sobald Sie die letzte Rolle aus einer Berechtigung entfernt haben, existiert diese nicht mehr.
Um Hoppla-Momente zu vermeiden, unterstützt BOMnipotent nicht das Löschen ganzer Stapel von Rollenberechtigungen.
Nutzerverwaltung
Der erste Schritt beim Anlegen eines neuen Benutzers ist die Beantragung eines neuen Kontos. Dieser Schritt wird
an anderer Stelle
beschrieben, da er sowohl für Manager als auch für Konsumenten relevant ist.
Aus Sicht von BOMnipotent ist ein Benutzer verknüpft mit einer eindeutigen E-Mail-Adresse als Kennung, und einem öffentlichen Schlüssel zur Authentifizierung. Dies sind alle Daten, die bei der Erstellung eines neuen Benutzerkontos gesendet werden.
Nach der Beantragung eines neuen Kontos obliegt es einem Benutzermanager, die Anfrage zu genehmigen oder abzulehnen.
Für die meisten Benutzerinteraktionen, einschließlich der Auflistung, benötigen Sie die Berechtigung USER_MANAGEMENT.
Auflistung
Um alle Benutzer in Ihrer Datenbank aufzulisten, rufen Sie
bomnipotent_client user list
╭────────────────────┬───────────┬─────────────────────────┬─────────────────────────╮
│ User Email │ Status │ Expires │ Last Updated │
├────────────────────┼───────────┼─────────────────────────┼─────────────────────────┤
│ admin@wwh-soft.com │ APPROVED │ 2026-03-23 04:51:26 UTC │ 2025-03-22 04:51:26 UTC │
│ info@wildeheide.de │ REQUESTED │ 2026-03-23 03:52:21 UTC │ 2025-03-22 03:52:21 UTC │
╰────────────────────┴───────────┴─────────────────────────┴─────────────────────────╯
So können Sie die E-Mail-Adressen und die Stati der Benutzer einsehen.
Ein Benutzer ohne den Status “APPROVED” hat keine besonderen Berechtigungen, unabhängig von zugewiesenen Rollen.
Jedem Benutzer ist außerdem ein Ablaufdatum zugeordnet. Ab diesem Zeitpunkt wird der öffentliche Schlüssel ungültig und muss erneuert werden. Die Gültigkeitsdauer eines Schlüssels kann in der Serverkonfiguration
frei konfiguriert
werden.
Genehmigung oder Ablehnung
Wenn Sie die Benutzeranfrage erwartet haben, können Sie sie genehmigen:
bomnipotent_client user approve <EMAIL>
[INFO] Changed status of info@wildeheide.de to APPROVED
Analog dazu können Sie diesem Benutzer stattdessen keinen Zugriff gewähren:
bomnipotent_client user deny <EMAIL>
[INFO] Changed status of info@wildeheide.de to DENIED
Es ist möglich, einem bereits genehmigten Benutzer den Zugriff wieder zu verweigern, wodurch das Konto effektiv widerrufen wird.
Löschen
Wenn Sie ein Benutzerkonto vollständig löschen möchten, rufen Sie
bomnipotent_client user remove <EMAIL>
[INFO] Deleted user info@wildeheide.de
Rollenzuweisung
Rollen verbinden Benutzer mit Berechtigungen. Das Hinzufügen oder Entfernen von Rollen steuert indirekt, in welchem Umfang Benutzer mit Ihrer BOMnipotent Server Instanz interagieren können.
Zu Ihrer Bequemlichkeit werden beim ersten Start des BOMnipotent-Servers mehrere
Standardrollen
angelegt. BOMnipotent kennt außerdem die
Administratorrolle
, die eine besondere Behandlung erhält.
Um Benutzerrollen zu ändern oder anzuzeigen, benötigt Ihr Benutzerkonto die Berechtigung USER_MANAGEMENT.
Auflistung
Um alle Rollen aller Benutzer aufzulisten, rufen Sie
bomnipotent_client user-role list
╭──────────────────┬─────────────┬───────────────────────────╮
│ User Email │ User Role │ Last Updated │
├──────────────────┼─────────────┼───────────────────────────┤
│ info@quantumwire │ bom_manager │ 2025-03-22 04:27:33.71579 │
│ │ │ 7 UTC │
│ info@wildeheide │ bom_manager │ 2025-03-22 04:26:08.83708 │
│ │ │ 3 UTC │
╰──────────────────┴─────────────┴───────────────────────────╯
Hinzufügen
Um einem Benutzer eine neue Rolle hinzuzufügen, rufen Sie
bomnipotent_client user-role add <EMAIL> <ROLLE>
[INFO] Added role to user
Der Benutzeraccount muss zu diesem Zeitpunkt bereits auf dem Server existieren, die Rolle jedoch nicht.
Nur Benutzer mit der
Admin-Rolle
können anderen Benutzern die Admin-Rolle zuweisen.
Entfernen
Um einem Benutzer eine Rolle zu entfernen, rufen Sie Folgendes auf: