Sicherheitsdeskriptoren

Berechtigungen können für Benutzern ("users") oder Gruppen ("groups") zugewiesen werden.

Die Berechtigungsart ist eine Enumeration mit den Werten*1 (in Klammer der numerische Wert):

  • Rendering (1)
  • DataRetrieval (2)*2

*1: evtl. werden zu einem späteren Zeitpunkt weitere Berechtigungen definiert
*2: mit Version 7.0.19 eingeführt

Es gibt die Möglichkeit Berechtigungen zu gewähren ("grant"), oder zu verweigern ("revoke").

Das Verhalten bei der Auswertung kann über eine "policy" geregelt werden, mögliche Werte dieser Enumeration sind:

  • AllowIfGranted (0)
  • AllowIfNotRevoked (1)

Auswertung:

  • wurde kein Benutzerkontext übergeben, wird der Zugriff verweigert,
  • ist der Benutzer oder eine der Gruppen in "revoke", wird der Zugriff verweigert,
  • ist die Policy "AllowIfNotRevoked" definiert, oder der Benutzer oder eine der Gruppen ist in "grant" enthalten, dann wird der Zugriff erlaubt
  • trifft keine der Regeln, zu wird der Zugriff verweigert

Benutzer und Gruppennamen werden immer case-insensitiv ausgewertet (keine Unterscheidung der Groß/Kleinschreibung).

Definition der Json Struktur

Für das Zuweisen steht eine entsprechenden Json Struktur zur Verfügung.

Minimaler Aufbau des Json Objektes

{
   "policy":"AllowIfGranted"|"AllowIfNotRevoked",
   "grant":{}   
   "revoke":{}
}

Alle in "" genannten o.g. Bezeichnern entsprechen den Attributnamen im Json. Die Enumerationswerte können als Text oder Zahl angegeben werden, der numerische Wert ist in () nach dem Bezeichner angegeben.

"grant" und "revoke" sind identisch aufgebaut. Es kann "users" und/oder "groups" definiert werden. Dabei handelt es sich jeweils um Objekte, die als Attribut den Objektnamen (Nutzer/Gruppe) haben und als Wert eine (oder mehrere) Berechtigungsarten.

{
   "policy":"AllowIfGranted",
   "grant":{
        "users":{
            "U1":1
        }
   }   
   "revoke":{}
}

Auswertung bei dateibasierten Quellformaten

Bei dateibasierten Formaten kann eine Zusatzdatei mit den Sicherheitsinformationen abgelegt werden. Der Dateiname der Berechtigungsdatei entspricht dem der primären Quelldatei, erweitert um die Extension .isec.json.

Bsp.:

d:\temp\test.dxf -> d:\temp\test.dxf.isec.json

Bei jedem Zugriff auf die Primärdatei wird erneut nach dieser Datei gesucht, der Inhalt wird bei jedem Zugriff neu gelesen. D.H. derzeit erfolgt kein Caching dieser Dateien.

In der Datei wird eine Beschreibung entsprechend der oben dargestellt Json Struktur erwartet. Bei Syntaxfehlern wird ein Fehler beim Zugriff ausgelöst.

Ob für die entsprechende Datenquelle (Ebentyp) diese Berechtigungen ausgewertet wird, ist in der jeweiligen Beschreibung explizit angegeben.

Beispiele

Nur dem Benutzer "Admin" Zugriff gewähren

{
   "policy":"AllowIfGranted",
   "grant":{
      "users":{
         "admin":"Rendering,DataRetrieval"
      }
   },
   "revoke":{}
}

Allen Zugriff gewähren, außer den Mitgliedern der Gruppe "Gast"

{
   "policy":"AllowIfNotRevoked",
   "grant":{},
   "revoke":{
      "groups":{
         "Gast":1
      }
   }
}

Zugriff für alle die Mitglied der Gruppe "Hauptbenutzer" oder "Wichtig" sind und dem Benutzer "Admin".

{
   "policy":"AllowIfGranted",
   "grant":{
      "users":{
         "admin":3
      },
      "groups":{
         "Hauptbenutzer":1,
         "Wichtig":1
      }
   },
   "revoke":{}  
}

Zuletzt geändert: 04.02.2019 08:07:34 (erstmals erstellt 12.03.2017)