Trennung der Auftragnehmer in zwei Ebenen
Wenn sich mehrere Parteien eine Plattform teilen (Mitarbeiter, Subunternehmer, sogar konkurrierende Auftragnehmer), muss jeder Einzelne sowohl seine eigenen Arbeitsbereiche als auch die gemeinsamen Ebenen einsehen können. Im Folgenden wird erläutert, wie dies durch zwei Berechtigungsebenen ermöglicht wird.
Die Situation
Viele Organisationen betreiben gemeinsame Plattformen, auf denen mehrere Parteien an denselben Anlagendaten arbeiten. Ein Versorgungsunternehmen verfügt über interne Teams, einen Hauptbauunternehmer und zwei oder drei Subunternehmer, die alle im selben Netzwerk tätig sind. Eine Kommune beschäftigt eigene Mitarbeiter sowie externe Ingenieurbüros. Parteien, die miteinander im Wettbewerb stehen, arbeiten häufig innerhalb derselben Anwendung zusammen.
Jeder Teilnehmer benötigt eine Anmeldung. Die Anmeldung teilt dem System mit, wer er ist. Die Trennung erfordert eine zweite Angabe: Was darf die jeweilige Person sehen?
Was eine Trennung erfordert
Für die Trennung auf einer gemeinsamen Plattform sind vier Eigenschaften erforderlich.
Eine gemeinsame Plattform. Die Beteiligten arbeiten bei den meisten Daten zusammen, erstellen darauf basierende Berichte und nutzen eine gemeinsame Karte. Die Trennung betrifft nur den Teil, der vertraulich ist.
Durchsetzung an der Quelle. Eingeschränkte Datensätze verbleiben auf dem Server. Der Browser, die API und jeder Export erhalten nur die Informationen, die der jeweilige Nutzer einsehen darf.
Regeln an einem Ort. Eine einmal festgelegte Regel gilt für alle Arten des Datenabrufs, einschließlich später hinzugefügter Funktionen.
Aktuelle Daten für alle. Jede Partei arbeitet mit den Live-Datensätzen.
Aptli erfüllt alle vier Anforderungen mit zwei Ebenen.
Das Zweischichtenmodell
Unser Ansatz unterteilt die Autorisierung in zwei unabhängige Ebenen, die sich zusammensetzen.
Administratorrechte sind permissiv. Sie legen fest, was eine Person tun darf: einen Arbeitsauftrag erstellen, einen Bericht bearbeiten, einen Lagerartikel löschen. Eine Person ohne Administratorrechte kann nur die Daten einsehen, die ihre Rolle zulässt.
Rolleneinschränkungen sind restriktiv. Jede Einschränkung umfasst einen Datensatztyp (Objekte, Arbeitsaufträge, Berichte), ein Feld dieses Datensatztyps (Tags, Status, Kategorie), einen Vergleich und einen Wert. Mitgliedern der Rolle werden die ausgewählten Aktionen (anlegen, lesen, bearbeiten, löschen) für entsprechende Datensätze untersagt, und jede Einschränkung ist als einfacher Satz formuliert.
Die beiden Ebenen arbeiten unabhängig voneinander. Ein Außendienstmitarbeiter kann das Recht besitzen, Berichte zu bearbeiten, während eine Rollenbeschränkung Berichte anderer Personen ausblendet. Das Administratorrecht gewährt die Befugnis, und die Rollenbeschränkung schränkt den Umfang ein. Diese Unabhängigkeit gewährleistet die Solidität des Modells, während das Produkt wächst.
Durchsetzung auf dem Server
Aptli wendet auf dem Server Rollenbeschränkungen an, bevor die Daten die Datenbank verlassen:
- Der Filter gilt für alle Arten des Datenabrufs: Datensatzseiten, Listen, die API, Exporte und die Karte.
- Eine Person, die die ID eines Datensatzes einfügt, den sie möglicherweise nicht einsehen darf, erhält die Fehlermeldung „404 Not Found“.
- Ein von einer anderen Person geteilter Link öffnet nur diejenigen Inhalte, die gemäß den eigenen Berechtigungen der Person zulässig sind.
- Neue Funktionen übernehmen diese Regeln, da sie auf dieselbe Server-Datenschicht zugreifen.
Das System beantwortet bei jeder Anfrage eine Frage: Entspricht dieser Datensatz der Regel?
Ein Beispiel
Zwei Auftragnehmer arbeiten an demselben Glasfaserausbauprojekt. Beide verwenden dieselbe Karte und dieselben gemeinsamen Basisebenen und erstellen Berichte über ihre jeweiligen Arbeiten. Die Objekte jedes Auftragnehmers sind mit dessen Kennzeichnung versehen: contractor-a oder contractor-b.
Erstellen Sie eine Rolle mit dem Namen Auftragnehmer A mit einer Einschränkung:
- Datensatztyp: Objekt
- Feld: tags
- Vergleich: ist eines von
- Wert: contractor-b
- Gesperrte Aktionen: Anlegen, Lesen, Bearbeiten, Löschen
Im Fenster „Rollen“ wird dies als Satz wiedergegeben: Mitglieder der Rolle „Auftragnehmer A“ können alle Aktionen ausführen, mit Ausnahme des Erstellens, Lesens, Bearbeitens und Löschens von Feature-Datensätzen, bei denen das Tag „contractor-b“ lautet. Weisen Sie den Mitarbeitern von Auftragnehmer A diese Rolle zu und richten Sie die Spiegelung für Auftragnehmer B mit der Funktion „contractor-a“ ein. Das ist die gesamte Konfiguration.
Die Teams von Auftragnehmer A sehen nun ihre eigenen Objekte sowie die gemeinsam genutzten Ebenen. In einer Liste der Objekte werden die von Auftragnehmer B nicht aufgeführt, ein CSV-Export wird gefiltert, und beim Einfügen einer ID wird der Fehler „404 Not Found“ angezeigt. Auftragnehmer B sieht das Spiegelbild. Jede Seite sieht ihre eigenen Arbeiten, wo sie sich befinden und wann sie geändert wurden.
Die gemeinsam genutzten Basisschichten (Kabeltrassen, Masten, Kanalinfrastruktur) tragen keine der beiden Kennzeichnungen und bleiben für beide Seiten sichtbar. Die Parteien arbeiten dort zusammen, wo sie es wünschen, und agieren getrennt, wo es erforderlich ist.
Wenn die Parteien nichts gemeinsam haben
Zwei Parteien, die nichts gemeinsam haben, niemals zusammenarbeiten und aus regulatorischen Gründen auf physisch getrennten Infrastrukturen betrieben werden müssen, nutzen getrennte Instanzen. Aptli betreibt pro Kunde eine Instanz und eine Datenbank, wobei jede Partei über eine eigene verfügen kann.
Der Test ist einfach: Parteien, die von denselben Basisschichten, denselben Berichten und derselben Karte profitieren, gehören auf eine Plattform, wobei die Trennung auf Serverebene durchgesetzt wird.
Zusammenfassung
- In den Bereichen Versorgungswirtschaft, Telekommunikation und Kommunalverwaltung nutzen mehrere Akteure, darunter mitunter auch Wettbewerber, häufig eine gemeinsame Plattform.
- Jede Person wird durch eine Anmeldung identifiziert. Eine zweite Ebene legt fest, welche Informationen die jeweilige Person einsehen darf.
- Für die Trennung ist eine gemeinsame Plattform erforderlich, deren Durchsetzung an der Quelle erfolgt, mit Regeln an einem zentralen Ort und aktuellen Daten für alle Beteiligten.
- Die beiden Ebenen von Aptli sind Administratorrechte (was eine Person tun darf) und Rollenbeschränkungen (auf welche Datensätze der Zugriff gesperrt ist), die auf dem Server durchgesetzt werden.
- Gesperrte Datensätze verbleiben auf dem Server und sind in Listen, der API, Exporten und eingefügten Links nicht enthalten.
- Die bewährte Konfiguration sieht eine Rolle pro Auftragnehmer vor, die den Zugriff auf die Tags des anderen einschränkt, wobei die gemeinsamen Ebenen für beide sichtbar sind.
- Parteien, die keine Daten austauschen und eine separate Infrastruktur benötigen, nutzen separate Instanzen.