Mit ChatGPT über ein Gateway anmelden
Warum diese Einrichtung sinnvoll ist
Wenn Sie bereits ein Modell-Gateway haben und Codex mit der API Platform verwenden, können Sie Ihr Gateway beim Wechsel zu Mit ChatGPT anmelden beibehalten. Dadurch erhalten Sie Zugriff auf die für Ihren ChatGPT-Workspace verfügbaren Funktionen und Steuerungsmöglichkeiten (z. B. den Sprachmodus) und behalten gleichzeitig Ihr Modell-Gateway. Einen Vergleich der Anmeldemethoden finden Sie unter Funktionsverfügbarkeit.
Einrichtung
Die bestehende befehlsbasierte Authentifizierung übermittelt den Gateway-Schlüssel in Authorization. Bei der ChatGPT-Anmeldung enthält dieser Header das ChatGPT-Token. Wählen Sie, wie Sie den separaten Gateway-Anmeldenachweis bereitstellen möchten:
- Option A: Verwenden Sie Ihren Befehl zum Abrufen der Anmeldedaten über eine kleine Starthilfsfunktion weiter. Senden Sie denselben Gateway-Schlüssel in einem separaten Header.
- Option B: Lassen Sie Codex den Gateway-Anmeldenachweis über natives OAuth abrufen.
Fügen Sie die ausgewählte Anbieterkonfiguration zur cloudverwalteten requirements.toml Ihres Workspaces unter Verwaltete Konfiguration hinzu. Diese Anforderungen gelten, nachdem sich Benutzer mit ChatGPT angemeldet haben; sie schränken andere Anmeldemethoden nicht ein. Die Codex-kompatible Basis-URL des Gateways muss /models und /responses als Proxy an https://chatgpt.com/backend-api/codex weiterleiten.
Option A: Ihren Befehl zum Abrufen der Anmeldedaten mit einer Hilfsfunktion weiterverwenden
Behalten Sie Ihren bestehenden Befehl zum Abrufen der Anmeldedaten bei. Eine kleine Hilfsfunktion führt ihn vor dem Start von Codex aus und exportiert seine Ausgabe als GATEWAY_KEY. Dies ist derselbe Gateway-Schlüssel, den Sie bereits verwenden; nur der Header für seine Übermittlung ändert sich.
Ihre bestehende API-/Anbieterkonfiguration könnte beispielsweise Folgendes enthalten:
# config.toml — existing API/provider setup
model_provider = "enterprise_gateway"
[model_providers.enterprise_gateway]
name = "Enterprise gateway"
base_url = "https://gateway.example.com/v1"
requires_openai_auth = false
[model_providers.enterprise_gateway.auth]
command = "/usr/local/bin/fetch-gateway-token"Ersetzen Sie diesen Anbieter für die ChatGPT-Anmeldung durch die folgende verwaltete Konfiguration. Entfernen Sie seinen auth-Block: Die befehlsbasierte Anbieterauthentifizierung lässt sich nicht mit requires_openai_auth = true kombinieren.
# requirements.toml
model_provider = "enterprise_gateway"
[model_providers.enterprise_gateway]
name = "Enterprise gateway"
base_url = "https://gateway.example.com/backend-api/codex" # Keep the gateway route.
requires_openai_auth = true # Use the ChatGPT credential for OpenAI.
env_http_headers = { "X-Gateway-Key" = "GATEWAY_KEY" } # Send the same gateway key separately.Verwenden Sie für die CLI eine Starthilfe wie diese Shell-Funktion. Ersetzen Sie den Befehl und die Argumente durch diejenigen aus Ihrem bestehenden auth-Block:
codex_with_gateway() (
set -eu
GATEWAY_KEY=$(/usr/local/bin/fetch-gateway-token)
test -n "$GATEWAY_KEY"
export GATEWAY_KEY
exec codex "$@"
)
codex_with_gatewayKonfigurieren Sie Ihr Gateway so, dass es X-Gateway-Key akzeptiert, den Schlüssel validiert und diesen Header entfernt, bevor es die Anfrage an das Backend weiterleitet. Die Anfrage des Clients enthält nun:
Authorization: Bearer <ChatGPT token>
ChatGPT-Account-ID: <workspace ID, when available>
X-Gateway-Key: <same gateway key returned by your command>Die Hilfsfunktion wird einmal pro Start ausgeführt. Codex führt sie nicht erneut aus und aktualisiert diesen Header nicht. Wenn der Schlüssel abläuft, rufen Sie einen neuen Schlüssel ab und starten Sie Codex neu. Für die Desktop-App muss Ihre Startintegration dem App-Prozess GATEWAY_KEY bereitstellen. Wählen Sie Option B, wenn Codex die Gateway-Anmeldung und die Token-Erneuerung verwalten soll.
Die Diagramme zeigen die Anfrage-Header und die Starthilfsfunktion in verkürzter Form. Verwenden Sie Authorization: Bearer <ChatGPT token> und behalten Sie die Prüfung der Hilfsfunktion auf einen leeren Schlüssel aus den obigen Beispielen bei. Wenn GATEWAY_KEY leer ist, lässt Codex X-Gateway-Key weg.


