Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
Wann verwenden
Verwenden Sie den Auth-Modustrusted-proxy, wenn:
- Sie OpenClaw hinter einem identitätsbewussten Proxy betreiben (Pomerium, Caddy + OAuth, nginx + oauth2-proxy, Traefik + Forward Auth).
- Ihr Proxy die gesamte Authentifizierung übernimmt und die Benutzeridentität über Header weitergibt.
- Sie sich in einer Kubernetes- oder Container-Umgebung befinden, in der der Proxy der einzige Pfad zum Gateway ist.
- Sie WebSocket-Fehler
1008 unauthorizederhalten, weil Browser keine Tokens in WS-Payloads übergeben können.
Wann NICHT verwenden
- Wenn Ihr Proxy Benutzer nicht authentifiziert (nur ein TLS-Terminator oder Load Balancer ist).
- Wenn es irgendeinen Pfad zum Gateway gibt, der den Proxy umgeht (Firewall-Lücken, interner Netzwerkzugriff).
- Wenn Sie unsicher sind, ob Ihr Proxy weitergeleitete Header korrekt entfernt/überschreibt.
- Wenn Sie nur persönlichen Zugriff für einen einzelnen Benutzer benötigen (ziehen Sie Tailscale Serve + Loopback für eine einfachere Einrichtung in Betracht).
Funktionsweise
Proxy authentifiziert den Benutzer
Ihr Reverse Proxy authentifiziert Benutzer (OAuth, OIDC, SAML usw.).
Proxy fügt einen Identitäts-Header hinzu
Der Proxy fügt einen Header mit der authentifizierten Benutzeridentität hinzu (z. B.
x-forwarded-user: nick@example.com).Gateway prüft die vertrauenswürdige Quelle
OpenClaw prüft, ob die Anfrage von einer vertrauenswürdigen Proxy-IP stammt (konfiguriert in
gateway.trustedProxies).Gateway extrahiert die Identität
OpenClaw extrahiert die Benutzeridentität aus dem konfigurierten Header.
Kopplungsverhalten der Control UI
Wenngateway.auth.mode = "trusted-proxy" aktiv ist und die Anfrage die trusted-proxy-Prüfungen besteht, können WebSocket-Sitzungen der Control UI ohne Geräte-Kopplungsidentität verbunden werden.
Auswirkungen:
- Die Kopplung ist in diesem Modus nicht mehr das primäre Gate für den Zugriff auf die Control UI.
- Ihre Auth-Richtlinie des Reverse Proxy und
allowUserswerden zur effektiven Zugriffskontrolle. - Beschränken Sie den Gateway-Ingress ausschließlich auf vertrauenswürdige Proxy-IPs (
gateway.trustedProxies+ Firewall).
Konfiguration
Konfigurationsreferenz
Array von Proxy-IP-Adressen, denen vertraut werden soll. Anfragen von anderen IPs werden abgelehnt.
Muss
"trusted-proxy" sein.Header-Name, der die authentifizierte Benutzeridentität enthält.
Zusätzliche Header, die vorhanden sein müssen, damit der Anfrage vertraut wird.
Zulassungsliste von Benutzeridentitäten. Leer bedeutet, dass alle authentifizierten Benutzer zugelassen sind.
Explizit aktivierbare Unterstützung für Loopback-Reverse-Proxys auf demselben Host. Standardwert ist
false.TLS-Terminierung und HSTS
Verwenden Sie einen TLS-Terminierungspunkt und wenden Sie HSTS dort an.- Proxy-TLS-Terminierung (empfohlen)
- Gateway-TLS-Terminierung
Wenn Ihr Reverse Proxy HTTPS für
https://control.example.com verarbeitet, setzen Sie Strict-Transport-Security am Proxy für diese Domain.- Gut geeignet für internetseitige Deployments.
- Hält Zertifikat und HTTP-Härtungsrichtlinie an einem Ort.
- OpenClaw kann hinter dem Proxy auf Loopback-HTTP bleiben.
Rollout-Leitfaden
- Beginnen Sie zunächst mit einer kurzen maximalen Dauer (zum Beispiel
max-age=300), während Sie den Traffic validieren. - Erhöhen Sie erst dann auf langlebige Werte (zum Beispiel
max-age=31536000), wenn das Vertrauen hoch ist. - Fügen Sie
includeSubDomainsnur hinzu, wenn jede Subdomain HTTPS-bereit ist. - Verwenden Sie Preload nur, wenn Sie die Preload-Anforderungen für Ihren vollständigen Domain-Satz bewusst erfüllen.
- Lokale Entwicklung nur über Loopback profitiert nicht von HSTS.
Beispiele für Proxy-Einrichtung
Pomerium
Pomerium
Pomerium übergibt Identität in Pomerium-Konfigurationsausschnitt:
x-pomerium-claim-email (oder anderen Claim-Headern) und ein JWT in x-pomerium-jwt-assertion.Caddy mit OAuth
Caddy mit OAuth
Caddy kann mit dem Caddyfile-Ausschnitt:
caddy-security-Plugin Benutzer authentifizieren und Identitäts-Header weitergeben.nginx + oauth2-proxy
nginx + oauth2-proxy
oauth2-proxy authentifiziert Benutzer und übergibt die Identität in nginx-Konfigurationsausschnitt:
x-auth-request-email.Traefik mit Forward Auth
Traefik mit Forward Auth
Gemischte Token-Konfiguration
OpenClaw lehnt mehrdeutige Konfigurationen ab, bei denen sowohl eingateway.auth.token (oder OPENCLAW_GATEWAY_TOKEN) als auch der Modus trusted-proxy gleichzeitig aktiv sind. Gemischte Token-Konfigurationen können dazu führen, dass Loopback-Anfragen stillschweigend über den falschen Auth-Pfad authentifiziert werden.
Wenn beim Start ein Fehler mixed_trusted_proxy_token angezeigt wird:
- Entfernen Sie das gemeinsame Token, wenn Sie den trusted-proxy-Modus verwenden, oder
- Wechseln Sie
gateway.auth.modezu"token", wenn Sie tokenbasierte Auth beabsichtigen.
gateway.auth.password / OPENCLAW_GATEWAY_PASSWORD authentifizieren. Token-Fallback bleibt im trusted-proxy-Modus absichtlich nicht unterstützt.
Operator-Scopes-Header
Trusted-proxy-Auth ist ein identitätstragender HTTP-Modus, daher können Aufrufer optional Operator-Scopes mitx-openclaw-scopes deklarieren.
Beispiele:
x-openclaw-scopes: operator.readx-openclaw-scopes: operator.read,operator.writex-openclaw-scopes: operator.admin,operator.write
- Wenn der Header vorhanden ist, berücksichtigt OpenClaw den deklarierten Scope-Satz.
- Wenn der Header vorhanden, aber leer ist, deklariert die Anfrage keine Operator-Scopes.
- Wenn der Header fehlt, fallen normale identitätstragende HTTP-APIs auf den standardmäßigen Operator-Default-Scope-Satz zurück.
- Gateway-Auth-Plugin-HTTP-Routen sind standardmäßig enger gefasst: Wenn
x-openclaw-scopesfehlt, fällt ihr Laufzeit-Scope aufoperator.writezurück. - HTTP-Anfragen aus Browser-Ursprüngen müssen weiterhin
gateway.controlUi.allowedOrigins(oder den bewusst gewählten Host-Header-Fallback-Modus) bestehen, auch nachdem trusted-proxy-Auth erfolgreich war.
x-openclaw-scopes explizit, wenn eine trusted-proxy-Anfrage enger sein soll als die Standardwerte oder wenn eine Gateway-Auth-Plugin-Route etwas Stärkeres als Schreib-Scope benötigt.
Sicherheitscheckliste
Prüfen Sie vor dem Aktivieren der Trusted-Proxy-Authentifizierung:- Proxy ist der einzige Pfad: Der Gateway-Port ist gegen alles außer Ihrem Proxy per Firewall abgeschirmt.
- trustedProxies ist minimal: Nur die tatsächlichen IPs Ihres Proxys, keine ganzen Subnetze.
- Loopback-Proxy-Quelle ist bewusst gewählt: Trusted-Proxy-Authentifizierung schlägt für Anfragen von Loopback-Quellen sicher fehl, sofern
gateway.auth.trustedProxy.allowLoopbacknicht ausdrücklich für einen Proxy auf demselben Host aktiviert ist. - Proxy entfernt Header: Ihr Proxy überschreibt
x-forwarded-*-Header von Clients, statt sie anzuhängen. - TLS-Terminierung: Ihr Proxy verarbeitet TLS; Benutzer verbinden sich per HTTPS.
- allowedOrigins ist explizit: Eine Steuerungsoberfläche außerhalb von Loopback verwendet explizite
gateway.controlUi.allowedOrigins. - allowUsers ist gesetzt (empfohlen): Beschränken Sie den Zugriff auf bekannte Benutzer, statt alle authentifizierten Personen zuzulassen.
- Keine gemischte Token-Konfiguration: Legen Sie nicht gleichzeitig
gateway.auth.tokenundgateway.auth.mode: "trusted-proxy"fest. - Lokaler Passwort-Fallback ist privat: Wenn Sie
gateway.auth.passwordfür interne direkte Aufrufer konfigurieren, schirmen Sie den Gateway-Port per Firewall ab, damit Remote-Clients außerhalb des Proxys ihn nicht direkt erreichen können.
Sicherheits-Audit
openclaw security audit meldet Trusted-Proxy-Authentifizierung mit einem Befund der Schwere kritisch. Das ist beabsichtigt: Es erinnert Sie daran, dass Sie die Sicherheit an Ihre Proxy-Einrichtung delegieren.
Das Audit prüft auf:
- Grundlegende Warnung/kritische Erinnerung
gateway.trusted_proxy_auth - Fehlende
trustedProxies-Konfiguration - Fehlende
userHeader-Konfiguration - Leere
allowUsers(lässt jeden authentifizierten Benutzer zu) - Aktiviertes
allowLoopbackfür Proxy-Quellen auf demselben Host - Platzhalter- oder fehlende Browser-Origin-Richtlinie auf exponierten Oberflächen der Steuerungsoberfläche
Fehlerbehebung
trusted_proxy_untrusted_source
trusted_proxy_untrusted_source
Die Anfrage kam nicht von einer IP in
gateway.trustedProxies. Prüfen Sie:- Ist die Proxy-IP korrekt? (Docker-Container-IPs können sich ändern.)
- Befindet sich vor Ihrem Proxy ein Load Balancer?
- Verwenden Sie
docker inspectoderkubectl get pods -o wide, um die tatsächlichen IPs zu finden.
trusted_proxy_loopback_source
trusted_proxy_loopback_source
OpenClaw hat eine Trusted-Proxy-Anfrage von einer Loopback-Quelle abgelehnt.Prüfen Sie:
- Verbindet sich der Proxy von
127.0.0.1/::1? - Versuchen Sie, Trusted-Proxy-Authentifizierung mit einem Loopback-Reverse-Proxy auf demselben Host zu verwenden?
- Bevorzugen Sie Token-/Passwort-Authentifizierung für interne Clients auf demselben Host, die nicht über den Proxy gehen, oder
- Leiten Sie über eine Nicht-Loopback-Adresse eines vertrauenswürdigen Proxys und behalten Sie diese IP in
gateway.trustedProxies, oder - Setzen Sie für einen bewusst eingesetzten Reverse-Proxy auf demselben Host
gateway.auth.trustedProxy.allowLoopback = true, behalten Sie die Loopback-Adresse ingateway.trustedProxies, und stellen Sie sicher, dass der Proxy Identitäts-Header entfernt oder überschreibt.
trusted_proxy_user_missing
trusted_proxy_user_missing
Der Benutzer-Header war leer oder fehlte. Prüfen Sie:
- Ist Ihr Proxy so konfiguriert, dass er Identitäts-Header weitergibt?
- Ist der Header-Name korrekt? (Groß-/Kleinschreibung ist unerheblich, aber die Schreibweise muss stimmen)
- Ist der Benutzer tatsächlich am Proxy authentifiziert?
trusted_proxy_missing_header_*
trusted_proxy_missing_header_*
Ein erforderlicher Header war nicht vorhanden. Prüfen Sie:
- Ihre Proxy-Konfiguration für diese spezifischen Header.
- Ob Header irgendwo in der Kette entfernt werden.
trusted_proxy_user_not_allowed
trusted_proxy_user_not_allowed
Der Benutzer ist authentifiziert, befindet sich aber nicht in
allowUsers. Fügen Sie ihn entweder hinzu oder entfernen Sie die Allowlist.trusted_proxy_origin_not_allowed
trusted_proxy_origin_not_allowed
Trusted-Proxy-Authentifizierung war erfolgreich, aber der Browser-Header
Origin hat die Origin-Prüfungen der Steuerungsoberfläche nicht bestanden.Prüfen Sie:gateway.controlUi.allowedOriginsenthält die exakte Browser-Origin.- Sie verlassen sich nicht auf Platzhalter-Origins, sofern Sie nicht bewusst ein Verhalten zum Zulassen aller Origins wünschen.
- Wenn Sie bewusst den Host-Header-Fallback-Modus verwenden, ist
gateway.controlUi.dangerouslyAllowHostHeaderOriginFallback=trueabsichtlich gesetzt.
WebSocket schlägt weiterhin fehl
WebSocket schlägt weiterhin fehl
Stellen Sie sicher, dass Ihr Proxy:
- WebSocket-Upgrades unterstützt (
Upgrade: websocket,Connection: upgrade). - Die Identitäts-Header bei WebSocket-Upgrade-Anfragen weitergibt (nicht nur bei HTTP).
- Keinen separaten Authentifizierungspfad für WebSocket-Verbindungen hat.
Migration von Token-Authentifizierung
Wenn Sie von Token-Authentifizierung zu Trusted-Proxy wechseln:Proxy konfigurieren
Konfigurieren Sie Ihren Proxy so, dass er Benutzer authentifiziert und Header weitergibt.
OpenClaw-Konfiguration aktualisieren
Aktualisieren Sie die OpenClaw-Konfiguration mit Trusted-Proxy-Authentifizierung.
Verwandte Themen
- Konfiguration — Konfigurationsreferenz
- Remote-Zugriff — andere Muster für Remote-Zugriff
- Sicherheit — vollständiger Sicherheitsleitfaden
- Tailscale — einfachere Alternative für Zugriff nur innerhalb des Tailnet