Reverse-Proxy für Procurat!5

Einführung

Technischer Hintergrund

Die Procurat!5 Software wurde primär für den Einsatz in geschlossenen Netzwerkumgebungen konzipiert. Die Software exponiert auf dem URL-Pfad "/*" verschiedene Endpunkte, die nicht für den direkten Zugriff aus dem öffentlichen Internet konzipiert wurden und erhebliche Sicherheitsdefizite aufweisen. Der Zugriff auf diese Pfade direkt aus dem Internet würde ein erhebliches Sicherheitsrisiko darstellen.

Kontinuierliche API-Kommunikation des Elternportals

Das Triargos Elternportal benötigt für sämtliche Kernfunktionalitäten eine kontinuierliche Kommunikation mit der Procurat!5 API. Diese konstante Kommunikation erfolgt über zahlreiche Anfragen zur Authentifizierung, Datenabrufe und Verarbeitung von Benutzerinteraktionen. Der Datenfluss zwischen den Systemen muss daher permanent gewährleistet sein, jedoch unter strengen Sicherheitsvorkehrungen.

Technische Lösung durch Proxy-Implementation

Der zu implementierende Reverse-Proxy fungiert als Sicherheitsgateway zwischen dem öffentlichen Internet und Ihrer Procurat!5 Installation. Er erlaubt ausschließlich HTTP(S)-Requests auf den speziell abgesicherten "/api/*" Pfad der Procurat!5 Software, während alle anderen Pfade blockiert werden. Dies ist wesentlich sicherer als eine direkte Verbindung, da nur die speziell für externe Zugriffe konzipierten und abgesicherten API-Endpunkte erreichbar sind.

Die Proxy-Lösung gewährleistet somit eine deutlich erhöhte Sicherheit durch strikte Zugangskontrolle und Filterung aller eingehenden Anfragen. Gleichzeitig bleibt die konstante API-Kommunikation, die für die Funktionalität des Elternportals unerlässlich ist, in vollem Umfang erhalten.

Implementierungsdetails

Die technische Umsetzung erfolgt durch einen Reverse-Proxy, der als Sicherheitsschicht fungiert. Dieser leitet ausschließlich Anfragen an den "/api/*" Pfad weiter und blockiert jeglichen anderen Zugriff. Dies ist eine bewährte und sichere Methode, um die Angriffsfläche zu minimieren und gleichzeitig die notwendige Funktionalität zu gewährleisten.

image.png

TLDR

Ein Proxy, welcher die Procurat-Schulsoftware (nur die Pfade /api/*) auf einer öffentlich erreichbaren Domain (mit SSL Zertifikat) erreichbar ist, muss eingerichtet werden. Zur erhöhten Sicherheit kann die Domain (IP-Gruppe) dashboard.triargos.de in der Firewall gewhitelisted werden, sodass nur Anfragen von Triargos-Servern erlaubt werden. Bitte teilen Sie uns nach Abschluss der Einrichtung des Proxies die Domain (und ggf. den Port) mit, unter dem wir ihre Instanz erreichen können.

Installation - Windows

windows-logo-and-wordmark-2021-svg.png


Allgemeine Einführung

Diese Anleitung beschreibt die Installation des Procurat-Proxies als Service unter Windows.

Firewall-Konfiguration

Unterstützt ihre Firewall keine IP-Gruppen via FQDN, darf keine Beschränkung eingerichtet werden, da die Anfragen je nach Auslastung des Systems von unterschiedlichen Servern kommen.

Um die Sicherheit zu erhöhen, kann die externe Firewall der Einrichtung konfiguriert werden, dass nur Anfragen der IP-Gruppe dashboard.triargos.de zugelassen werden

Vorbereitung

Schritt 1: Erstellen des Clients im Proxy Controller

Bildschirmfoto 2025-03-18 um 12.17.27.png

Schritt 2: Konfigurieren des Clients

Der Client lädt die Konfiguration laufend vom Controller herunter, und wendet Änderungen automatisch an. Somit muss die Konfiguration initial in der Weboberfläche erfolgen

Verfügbare Konfigurationswerte
Server Port Der Port, auf welchem die installierte Anwendung startet und erreichbar ist (z.B 8080). Dieser Wert ist frei wählbar, muss allerdings auf dem Server frei sein (nicht durch z.B IIS oder andere Anwendungen bereits belegt)
Application URL Die vollständige URL, unter welcher die Procurat-Software (nur Schnittstelle) erreichbar ist. Meist nach folgendem Schema: https://[domain]:8443/procurat/api/v1

Schritt 3: Erstellen einer Registrierung

Die Registrierungs-URL ist max. 24 gültig und kann nur einmal verwendet werden.

Bei der Installation des Services wird eine Registrierungs-URL benötigt. Diese wird verwendet, um den Client beim Controller anzumelden, einen API-Key zu erstellen und weitere Kommunikation zwischen Client und Controller zu sichern. Diese URL kann vorab erstellt werden

Die Serverseitige Einrichtung ist nun abgeschlossen, nun ist nur noch die Installation des Windows-Services nötig.

Einrichtung

Schritt 1: Herunterladen der ausführbaren Datei

Der Service (+ Installer) wird als .exe hier zur Verfügung gestellt: p5_proxy.exe

Schritt 2: Verschieben in Installationsverzeichnis

Der Dienst installiert sich im aktuellen Verzeichnis. Hier werden weitere Artefakte (Ein Verzeichnis für Zertifikate, Konfiguration und Logs) erstellt. Daher wird empfohlen, ein eigenes, wiedererkennbares Verzeichnis für den Dienst zu erstellen

Schritt 3: Registrieren des Clients

p5proxy.exe register

Schritt 4: Installieren als Windows-Dienst

Für diesen Befehl werden Administrationsrechte benötigt

Damit das Proxy zu jeder Zeit läuft, kann es als Dienst registriert werden. Führen Sie dafür folgenden Befehl aus

p5proxy.exe install

Der Dienst ist nun erfolgreich registriert und wird beim nächsten Systemstart automatisch gestartet. Sie können den Dienst mit dem Namen Procurat Proxy Service in der Windows-Dienstübersicht direkt starten.

Schritt 5: Überprüfen der Verbindung

Ist der Client erfolgreich registriert + gestartet, sendet er minütlich Heartbearts an den Controller. Diese aktualisieren den Status in der Oberfläche auf Online

Wird der Client nach spätestens 2 Minuten nicht als Online markiert, ist die Installation nicht erfolgreich abgeschlossen.

Bildschirmfoto 2025-03-24 um 12.47.36.png

Schritt 6: Überprüfen der lokalen Windows-Firewall

In den meisten Fällen ist noch eine lokale Windows-Firewall aktiviert. Hier muss noch der zuvor vergebene Server Port freigegeben werden, ansonsten ist die Verbindung hinter dem Proxy nicht erreichbar.

Schritt 7: API-Key generieren und in P5 einrichten

API-Key generieren
Generieren eines sicheren API Keys (z.B mit OpenSSL oder 1PasswordGenerator)

openssl rand -hex 32

API-Key in Procurat hinterlegen

  1. In Procurat!5 mit Administrativen Berechtigungen anmelden.
  2. In der Procurat Administration in den Tab Alle Stammdaten wechseln
  3. Tabelle ZApiKey
  4. Eintrag erstellen + generierten Wert eingeben
  5. API Key notieren bzw. im Elternportal eintragen