Option B: Natives Gateway-OAuth verwenden
Mit dieser Option ersetzen Sie den Befehl und die Starthilfsfunktion durch eine von Codex verwaltete Gateway-Anmeldung. Ihr Gateway muss über einen OAuth-Autorisierungsserver verfügen. Registrieren Sie einen öffentlichen Client, der den Authorization Code Flow mit PKCE unterstützt, und ersetzen Sie anschließend die Beispiel-URLs und die Client-ID. Entfernen Sie den auth-Block des bestehenden Anbieters und verwenden Sie die folgende verwaltete Konfiguration.
# requirements.toml
model_provider = "enterprise_gateway"
[model_providers.enterprise_gateway]
name = "Enterprise gateway"
base_url = "https://gateway.example.com/backend-api/codex" # Keep the gateway route.
requires_openai_auth = true # Use the ChatGPT credential for OpenAI.
[model_providers.enterprise_gateway.gateway_oauth] # Add gateway OAuth.
authorization_url = "https://login.example.com/oauth/authorize"
token_url = "https://login.example.com/oauth/token"
client_id = "YOUR_PUBLIC_CLIENT_ID"
delivery = { kind = "cookie", name = "auth-openid" } # Add gateway auth as a cookie.
# redirect_port = 43127Codex verwendet standardmäßig einen freien Loopback-Port. Wenn Ihr Identitätsanbieter eine feste Weiterleitungs-URI erfordert, legen Sie redirect_port fest und registrieren Sie für dieses Beispiel http://127.0.0.1:43127/callback.


Routing-Header hinzufügen (optional)
Bei beiden Optionen kann Codex benutzerdefinierte Routing-Header an das Gateway senden. Fügen Sie beispielsweise diese Header zum selben enterprise_gateway-Anbieter in Ihrer cloudverwalteten requirements.toml hinzu:
[model_providers.enterprise_gateway.http_headers]
x-portkey-config = "<gateway-routing-config-id>"
x-portkey-metadata = '{"tool_id":"codex"}'Codex sendet die Header bei Anfragen an den Modellanbieter; das Gateway wendet die Routing-Regeln an. Verwenden Sie env_http_headers für Werte, die aus der Prozessumgebung von Codex gelesen werden. Testen Sie eine Anfrage, um sicherzustellen, dass das Gateway beide Header empfängt und die vorgesehene Route auswählt. Weitere Header-Optionen finden Sie unter Benutzerdefinierte Modellanbieter.
Anmeldenachweise getrennt weiterleiten
Codex sendet den ChatGPT-Header Authorization, einen gegebenenfalls vorhandenen ChatGPT-Account-ID-Header sowie den Gateway-Header oder das Gateway-Cookie. Lassen Sie das Gateway seinen Anmeldenachweis prüfen und entfernen und anschließend die ChatGPT-Header unverändert weiterleiten.
Hinweise und Einschränkungen
- Verwenden Sie einen Codex-Build, der verwaltete Anforderungen an Modellanbieter und für Option B natives Gateway-OAuth unterstützt. Ältere Builds ignorieren möglicherweise nicht unterstützte Felder oder lehnen sie ab.
- Diese Route umfasst Anfragen über den ausgewählten Modellanbieter. Die ChatGPT-Anmeldung, MCP, Plugins und andere App-Verbindungen können andere Pfade verwenden.
- Ihr Gateway kann die Anfragedaten und beide Anmeldenachweise einsehen. Schwärzen Sie diese in Protokollen; leiten Sie Gateway-Anmeldenachweise niemals an vorgelagerte Dienste weiter.
- Natives Gateway-OAuth benötigt einen Browser und einen erreichbaren Loopback-Callback. Es gibt keine Ausweichmöglichkeit per Gerätecode. Ohne Aktualisierungstoken müssen Benutzer die Browseranmeldung wiederholen, wenn das Zugriffstoken abläuft.
- Eine generische OpenAI-Antwort für
/v1/modelsreicht nicht aus: Codex erwartet einmodels-Array. Testen Sie die Modellliste, einen Prompt und jede Funktion, die Ihre Bereitstellung nutzt.
Sprachfunktionen über ein Gateway
Diese Einrichtung leitet Anfragen von Codex an Modellanbieter weiter; sie aktiviert nicht ChatGPT Voice. Bei WebRTC-Sprachsitzungen verwenden die Anruferstellung und die Sideband-Verbindung separate Routen. Die experimentelle Einstellung experimental_realtime_webrtc_call_base_url in ~/.codex/config.toml ändert nur die HTTP-Basis-URL für die Anruferstellung. Sie leitet weder die Sideband-Verbindung noch Medien oder gewöhnliche Modellanfragen um. Überprüfen Sie gemeinsam mit OpenAI das Anrufziel und die Handhabung der Anmeldenachweise, bevor Sie diese Überschreibung verwenden, und testen Sie anschließend eine vollständige Sprachsitzung.
Informationen zum Pfad für API-/Anbieteranmeldedaten finden Sie unter Gateway-Kompatibilität und Ein Gateway einführen. Informationen zu diesen verwalteten Einstellungen finden Sie unter Verwaltete Konfiguration und in der Konfigurationsreferenz.