Hallo,
Wenn Nginx vor Discourse eingesetzt wird (Nginx → AWS LB → Discourse-Container), funktioniert die Anmeldung überhaupt nicht. Nach der Eingabe der Anmeldedaten wird man lediglich zur Discourse-Startseite weitergeleitet.
Nginx ist so konfiguriert, dass HTTP zu HTTPS umgeleitet wird. Wir besitzen Zertifikate im AWS Certificate Manager für unsere Domäne und Subdomains.
Das Discourse-SAML-Plugin ist installiert. Zudem nutzen wir SSO über eine andere Anwendung, deren Konfiguration HTTPS verwendet. force_https ist ebenfalls in den Site-Einstellungen aktiviert.
Wir können bestätigen, dass die SSO-Anwendung funktioniert, aber es scheint, als ob die Discourse-Authentifizierung nach der Einrichtung von Nginx nicht mehr funktioniert.
Für unsere Foren-Seite (Discourse) ist Nginx wie folgt konfiguriert:
server {
server_name [subdomain.domain.com];
location / {
resolver [insert.resolver.ip.here] valid=60s;
if ($http_x_forwarded_proto != "https") {
rewrite ^(.*)$ https://$server_name$1 permanent;
}
proxy_pass [AWS-load-balancer-domain];
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Referer $http_referer;
}
}
Diese Nginx-Konfiguration funktioniert für andere Subdomains unserer Hauptseite.
Dies ist das ausführliche SSO-Protokoll, und obwohl der einzige Fehler, den ich sehe, lautet ActionController::RoutingError (No route matches [GET] "/.env"):
verbose-sso-log.txt (6,3 KB)