Zum Inhalt

PrototypDienstreisen für FraAlliance – Stand 19.10.2026

Für die IT

Dienstreisen mit Ihrer Identität, Ihren Regeln

Entra-Login, Geschäftsregeln in PostgreSQL, lokale KI auf ITM-Infrastruktur und Microsoft-Anbindung mit klar benannten Berechtigungen.

Alle Aussagen „umgesetzt“ beziehen sich auf den Prototyp, nicht auf einen Produktivbetrieb.

Ihre Identität, nicht unsere.

Anmeldung über Microsoft Entra ID mit App-Rollen. Zugang hat, wer in der Sicherheitsgruppe „APP-Dienstreisen-Nutzer“ ist. MFA und Conditional Access liegen bei Ihnen im Tenant.

Regeln in der Datenbank, nicht im Workflow.

Wer was in welchem Status darf, entscheidet PostgreSQL. Jede Änderung wird manipulationserkennbar protokolliert, Genehmigungen sind per Hash-Kette nachweisbar.

Keine Cloud-KI im Datenpfad.

OCR und Reiseassistent laufen auf Infrastruktur von ITM. Belegbilder und Eingabetexte gehen an keinen externen KI-Anbieter.

Architektur im Überblick

Frontend (React, MSAL)

Oberfläche im FraAlliance-Branding; Anmeldung per OIDC mit Autorisierungscode und PKCE, keine Datenbankverbindung.

Microsoft Entra ID

Login, App-Rollen im Token, Sicherheitsgruppe als Zugangsvoraussetzung (Single-Tenant-Registrierung).

Cloudflare Tunnel + Filter-Proxy

Erreichbarkeit ohne offene Eingangsports; der Proxy lässt nur POST auf die freigegebenen Webhook-Pfade der App durch.

n8n (headless)

Prozesssteuerung als dünner Vermittler (Webhooks, Outbox-Worker); kein Zugang für Anwender, auch nicht für FraAlliance.

PostgreSQL 17, Schema btf

Die zwei Einstiegsfunktionen btf.cmd (Befehle) und btf.query (Abfragen) enthalten alle Geschäftsregeln; dazu Audit-Tabelle, Freigabe-Nachweis und Outbox.

Outbox mit Worker

Externe Wirkungen (Mail, Kalender, OCR, PDF, Archiv) werden in der Datenbank eingereiht und mit Wiederholung abgearbeitet.

Dateiablage Belege

Pfad und SHA-256 in der Datenbank; Zugriff nur über die Prozesssteuerung.

PDF-Erzeugung

Abrechnung und Belegbündel serverseitig, nicht im Browser.

Lokale KI (Ollama)

Texterkennung für Belege (Vorschlag, Mensch bestätigt) und Reiseassistent; kein Cloud-KI-Dienst.

Microsoft Graph, Exchange, SharePoint

Verzeichnis lesen, Mail und Kalender aus Funktionspostfach, Archiv in einer SharePoint-Site.

Lokale Notfallkonten

Von Entra unabhängiger Zugang nur für die Systemadministration.

Architekturdiagramm: Browser mit Frontend und Entra-Login, Cloudflare Tunnel mit Filter-Proxy, n8n als Prozesssteuerung, PostgreSQL mit Geschäftsregeln, Audit und Outbox, Dateiablage, PDF-Dienst, lokale KI sowie Microsoft Graph, Exchange und SharePoint

Der Browser hat keinen Pfad zu Datenbank, Graph, SharePoint oder Personio. Der Notfallpfad läuft am Entra-Login vorbei.

