Discourse ID schlägt fehl, auf meiner Instanz zu aktivieren

Hallo Penar,
vielleicht müssen wir zuerst die Details meines Setups klären. Es unterscheidet sich etwas von der Standardbereitstellung.

  • zentraler Load Balancer (https://www.haproxy.org/) fungiert als SSL-Beschleuniger für verschiedene Webdienste (nicht nur für Discourse). Der Zugriff aus dem Internet auf einen dieser Dienste ist nur über HTTPS gestattet. Der Wechsel von HTTP zu HTTPS erfolgt auf dem Load Balancer selbst, siehe Redirect HTTP to HTTPS in a Few Easy Steps with HAProxy als Referenz)
  • HAProxy leitet Frontend-Anfragen an das Backend in einem privaten Netzwerk (10.x.x.x) ohne Verschlüsselung weiter. Dieser Datenverkehr endet bei einem lokalen Nginx auf dem Docker-Host.
  • Nginx leitet Anfragen mit proxy_pass ``http://unix``:/mnt/data/discourse/shared/web-only/nginx.http.sock an den HTTP-Socket des web_only-Containers weiter.
    (Ich verwende ein Zwei-Container-Setup mit web_only.yml und data.yml). Siehe templates/web.socketed.template.yml als Referenz.

Ich benötige SiteSetting.force_https nicht, da die gesamte HTTPS-Verschlüsselung außerhalb des Discourse-Containers erfolgt. Ich verwende bereits OAuth basierend auf dem Plugin Discourse OpenID Connect (OIDC) und mit meinem eigenen IDP. Das Discourse OIDC-Plugin enthält eine Einstellung für das „well-known“ OpenID Connect discovery document. In meinem Fall: https://login.netzwissen.de/realms/netzwissen/.well-known/openid-configuration

Wenn Discourse ID etwas Ähnliches für die Verbindung zwischen der Discourse-Container-Instanz und dem Discourse ID IDP implementieren würde, gäbe es keine Probleme. Da „Discourse ID“ einen festen IDP verwendet, könnte eine solche „Well-Known-URL“ sogar fest kodiert werden, einschließlich des HTTPS-Präfixes.