Aptli

Autorisierung

Die Autorisierung legt fest, was Benutzer nach der Authentifizierung tun dürfen und was nicht. Aptli kombiniert zwei unabhängige Ebenen: freizügige Administratorrechte (was Sie tun dürfen) und restriktive Rollenbeschränkungen (was Sie nicht sehen dürfen). Zusammen ermöglichen sie Administratoren eine detaillierte Kontrolle sowohl über die Funktionen als auch über die Sichtbarkeit von Daten.

Überblick über das Autorisierungsmodell

Das vollständige Sicherheitsmodell von Aptli umfasst drei Ebenen:

  1. Authentifizierung – Wer Sie sind (behandelt im Abschnitt „Authentifizierung“)
  2. Administratorrechte – Was Sie ändern DÜRFEN (freizügige Berechtigungen)
  3. Rollenbeschränkungen – Was Sie NICHT sehen DÜRFEN (restriktive Filter)

Alle Einschränkungen werden auf dem Server durchgesetzt – nicht autorisierte Daten werden niemals an Ihren Browser gesendet, unabhängig davon, was Sie über die Benutzeroberfläche, die API oder Exporte versuchen.

Dieses Modell bietet enorme Flexibilität bei gleichzeitiger Wahrung der Sicherheit.

Administratorrechte (erlaubnisbasiert)

Administratorrechte gewähren die Erlaubnis, Informationen zu ändern oder den Status anzupassen. Ohne diese Rechte können Benutzer nur Daten anzeigen und ihr eigenes Profil bearbeiten.

Gängige Administratorrechte:

  • usersUpdate – Profile anderer Benutzer bearbeiten (Name, Titel, Abteilung – KEINE E-Mail/Passwort)
  • usersLogout – Benutzer zwangsweise abmelden oder sperren
  • usersDelete – Benutzerkonten löschen
  • usersCreate – Neue Benutzer anlegen oder gelöschte Konten wiederherstellen
  • pointsCreate, pointsUpdate, pointsDelete – Punktmerkmale ändern
  • workOrdersCreate, workOrdersUpdate, workOrdersDelete – Arbeitsaufträge verwalten
  • assignmentsCreate - Arbeitsaufträge erstellen
  • reportsCreate - Arbeitsberichte einreichen
  • transactionsCreate - Bestandsbewegungen erstellen

Super-Rechte (haben Vorrang vor allen anderen):

  • appSettingSchemasModify - Einstellungen auf Anwendungsebene ändern (Domänen, Zeitlimits, Sicherheit)
  • adminRightsModify - Anderen Benutzern Administratorrechte gewähren
  • viewDeleted - Gelöschte Datensätze anzeigen (fast universell, teilweise durch Rollenbeschränkungen außer Kraft gesetzt)

Überprüfen der Administratorrechte eines Benutzers:

  1. Navigieren Sie zu Admin → Benutzer
  2. Öffnen Sie das Benutzerprofil
  3. Im Abschnitt „Administratorrechte“ werden alle gewährten Berechtigungen aufgelistet

Rollenbeschränkungen (restriktiv)

Rollenverwaltungsseite mit den konfigurierten Rollenbeschränkungen

Rollen sind Sammlungen von Einschränkungen, die das Anzeigen und Ändern von Datensätzen mit bestimmten Merkmalen verhindern. Die Zugehörigkeit zu einer Rolle wendet alle Einschränkungen auf diesen Benutzer an.

Rollenkomponenten:

  • Mitglieder – Benutzer, für die diese Einschränkungen gelten
  • Eigentümer – Benutzer, der die Mitgliedschaft verwaltet (oder Benutzer mit dem Administratorrecht rolesUpdate)
  • Rollenbeschränkungen – Filter auf Feldebene, die bestimmte Daten ausblenden

Struktur der Rollenbeschränkungen

Seite mit Rollendetails, die die Konfiguration der Beschränkungen auf Feldebene zeigt

Jede Beschränkung definiert:

  • Modell – Welcher Datentyp (Punkte, Polygone, Zuordnungen usw.)
  • Feld – Nach welcher Eigenschaft gefiltert werden soll (Eigentümer, Status, Kategorie, benutzerdefinierte Felder)
  • Vergleich – Wie abgeglichen werden soll (=, !=, >, <, enthält usw.)
  • Filterwert – Welcher Wert abgeglichen werden soll
  • Berechtigungen – Was gesperrt ist (Lesen, Bearbeiten, Erstellen, Löschen)

Anwendungsbeispiel: Trennung von Auftragnehmern