Sicherheit und Berechtigungen

  1. 01

    Login

    OIDC mit Autorisierungscode und PKCE gegen Ihre Entra-Instanz; Token im Sitzungsspeicher des Browsers; Single-Tenant-Registrierung.

  2. 02

    Zugang über Gruppe

    Mitgliedschaft in der Entra-Sicherheitsgruppe „APP-Dienstreisen-Nutzer“ = Zugang; die Gruppe ist der Enterprise-App zugewiesen. Ein stündlicher Gruppenabgleich ist als Ziel beschrieben, der Schalter zur Durchsetzung (group_enforce) steht standardmäßig auf aus. Gruppenbasierte Zuweisung setzt Entra ID P1/P2 voraus; für den ITM-Demo-Tenant nicht geprüft.

  3. 03

    Rollen in der App mit Audit

    Fachrollen Freigebende, Finance und HR werden von der Systemadministration in der App vergeben (append-only Rollentabelle, Begründung Pflicht, Mail-Benachrichtigung). Selbstvergabe ist gesperrt; Freigebende darf nicht mit HR, Finance oder Systemadministration kombiniert werden. Systemadmin bleibt eine Entra-App-Rolle.

  4. 04

    Geschäftsregeln in der Datenbank

    btf.cmd und btf.query prüfen Rolle, Eigentümerschaft und Status. Die App-Datenbankrolle hat keine direkten Tabellenrechte auf Fach- und Audit-Tabellen. Eigene Reise freigeben ist gesperrt.

  5. 05

    Append-only Audit

    Jeder erfolgreiche Befehl schreibt ein Ereignis (Akteur, Befehl, Status vorher/nachher, Payload-Hash, Zeit); ein Trigger verhindert UPDATE und DELETE.

  6. 06

    Hash-verkettete Freigabe-Nachweise

    Jede Entscheidung speichert eine Momentaufnahme des Antrags, einen Inhalts-Hash und einen Ketten-Hash über den Vorgänger. Die Kette lässt sich per Abfrage neu berechnen. Grenze: Datenbank-Owner mit DDL-Rechten könnten die Schutzmechanismen selbst ändern; die Kette macht Änderungen erkennbar, verhindert sie nicht.

  7. 07

    Bankdaten

    IBAN und BIC verschlüsselt gespeichert, in Abfragen standardmäßig maskiert; Klartext nur für die berechtigte Person oder Finance ab Abrechnung, jede Anzeige erzeugt ein Audit-Ereignis.

  8. 08

    Notfallkonten (Break-glass)

    Lokale Identitäten für den Entra-Ausfall, nur mit Rolle Systemadmin (keine Reisen, keine Freigaben, keine fremden Belege oder Bankdaten). Passwort als bcrypt-Hash, TOTP verpflichtend (Geheimnis verschlüsselt), Sitzung 30 Minuten ohne Aktivität (absolut acht Stunden), Sperre nach fünf Fehlversuchen, jede Anmeldung erzeugt Audit-Eintrag und Alarm-Mail, jeder Befehl trägt auth=local im Audit. Anlage durch die Systemadministration oder per Owner-Zugriff auf die Datenbank, wenn Entra nicht erreichbar ist. Beschrieben in Migration 023. Im Prototyp getestet: 10 von 10 Prüfschritten.

Fehlermodell

Stabile Fehlercodes mit HTTP-Status, deutscher Meldung und Hinweis (z. B. auth_invalid 401, role_missing und not_owner 403, wrong_status 409, validation 422). Wiederholte Anfragen mit derselben Request-UUID liefern das gespeicherte Ergebnis (idempotent).

Integrationen und Berechtigungen

Entra ID (Anmeldung)ZweckLogin, App-RollenBerechtigungDelegiert, OIDC mit PKCEScope / EingrenzungSingle-Tenant-Registrierung; Zuweisung erforderlich
Exchange OnlineZweckMail aus Funktionspostfach, Kalendereintrag der reisenden PersonBerechtigungExchange RBAC for ApplicationsScope / EingrenzungAuf benannte Postfächer begrenzt (im Prototyp zwei)
SharePoint OnlineZweckArchiv für Abrechnung, Belegbündel, ReiseprotokolleBerechtigungGraph Sites.SelectedScope / EingrenzungEine benannte Site
Microsoft Graph, VerzeichnisZweckName, Abteilung, Kostenstelle, Vorgesetzte(r) lesenBerechtigungUser.Read.All (Anwendung)Scope / EingrenzungMandantenweit, nur lesend. Graph kennt kein Recht „nur Nutzer dieser App“; User.ReadBasic.All liefert Abteilung, Personalnummer und Vorgesetzte nicht. Umfang mit FraAlliance IT zu klären.
Microsoft Graph, GruppeZweckMitglieder der Zugangsgruppe lesenBerechtigungGroupMember.Read.All (Anwendung)Scope / EingrenzungMandantenweit, nur lesend; kleinstes passendes Recht nach Microsoft-Doku (aus Doku-Kenntnis, live nicht geprüft). Mit FraAlliance IT abzustimmen.
Microsoft To DoZweckOffene App-Aufgaben in Outlook/To Do spiegeln (n8n-Workflow, optional)BerechtigungTasks.ReadWrite.All (Anwendung)Scope / EingrenzungMandantenweit, lesend und schreibend für alle Postfächer. Ob sich To Do über Exchange RBAC eingrenzen lässt: nicht geprüft. Für Produktion eingrenzen oder verzichten, Entscheidung bei FraAlliance IT.
PersonioZweckAbwesenheit während der ReiseBerechtigungZugang als verschlüsseltes ObjektScope / EingrenzungIm Prototyp simuliert, keine Daten an Personio
Fraport RechnungsteamZweckAbrechnungs-PDF und Belegbündel per MailBerechtigungVersand über das FunktionspostfachScope / EingrenzungEmpfängeradresse als Konfiguration; im Prototyp eine Testadresse
BuchungsportaleZweckNur Verlinkung aus dem ReiseassistentenBerechtigungKeineScope / EingrenzungDie App sendet nichts; die Adresse (Ziel, Zeitraum, Startort) ruft der Browser erst beim Klick auf

