Sicherheit
Ziel:
Abbildungen von Zugriffsbeschränkungen auf Objekte des ObjectModels
Folgende Annahmen werden getroffen:
- Es gibt Einschränkungen auf Objekte
- Alle Einschränkungen lassen sich als Filter Ausdrücken
- Inhaltlich erfolgt derzeit keine Betrachtung
- das wird sich aber nicht vermeiden lassen, eine Überlegung ist es, mit Sicherheitsklassen zu hantieren, und dann bspw. Attribute am Objekt den Klassen zuweisen
- Einige Personen / Gruppen sind tatsächlich auf konkrete Objekte beschränkt, andere auf Objektmengen, bspw. alle Objekte vom Typ XYZ
Konzept
Zur Definition der Berechtigungen gibt es das Konzept der Berechtigungscontainer.
Ein Berechtigungscontainer hat Mitglieder (Member). Dabei handelt es sich gleichberechtigt um Benutzer oder Gruppen (immer durch den Login-Namen referenziert). die Zuordnung Benutzer zu Gruppe ist Gegenstand des Autorisierung-Providers, nicht hier abgebildet.
Einem Berechtigungscontainer können Objekt-Filter (siehe Interface ObjectModel.Filter.IFilter) und/oder konkrete ObjektIds zugewiesen werden (das ginge auch per Filter, sollte aber wg. der Ref. Integrität nicht dort gespeichert werden).
Die Menge der zugreifbaren Objekte für einen Benutzer ergibt sich durch eine OR-Verknüpfung der Ergebnisse der Sicherheitscontainer.
Die am Container hinterlegten Sicherheitsattribute werden ebenfalls zusammengefasst.
Die Sicherheitsattribute sind dabei Typ-Übergreifend.
Davon sind die möglichen Aktionen am Objekt betroffen, die von der PiB Umgebung bereitgestellt werden (z.B. Tags vergeben, Besitz übernehmen etc.).
Der Zugriffsschutz auf die Inhalte des Objektes, typischerweise in speziellen Modulen implementiert, kann/muss durch das Modul selber geregelt werden.
Dies entspricht den Sicherheitseinstellungen für cardo Anwendungen, die auf Benutzer/Gruppen vergeben werden können. Optional kann das Modul dazu noch die beiden Flags ReadSecrets und EditInstance zusätzlich kombiniert auswerten.
Zusammengefasst:
- Sicherheitscontainer verfügen über die Einstellungen
- Objektfilter
- Zugewiesene ObjectIds
- Erlaubt
- Verboten
- Mitglieder
Ein Benutzer kann Mitglied in verschiedene Sicherheitscontainer sein. Die ermittelten Objekte können sich überschneiden. Sich ergebende Berechtigungen (erlaubt und verboten) werden dabei aufsummiert.
Die Mitgliedschaft kann zeitlich begrenzt werden.
Security-Flags (welche kombiniert die Rechte für Erlaubt und Verboten ergeben):
- None = 0
- Read = 1
- PiBChangeGlobalTags = 2
- PiBChangeLocation = 4
- PibDiscussions = 8
- PibChangeState = 16
- PibEditOwner = 32
- PibDeleteObject = 512
- ReadSecrets = 8192
- EditInstance = 16384
Zuletzt geändert: 24.09.2024 17:57:35 (erstmals erstellt 05.02.2019)