Case Study: Authentifizierung einer Legacy C++ Anwendung über Reverse Proxy
Diese Case Study zeigt, wie sich eine Legacy-C++-Anwendung über einen lokalen Reverse Proxy an moderne Authentifizierungsverfahren anbinden ließ, ohne die bestehende Codebasis riskant umzubauen.
Ausgangssituation
Eine geschäftskritische C++ Windows-Anwendung musste Daten von einem modernen Analyse-Webservice abrufen.
Die Anwendung war jedoch historisch gewachsen und unterstützte ausschließlich anonyme HTTP-Aufrufe.
Moderne Authentifizierungsverfahren wie OAuth 2.0 oder OpenID Connect waren in der bestehenden Codebasis nicht implementiert.
Eine direkte Anpassung der C++-Anwendung hätte bedeutet:
- tiefgreifende Änderungen an einer alten, sensiblen Codebasis
- hohes Risiko für Regressionen
- erheblicher Entwicklungs- und Testaufwand
- potenzielle Inkompatibilitäten mit bestehenden Deployments
Architektur-Entscheidung
Statt die Legacy-Anwendung umzubauen, wurde eine entkoppelte Lösung implementiert.
Ich entwickelte einen lokalen Reverse-Proxy-Dienst in .NET, der auf dem gleichen System wie die C++-Anwendung betrieben wurde.
Die Architektur sah wie folgt aus:
- Die C++-Anwendung kommuniziert weiterhin per HTTP – jedoch mit dem lokalen Proxy.
- Der Proxy übernimmt die Authentifizierung gegenüber dem Identity Provider (OAuth 2.0 / OpenID Connect).
- Nach erfolgreicher Autorisierung werden Access Tokens sicher verwaltet.
- Der Proxy leitet die Anfrage an den Ziel-Webservice weiter – angereichert mit gültigen Authentifizierungs-Headern.
- Die Antwort wird transparent an die C++-Anwendung zurückgegeben.
Die Legacy-Anwendung blieb unverändert.
Technische Schwerpunkte
- Implementierung eines sicheren Reverse-Proxy-Dienstes in .NET
- OAuth 2.0 / OIDC-Flow mit Token-Handling
- Sichere Speicherung und Erneuerung von Access Tokens
- Minimierung der Angriffsfläche durch lokale Kommunikation
- Trennung von Legacy-Code und Sicherheitslogik
Ergebnis
- Keine Änderung der bestehenden C++-Codebasis erforderlich
- Deutliche Reduktion von Projektrisiko und Implementierungskosten
- Einführung moderner Authentifizierung ohne Systembruch
- Erhöhung der Sicherheit durch zentrale Token-Verwaltung
- Zukunftssichere Architektur mit klarer Entkopplung
Die Lösung ermöglichte eine kontrollierte Modernisierung, ohne ein geschäftskritisches System zu destabilisieren.