Betrieb

Sicherung

Im Prototyp geprüft am 19.10.2026: Sicherung von Datenbank-Dump, Dateiablage und n8n mit SHA-256-Prüfsummen (3 von 3 stimmig) und ein Wiederherstellungstest (4 von 4 Tabellen mit gleicher Zeilenzahl); nächtlicher Sicherungs-Workflow eingerichtet. Produktiv geplant: täglicher Dump plus Dateiablage, verschlüsselte Zweitkopie an anderem Standort (Ziel offen), Wiederherstellungstest vor Go-live und danach regelmäßig (Vorschlag vierteljährlich). RTO und RPO sind noch nicht festgelegt.

Überwachung

Stündlicher Wächter im Prototyp (Erreichbarkeit von Prozesssteuerung, Datenbank, OCR, PDF-Dienst; Speicherplatz; Ablauf von Zugangsdaten und Zertifikaten). Alarmierung und externer Erreichbarkeitstest vom Tunnel-Hostnamen: geplant für Produktivbetrieb. Alarmtexte ohne Personendaten.

Updates

Datenbankänderungen als nummerierte Migrationen mit Abbruch bei Fehler (nachgewiesen). Freigabe, Workflow-Paketierung, Änderungsprotokoll, Wartungsfenster und Patchprozess: geplant, Betriebshandbuch ist gegliedert, aber noch nicht ausgeführt.

Umgebungen

DEV (heute) → TEST (nur synthetische Daten) → PROD (Echtdaten erst nach AVV und Abnahme durch FraAlliance). Vor dem Einspielen in PROD ein Sicherungspunkt.

Datenstandort

Die Datenschutzunterlage nennt als Produktivstandort der ITM-Verarbeitung die Schweiz (Angemessenheitsbeschluss der EU-Kommission; Bestätigung zur juristischen Prüfung offen). Cloudflare als Tunnel-Anbieter hat Sitz in den USA; Absicherung der Übermittlung ist zu klären. Microsoft-Daten bleiben in Ihrem Tenant.

Dokumentation

Entwürfe zu Datenschutz (Art. 30, TOM, Auftragsverarbeiter) und ISO 27001 (Geltungsbereich, Asset-Inventar, Risiken, SoA-Auszug, Maßnahmenplan) liegen vor, Version 0.4, nicht freigegeben. Das Tool ist ein Prototyp und nicht zertifiziert. ITM selbst ist nach ISO 27001 und ISO 9001 zertifiziert; ob dieser Betrieb im Geltungsbereich liegt, ist zu klären.

Prototyp heute und Produktivbetrieb

