Architektur & Sicherheit

Architektur ist
Sicherheit

Was in der Datenbank liegt, bestimmt, wer zugreifen kann — und wer nicht. Temporalis EMS trennt Mandanten physisch, nicht logisch. Das ist teuer zu betreiben und günstig zu verteidigen.

Mandanten-Isolation

Database-per-Tenant.
Nicht Row-Level, nicht Schema-Level.

Jeder Mandant bekommt eine eigene Datenbank auf unserer Multi-Model-Database. Ein vergessener WHERE-Filter im Code kann keine fremden Daten leaken, weil die Verbindung gar nicht auf fremde Daten zeigt.

Standard-Ansatz

Eine DB für alle — TenantID-Spalte

  • Jede Query muss WHERE TenantID = ? enthalten.
  • Ein Fehler im Code oder einem Admin-Export ist sofort ein Leak.
  • Backup-Restore betrifft alle Mandanten gleichzeitig.
Unser Ansatz

Eine DB pro Mandant — physisch getrennt

  • Querys brauchen keinen TenantID-Filter — die Verbindung ist bereits gebunden.
  • Bug im Code ≠ Cross-Tenant-Leak. Die fremde DB ist nicht mal im Connection-Pool.
  • Mandant-Offboarding = ein DB-Drop. Kein Restrow im System.
  • Einzelnes Backup/Restore pro Mandant — keine Kreuzwirkung.

Implementiert über EMS.Modules.Tenant.Abstraction und TenantClaimsTransformation. Die Tenant-Zuordnung geschieht am Edge (JWT-Claim → DB-Connection), bevor der erste Query-Builder angefasst wird.

Hosting

Deutsche Server,
keine Drittlandtransfers

Alle Kernkomponenten laufen bei Hetzner Online in Falkenstein (Vogtland) und Nürnberg — zwei ISO-27001- zertifizierte Rechenzentren in Deutschland. Keine CloudFront-Edges, kein Shadow-Telemetry, kein Fallback auf US-Infrastruktur.

  • GeoredundanzFalkenstein + Nürnberg, > 300 km Abstand
  • Drittstaatentransferkeiner — alle Subprozessoren in EU
  • Anbieter-ZertifizierungHetzner: ISO 27001, DIN 18599, TÜV
  • Netz-TransitDE-CIX Frankfurt — kein US-Backbone-Routing nötig
Sub-Prozessoren und AVV ansehen

Authentifizierung

Wer reinkommt,
kontrolliert ihr

Kein proprietäres Login-System. Keycloak im Backend, standardkonforme Protokolle — so könnt ihr euer Identity-Provider-Setup weiterverwenden, anstatt eine Parallelwelt zu pflegen.

OIDC + OAuth2

Login via OpenID Connect. Authorization-Code-Flow mit PKCE, Refresh-Token-Rotation, Session-Claims mit Tenant-Zuordnung.

SSO via SAML 2.0

Enterprise-Konnektoren für Azure AD/Entra, Okta, Keycloak, Google Workspace. Attribute-Mapping für Gruppen-basierte Rollen.

MFA + Hardware-Keys

TOTP (Authenticator-App) und WebAuthn/Passkeys (YubiKey, Windows Hello, Touch ID) out of the box. Phishing- resistent.

Granulare Berechtigungen

17-stufiger Projekt-Permission-Stack + rollen- und nutzerbasierte Geldfeld-Sichtbarkeit. Alles im Audit-Log nachvollziehbar.

Technologie-Stack

Offene Standards,
kein Vendor-Lock

Jede Schicht des Stacks ist ein dokumentierter, quelloffener Standard. Exportpfade in beide Richtungen. Keine erfundenen Datenformate, die euch an uns binden.

FrontendAngular 21

Server-Side-Rendering, Lazy-Loaded Module, Standalone Components.

Backend.NET 10

Minimal APIs, OpenAPI 3, strukturierte Logs (Serilog).

DatenbankMulti-Model-Database

Graph + Dokument + Key-Value in einer Engine — für den 49-Property-Projektgraph.

IdentityKeycloak

OIDC, SAML, LDAP-Federation. Self-Hosted im EU-Rechenzentrum.

ReportsReport-Designer

Visueller Report-Designer im Produkt. Export als Excel, PDF, CSV.

BetriebDocker + Kubernetes

GitOps-Deployments, automatische Rollbacks, infrastructure-as-code.

Observability & Audit

Jede Änderung
bleibt nachvollziehbar

Audit-Log auf Entitätsebene mit Vorher-/Nachher-Snapshot, Akteur und Zeitstempel. Strukturierte Logs via Serilog mit Korrelations-IDs — ihr seht eine Request-Chain von der Edge bis zur Query. Exportierbar für eure eigene SIEM-Pipeline.

Für IT- und Security-Teams

Technische Tiefenprüfung?
Sprecht uns direkt an.

Wir zeigen euch den Request-Flow, geben Einblick in den Audit-Log, diskutieren eure IdP-Integration. Keine Marketing-Slides — nur echte Antworten.