Eine Login-Schleife, die nur von außen auftritt, bedeutet normalerweise, dass der Remote-Proxy-Pfad das Schema, den Hostnamen, das Cookie, den Callback oder die Sitzungsinformationen verändert, die von der App gesehen werden.
Innerhalb des Hauses kann ein Browser direkt über die lokale Adresse eine Verbindung zum Private-Cloud-Dienst herstellen, während entfernte Benutzer über öffentliche DNS, TLS-Termination, einen Reverse-Proxy, Forward-Auth-Schicht, Tunnel oder Identitätsanbieter zugreifen. Die Anmeldedaten können korrekt akzeptiert werden, doch die nächste Anfrage führt zurück zur Login-Seite, weil das Sitzungscookie nicht gespeichert oder zurückgegeben wird, das Backend HTTPS für HTTP hält, die Callback-URL von der registrierten abweicht oder die Anwendung Weiterleitungen für ihren internen Hostnamen erzeugt.
Erfassen Sie die genaue Redirect-Schleife im Browser
Öffnen Sie das Netzwerk-Panel des Browsers, bevor Sie sich von außerhalb des Hauses anmelden. Bewahren Sie das Anfragelog auf und notieren Sie jeden Statuscode, Location-Header, Set-Cookie-Header, den Anfragedomainnamen und ob das Sitzungscookie bei der nächsten Anfrage erscheint.
Ein Keycloak-Fehlerbehebungsleitfaden empfiehlt, die vollständige Redirect-Kette zu beobachten, da fehlende Forwarded-Header, Cookie-Bereich und Callbacks alle eine unendliche Login-Weiterleitung verursachen können, selbst wenn der Passwortschritt erfolgreich ist.
Wenn kein Cookie ausgegeben wird, untersuchen Sie die Antwort der Anwendung und des Proxys. Wenn ein Cookie ausgegeben, aber nicht zurückgegeben wird, prüfen Sie dessen Domain, Pfad, Secure- und SameSite-Attribute. Wenn das Cookie zurückgegeben wird, die App aber weiterhin weiterleitet, fahren Sie mit der Proxy-Vertrauensstellung und der Sitzungsverwaltung fort.
Vergleichen Sie die lokalen und öffentlichen Hostnamen und Schemata
Notieren Sie die genaue lokale URL und die öffentliche URL, einschließlich http oder https, Hostname, Port und Unterpfad. Testen Sie, ob die Anwendung eine konfigurierte kanonische oder externe Basis-URL hat.
Eine Analyse von WordPress hinter einem Reverse-Proxy erklärt, dass wenn das Backend glaubt, die Anfrage sei HTTP, es wiederholt zu HTTPS weiterleiten kann, während der Proxy weiterhin TLS terminiert. Die Schleife entsteht durch falsche HTTPS-Erkennung hinter dem Proxy und nicht durch das Passwort des Benutzers.
Verwenden Sie einen öffentlichen Hostnamen konsequent für Remote-Login, Callbacks und Cookies. Mischen Sie nicht die öffentliche Domain, private IP, internen Hostnamen und alternative Ports innerhalb eines Authentifizierungsablaufs, es sei denn, die Anwendung unterstützt explizit mehrere vertrauenswürdige Ursprünge.
Überprüfen Sie Forwarded Host- und Protokoll-Header
Prüfen Sie die Reverse-Proxy-Konfiguration und Backend-Logs auf X-Forwarded-Proto, X-Forwarded-Host, X-Forwarded-Port und die ursprüngliche Client-Adresse. Bestätigen Sie, dass die Anwendung nur dem bekannten Proxy vertraut und dieselbe öffentliche URL rekonstruiert, die der Browser verwendet hat.
Ein qBittorrent-Reverse-Proxy-Fall stellt fest, dass eine Login-Seite laden und Anmeldedaten akzeptieren kann, während ein nicht übereinstimmender Host- oder HTTPS-Header verhindert, dass die authentifizierte Sitzung erkannt wird.
Wenn der Proxy die korrekten öffentlichen Werte sendet, die App sie aber ignoriert, konfigurieren Sie die trusted-proxy- und external-URL-Einstellungen der Anwendung. Wenn der Proxy sie weglässt, fügen Sie nur die eng erforderlichen Header hinzu, anstatt alle vom Client gelieferten Header unverändert weiterzuleiten.
Untersuchen Sie Cookie-Domain, Pfad, Secure und SameSite
Vergleichen Sie das lokal erstellte Sitzungscookie mit dem, das über die öffentliche Domain erstellt wird. Ein Cookie, das auf einen internen Hostnamen, eine falsche übergeordnete Domain, einen anderen Unterpfad oder einen nicht sicheren Kontext beschränkt ist, begleitet möglicherweise nicht die umgeleitete öffentliche Anfrage.
Der externe Zugriff fügt oft eine weitere Authentifizierungsdomain oder einen Cross-Site-Callback hinzu. SameSite-Beschränkungen und Secure-Anforderungen können daher den Remote-Ablauf beeinflussen, obwohl ein direkter lokaler Login nie die Origin wechselt.
Löschen Sie Cookies nur für die betroffenen Private-Cloud-Domains, reproduzieren Sie die Schleife und prüfen Sie die neuen Attribute. Korrigieren Sie die öffentlichen URL- und Cookie-Einstellungen der Anwendung oder des Proxys; verwenden Sie keine browserweiten Cookie-Entspannungen als dauerhafte serverseitige Lösung.
Überprüfen Sie OAuth-, OIDC- oder Forward-Auth-Callback-Identität
Wenn die Private Cloud einen Identitätsanbieter oder Forward-Auth-Dienst verwendet, vergleichen Sie die vom App generierte Callback-URL, die beim Anbieter registrierte und die vom Browser erreichte URL. Schema, Hostname, Port, Pfad und abschließender Schrägstrich müssen alle exakt übereinstimmen.
Ein NGINX-Community-Fall beschreibt eine Remote-Login-Schleife, bei der TLS am Proxy terminiert wird, das Backend aber HTTP sieht, sodass die Anwendung die erwartete sichere externe Sitzung nicht aufrechterhalten kann.
Testen Sie den Callback-Endpunkt direkt über die öffentliche Domain und bestätigen Sie, dass er die korrekte Proxy-Route und das Backend erreicht. Wenn die Authentifizierung erfolgreich ist, der Callback aber den Login neu startet, prüfen Sie State, Nonce, Cookie-Persistenz, Uhrzeitsynchronisation und die genaue Redirect-URI.
Validieren Sie die vollständige Remote-Sitzung ohne Umgehung des Proxys
Nachdem Sie eine Ursache behoben haben, starten Sie mit einem sauberen privaten Fenster in einem externen Netzwerk. Melden Sie sich an, aktualisieren Sie das Dashboard, öffnen Sie eine Datei, warten Sie über das kurze Sitzungsintervall hinaus und verbinden Sie sich erneut, um zu bestätigen, dass die Sitzung normale Navigation übersteht.
Der ZimaSpace-Leitfaden zu kontrolliertem Remote-NAS-Zugriff bietet die umgebende Sicherheitsgrenze: Die Behebung der Schleife sollte nicht erfordern, das Backend direkt freizugeben oder die Authentifizierung zu deaktivieren.
Das Problem ist nur gelöst, wenn lokale und entfernte Benutzer den vorgesehenen Hostnamen erreichen, der Proxy die öffentliche Anfrage-Identität bewahrt, das Cookie gültig bleibt und der vollständige Login- und Callback-Ablauf wiederholt erfolgreich ist. Entfernen Sie nach der Überprüfung temporäre Umgehungen und ausführliche Authentifizierungsprotokolle.
Support & Tipps
Mehr zum Lesen

Warum stellt eine Docker-Volume-Wiederherstellung zwar die Dateiinhalte wieder her, lässt aber erweiterte Attribute weg?
Eine Diagnose zur Wiederherstellung von Volumes mit einer Bestandsaufnahme der erweiterten Attribute, Tar- und Rsync-Optionen, Namespaces, Zielunterstützung, Berechtigungen, Labels, App-Metadaten und Tests.

Warum behält ein laufender Container sein altes Speicherlimit bei, nachdem die Compose-Datei geändert wurde?
Eine Diagnose der Speicherbegrenzung mit Erläuterungen zu aktiven cgroups, Neustart gegenüber Neuerstellung, Compose-Feldern, harten und weichen Limits, übergeordneten Bereichen, Swap sowie Laufzeit-Heaps.

Warum macht ein Neustart des Reverse-Proxys jede Sitzung für eine selbst gehostete App ungültig?
Eine Diagnose von Sitzungsverlusten mit Abdeckung des Neustartumfangs, der Cookie-Zuständigkeit, der Geheimnisrotation, cachebasierten Sitzungen, Sticky-Routing, Authentifizierungs-Gateways und der Wiederherstellung.