HostingPrototyp heute (Stand 19.10.2026)Temporäre lokale Instanz auf einem Entwicklungsgerät von ITMZielbetrieb ProduktivDedizierter Produktivknoten (Wahl offen)
TunnelPrototyp heute (Stand 19.10.2026)Temporärer Tunnel mit wechselnder Adresse, Filter-Proxy als SkriptZielbetrieb ProduktivNamed Cloudflare Tunnel, WAF, reverse Proxy mit Pfadfilter und Sicherheitsheadern
AnmeldungPrototyp heute (Stand 19.10.2026)Testkonten im Test-Tenant von ITM (App-Registrierung dort)Zielbetrieb ProduktivApp-Registrierung in Ihrem Tenant, Admin-Zustimmung durch Ihre IT
DatenPrototyp heute (Stand 19.10.2026)Nur Testdaten, keine PersonendatenZielbetrieb ProduktivEchtdaten erst nach AVV und Abnahme
AnbindungenPrototyp heute (Stand 19.10.2026)Personio simuliert, Fraport-Mail an TestadresseZielbetrieb ProduktivEchte Personio-Anbindung, echte Empfängeradresse mit Änderungsprozess
SicherungPrototyp heute (Stand 19.10.2026)Sicherung nächtlich auf EntwicklungsgerätZielbetrieb ProduktivTäglich, verschlüsselte Zweitkopie an anderem Standort
RatenbegrenzungPrototyp heute (Stand 19.10.2026)Ratenbegrenzung im Arbeitsspeicher des ProxyZielbetrieb ProduktivZusätzlich am Eintrittspunkt (WAF)
CORS und RedirectsPrototyp heute (Stand 19.10.2026)CORS und Redirect-URIs auf Vorschau- und lokale Adressen; Public-Client-Flow für Tests aktivZielbetrieb ProduktivNur Produktiv-Domain; Public-Client-Flow abgeschaltet
UmgebungenPrototyp heute (Stand 19.10.2026)Nur DEVZielbetrieb ProduktivDEV → TEST → PROD mit Freigabe
Upload-PrüfungPrototyp heute (Stand 19.10.2026)Datei-Inhaltsprüfung und Virenscan beim Upload nicht umgesetztZielbetrieb ProduktivGeplant für Produktivbetrieb
TestkontenPrototyp heute (Stand 19.10.2026)Testkonten ohne MFA, befristet (nur die Demo-Konten, bis 31.10.2026)Zielbetrieb ProduktivMFA und Conditional Access aus Ihrem Tenant, keine Ausnahmen für Testkonten

Von Ihnen benötigt

  1. 01

    App-Registrierung

    In Ihrem Entra-Tenant (Single-Tenant), Redirect-URIs der Produktiv-Domain; Ihr Global oder Privileged Role Administrator erteilt die Admin-Zustimmung.

  2. 02

    Sicherheitsgruppe

    „APP-Dienstreisen-Nutzer“ (oder Ihr Name) und Zuweisung an die Enterprise-App; Lizenzfrage (P1/P2) für gruppenbasierte Zuweisung klären; Entscheidung, ob die Zuweisung verpflichtend ist.

  3. 03

    Zustimmungen/Consents

    Entscheidung zu User.Read.All und GroupMember.Read.All (mandantenweit lesend; Alternative: weniger Attribute, dann ohne Abteilung, Personalnummer, Vorgesetzte) und zu Tasks.ReadWrite.All (mandantenweit schreibend; Alternative: To-Do-Spiegelung weglassen).

  4. 04

    Funktionspostfach

    Für den Versand und die Liste der Postfächer, auf die Exchange RBAC for Applications begrenzt wird.

  5. 05

    SharePoint-Site

    Für das Archiv (Sites.Selected, nur diese Site); Sicherungsverfahren für das Archiv bei Ihnen.

  6. 06

    AVV

    Zwischen FraAlliance und ITM (Art. 28 DSGVO) mit TOM und Unterauftragsverarbeitern; Vertragspartner auf ITM-Seite noch zu bestimmen.

  7. 07

    Weitere Entscheidungen

    Produktiv-Domain und Hosting des Frontends, Tunnel-Anbieter, Ziel der Zweitkopie, Empfängeradresse Fraport, Personio-Zugang, Break-glass-Konten (wer, wie viele).

Häufige Fragen

Technischer Review-Termin (60 Minuten)

Wir gehen die Berechtigungsliste, den Notfallzugang und den Betriebsplan mit Ihnen durch und halten die Entscheidungen aus „Von Ihnen benötigt“ fest.

Technische Dokumentation (Entwurf) auf Anfrage