Inventage

Regelwerk.com
Regelwerk.com

Regelwerk

Die feingranulare Steuerung des Datenzugriffs ist eine essentielle Funktion von Anwendungen. Sie wird von den meisten Geschäftsanwendungen gefordert, welche sensible Daten verarbeiten. Trotzdem wird diese Aufgabe bis heute nur ungenügend gelöst. Die grössten Schwachpunkte sind:

  • eine erschwerte Wartbarkeit
  • keine Verwendung einer Positivliste (Whitelist)
  • fehlende Transparenz bei der aktuellen Implementierung

Security Rules

Aus den obigen Kritikpunkten kann abgeleitet werden, dass die Umsetzung einer feingranularen Datenzugriffssteuerung konfigurativ und regelbasiert erfolgen muss. Dadurch bleibt die schnelle Anpassung möglich, weil es keine Änderungen des Programmcodes braucht.

Ausserdem kann die Menge der Regeln jederzeit auch von Personen eingesehen und überprüft werden, welche mit der Programmierung nicht vertraut sind. Dies führt dazu, dass die Dateneigentümer, meist Personen auf der Anwendungsseite, wieder die Verantwortung über den Datenzugriff auf ihre Daten bekommen.

Was macht Regelwerk?

Regelwerk ist eine Softwarekomponente für die feingranulare Steuerung des Datenzugriffs. Es schützt die Daten in einer relationalen Datenbank und kann auf einfache Weise in Anwendungen integriert werden. Regelwerk ermöglicht, dass für jeden einzelnen Benutzer kontrolliert werden kann, welche Daten gelesen, verändert, erzeugt und gelöscht werden könnnen.

Die Steuerung erfolgt nicht im Programmcode, sondern rein konfigurativ in der Form von Regeln. Diese werden zur Laufzeit bei jedem Datenzugriff berücksichtigt und zur Modifikation der auszuführenden SQL Anweisung angewendet.

Der Ansatz der Positivliste ist ein grundlegendes Merkmal von Regelwerk. Die Regeln stellen dabei die Positivliste dar, denn erst eine vorhandene Regel ermöglicht für einen Benutzer den Datenzugriff.

Eine Regel ist aus den folgenden Teilen zusammengesetzt:

  • Zugriffsart
  • Subjekt
  • Ressource
  • Zugriffsbedingung

Es werden folgende Zugriffsarten unterstützt:

  • erzeugend (create)
  • lesend (read)
  • verändernd (update)
  • löschend (delete)

Als Subjekt kann eine einzelne Person aber auch eine Rolle definiert werden. Eine Ressource stellt eine Tabelle in der relationalen Datenbank dar. Mit der Zugriffsbedingung wird festgelegt, wie die SQL-Anweisung modifiziert werden muss.

Es können sowohl Selektionen und Projektionen dafür verwendet werden. Die Selektion definiert auf welche Tupel in der Tabelle zugegriffen werden darf. Die Projektion legt fest, welche Spalten für den Zugriff erlaubt sind. Erst durch die Kombination von Selektion und Projektion wird die Steuerung sehr feingranular möglich.

Der Einbau erfolgt ohne Anpassung der Geschäftslogik. Der Programmcode bleibt komplett frei von jeder Abhängigkeit zu Regelwerk, denn die Integration von Regelwerk geschieht ausschliesslich im Anwendungsserver.