Szenario: Verhindern, dass Auftragnehmer A die Arbeit von Auftragnehmer B sieht

Einrichtung:

  1. Rolle erstellen: „Auftragnehmer A“
  2. Rollenbeschränkung hinzufügen:
    • Modell: Punkt (Objekte)
    • Feld: Eigentümer
    • Vergleich: =
    • Filterwert: Auftragnehmer B
    • Berechtigungen: Lesen ✓, Bearbeiten ✓, Erstellen ✓, Löschen ✓ (alle „true“ = keine dieser Aktionen möglich)
  3. Fügen Sie die Benutzer von Auftragnehmer A als Mitglieder hinzu

Ergebnis:

  • Mitglieder von Auftragnehmer A können keine Punkte sehen, bei denen Eigentümer = „Auftragnehmer B“ ist
  • Nicht nur in der Benutzeroberfläche ausgeblendet – die API gibt Daten so zurück, als ob die Datensätze nicht existieren
  • Kann nicht versehentlich über Screenshot, API-Aufruf oder Export eingesehen werden
  • Vollständig serverseitig durchgesetzt

Weitere Anwendungsfälle

Nach Arbeitsphase: Verhindern, dass Außendienstmitarbeiter QC-Validierungsberichte sehen:

Role: "Field Workers"
Restriction:
  Model: Validation
  Field: status
  Comparison: !=
  Filter Value: "" (any value)
  Permissions: Read ✓

Außendienstmitarbeiter können Validierungen überhaupt nicht sehen.

Nach Asset-Typ: Infrastrukturteams trennen (Masten/Leerrohre vs. aktive Anlagen):

Role: "Civil Team"
Restriction:
  Model: Point
  Field: category
  Comparison: =
  Filter Value: "Active Equipment"
  Permissions: Read ✓, Edit ✓, Create ✓, Delete ✓

Das Bau-Team kann Punkte aktiver Anlagen weder sehen noch ändern.

Nach physisch/logisch: Zugriff auf Bürodaten trennen (Kapazitätsbeziehungen vs. Bürostandorte):

Role: "Capacity Analysts"
Restriction:
  Model: Point
  Field: layer
  Comparison: =
  Filter Value: "Office Locations"
  Permissions: Edit ✓, Create ✓, Delete ✓

Analysten können Büros anzeigen, aber Standorte nicht ändern (schreibgeschützt).

Kombination von Administratorrechten und Rollenbeschränkungen

Standardverhalten: Alle Benutzer können alles sehen, aber nichts ändern (ohne Administratorrechte).

Hinzufügen von Schreibzugriff mit Einschränkungen:

Beispiel: Außendienstmitarbeiter können ihre eigene Arbeit bearbeiten, aber nicht die anderer

Admin Rights:
  - reportsCreate: true
  - reportsUpdate: true

Role Restrictions:
  Model: Report
  Field: reportedBy
  Comparison: !=
  Filter Value: [current user ID]
  Permissions: Edit ✓

Ergebnis:

  • Mitarbeiter können Berichte erstellen (Administratorrechte gewährt)
  • Mitarbeiter können NUR ihre eigenen Berichte bearbeiten (Rollenbeschränkung filtert andere heraus)
  • Berichte anderer Mitarbeiter können weder eingesehen noch geändert werden

Serverseitige Durchsetzung

So funktioniert es:

  • Alle Abfragen werden gefiltert, bevor Daten zurückgegeben werden
  • Rollenbeschränkungen werden auf dem Server angewendet (nicht nur Ausblenden in der Benutzeroberfläche)
  • Benutzer können die Einschränkungen nicht über direkte API-Aufrufe, Browser-Tools oder Exporte umgehen
  • Für nicht autorisierte Benutzer existieren die Daten tatsächlich nicht

Sicherheitsimplikationen:

  • Ein Screenshot des Bildschirms einer anderen Person hilft nicht weiter (die Daten werden für Sie nicht geladen)
  • Eingeschränkte Daten können nicht exportiert werden (der Server erzwingt die Filter)
  • Datensatz-IDs können nicht „erraten“ werden (vor der ID-Suche gefiltert)
  • Datensätze außerhalb Ihrer Berechtigungen werden als nicht gefunden zurückgegeben, selbst wenn Sie die ID kennen

Rollen verwalten

Rollen erstellen:

  1. Navigieren Sie zu Admin → Rollen
  2. Klicken Sie auf „Rolle erstellen“
  3. Geben Sie den Rollennamen und die Beschreibung ein
  4. Fügen Sie Mitglieder hinzu (ziehen Sie Benutzer in das Mitgliederfeld)
  5. Fügen Sie Rollenbeschränkungen hinzu (es können mehrere sein)
  6. Speichern

