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:
- “bom_manager” mit der Berechtigung BOM_MANAGEMENT.
- “csaf_manager” mit der Berechtigung CSAF_MANAGEMENT.
- “role_manager” mit der Berechtigung ROLE_MANAGEMENT.
- “user_manager” mit der Berechtigung USER_MANAGEMENT.
- “vuln_manager”, mit der Berechtigung VULN_MANAGEMENT.
Sie können diese Rollen nach Belieben ändern oder löschen; es handelt sich lediglich um Vorschläge.
Wenn Ihnen diese Rollen nicht gefallen, können Sie sie mit den folgenden Aufrufen löschen:
bomnipotent_client role-permission remove bom_manager BOM_MANAGEMENT;
bomnipotent_client role-permission remove csaf_manager CSAF_MANAGEMENT;
bomnipotent_client role-permission remove role_manager ROLE_MANAGEMENT;
bomnipotent_client role-permission remove user_manager USER_MANAGEMENT;
bomnipotent_client role-permission remove vuln_manager VULN_MANAGEMENT;
Admin-Rolle
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.
bomnipotent_client role-permission remove admin BOM_MANAGEMENT
bomnipotent_client role-permission add admin "PRODUCT_ACCESS(BOMnipotent)"
[ERROR] Received response:
422 Unprocessable Entity
Cannot modify admin role permissions
Die Administratorrolle verfügt über alle Berechtigungen, die erteilt werden können, und dann noch einige weitere .
Auflistung
Um alle Rollen und die zugehörigen Berechtigungen aufzulisten, rufen Sie Folgendes auf:
bomnipotent_client role-permission list
╭──────────────┬─────────────────┬───────────────────────────╮
│ Role │ Permission │ Last Updated │
├──────────────┼─────────────────┼───────────────────────────┤
│ bom_manager │ BOM_MANAGEMENT │ 2025-03-20 10:38:27.29648 │
│ │ │ 0 UTC │
│ csaf_manager │ CSAF_MANAGEMENT │ 2025-03-20 10:38:27.29695 │
│ │ │ 2 UTC │
│ role_manager │ ROLE_MANAGEMENT │ 2025-03-20 10:38:27.29621 │
│ │ │ 3 UTC │
│ user_manager │ USER_MANAGEMENT │ 2025-03-20 10:38:27.29562 │
│ │ │ 0 UTC │
│ vuln_manager │ VULN_MANAGEMENT │ 2025-03-20 10:38:27.29671 │
│ │ │ 9 UTC │
╰──────────────┴─────────────────┴───────────────────────────╯
Hinzufügen
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:
bomnipotent_client role-permission add <ROLLE> <BERECHTIGUNG>
[INFO] Added permission BOM_MANAGEMENT to role
Sie könnten beispielsweise mehrere Berechtigungen in den Rollen “doc_manager” und “access_manager” zusammenfassen:
bomnipotent_client role-permission add doc_manager BOM_MANAGEMENT;
bomnipotent_client role-permission add doc_manager CSAF_MANAGEMENT;
bomnipotent_client role-permission add doc_manager VULN_MANAGEMENT;
bomnipotent_client role-permission add access_manager ROLE_MANAGEMENT;
bomnipotent_client role-permission add access_manager USER_MANAGEMENT;
Falls Sie die Standardrollen wie oben beschrieben entfernt haben, erhalten Sie Folgendes:
bomnipotent_client role-permission list
╭────────────────┬─────────────────┬───────────────────────────╮
│ Role │ Permission │ Last Updated │
├────────────────┼─────────────────┼───────────────────────────┤
│ access_manager │ ROLE_MANAGEMENT │ 2025-03-20 11:05:42.06443 │
│ │ │ 7 UTC │
│ access_manager │ USER_MANAGEMENT │ 2025-03-20 11:04:57.51274 │
│ │ │ 7 UTC │
│ doc_manager │ BOM_MANAGEMENT │ 2025-03-20 11:05:55.15986 │
│ │ │ 0 UTC │
│ doc_manager │ CSAF_MANAGEMENT │ 2025-03-20 11:05:50.92466 │
│ │ │ 9 UTC │
│ doc_manager │ VULN_MANAGEMENT │ 2025-03-20 11:05:47.35620 │
│ │ │ 9 UTC │
╰────────────────┴─────────────────┴───────────────────────────╯
Falls die hinzuzufügende Berechtigung nicht existiert oder fehlerhaft ist, erhalten Sie eine Fehlermeldung:
bomnipotent_client role-permission add clam_manager CLAM_MANAGEMENT
[ERROR] Received response:
422 Unprocessable Entity
Failed to parse permission: Invalid UserPermission string: CLAM_MANAGEMENT
Entfernen
Um eine Berechtigung aus einer Rolle zu entfernen, rufen Sie einfach Folgendes auf:
bomnipotent_client role-permission remove <ROLE> <PERMISSION>
[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.