Rollen bearbeiten:

  • Nur Rolleninhaber ODER Benutzer mit rolesUpdate-Administratorrechten
  • Kann Mitglieder hinzufügen/entfernen
  • Kann Einschränkungen ändern
  • Kann Rolle löschen (befreit Mitglieder von Einschränkungen)

Rollenmitgliedschaft:

  • Benutzer können mehreren Rollen angehören (Einschränkungen werden kombiniert)
  • Austritt aus der Organisation: Vor dem Löschen des Kontos aus allen Rollen entfernen
  • Massenmitgliedschaft: Mehrere Benutzer gleichzeitig ziehen

Anpassung der Berechtigungen für neue Benutzer

Konfiguration der App-Einstellungen (erfordert appSettingSchemasModify):

  1. Navigieren Sie zu App-Einstellungen → Authentifizierung
  2. „Rollen für neue Benutzer“ – Rollen automatisch neuen Konten zuweisen
  3. „Admin-Rechte für neue Benutzer“ – Standardberechtigungen erteilen
  4. Speichern

Typische Konfigurationen:

Standardeinstellungen für Außendienstmitarbeiter:

Roles: ["Field Workers"]
Admin Rights: {
  reportsCreate: true,
  assignmentsRead: true
}

Standardeinstellungen für Bürokoordinatoren:

Roles: []
Admin Rights: {
  assignmentsCreate: true,
  ordersCreate: true,
  stockItemsView: true
}

Keine automatische Vergabe (manuelle Überprüfung):

Roles: []
Admin Rights: {} (none)

Administratoren weisen die Berechtigungen nach Überprüfung des Kontos manuell zu.

Aktive Berechtigungen anzeigen

Für einen bestimmten Benutzer:

  1. Zum Benutzerprofil navigieren
  2. Abschnitt „Admin-Rechte“ – Was der Benutzer tun DARF
  3. Abschnitt „Rollen“ – Was der Benutzer NICHT sehen DARF (durch Einschränkungen)
  4. Die kombinierte Ansicht zeigt die aktiven Berechtigungen an

Berechtigungen testen:

  1. Als Benutzer anmelden (oder mit Admin-Rechten als dieser auftreten)
  2. Navigieren Sie wie gewohnt
  3. Eingeschränkte Daten werden einfach nicht angezeigt
  4. Aktionen ohne Administratorrechte sind deaktiviert/ausgeblendet

Bewährte Verfahren

Zunächst restriktiv vorgehen, bei Bedarf Rechte gewähren:

  • Neue Benutzer erhalten minimale Berechtigungen
  • Fügen Sie Administratorrechte hinzu, je nach Anforderungen der Rolle
  • Es ist einfacher, Rechte zu gewähren als zu entziehen (vermeidet „Permission Creep“)

Rollen für Datenzugriff nutzen:

  • Auftragnehmer trennen (Verhinderung von Wettbewerbsausspähung)
  • Arbeitsphasen trennen (Qualitätskontrolle von Außendienstmitarbeitern)
  • Anlagentypen trennen (Infrastruktur von aktiven Anlagen)

Admin-Rechte für Funktionen nutzen:

  • Wer kann Aufträge erstellen?
  • Wer kann den Bestand ändern?
  • Wer kann Berechtigungen erteilen?

Zweck der Rolle dokumentieren:

  • Eindeutiger Rollenname („Auftragnehmer A“ ist besser als „Rolle 1“)
  • Beschreibung erläutert Einschränkungen
  • Hilft zukünftigen Administratoren, die Absicht zu verstehen

Regelmäßige Berechtigungsprüfungen:

  • Vierteljährliche Überprüfung der Administratorrechte von Benutzern
  • Entfernen nicht genutzter Rechte (Benutzer hat die Rolle gewechselt)
  • Überprüfen der Rollenmitgliedschaften (Benutzer hat die Organisation verlassen)

Zugriffsversuche überwachen:

  • Protokollierung fehlgeschlagener Autorisierungsversuche
  • Muster von Ablehnungen = Benutzer versucht unbefugten Zugriff
  • Untersuchung und Anpassung der Berechtigungen oder Unterweisung des Benutzers

Prinzip der geringsten Privilegien:

  • Erteilung der für die Aufgabenstellung erforderlichen Mindestberechtigungen
  • Vorübergehend erweiterte Zugriffsrechte für Projekte (anschließend entfernen)
  • Superrechte (adminRightsModify) nur für vertrauenswürdige Administratoren