Neue Community aufbauen: Basic Auth bricht WP-Discourse-Plugin

Ich stagiere Wordpress- und Discourse-Sites (selbst gehostet) mit dem WP-Discourse-Plugin.

Ich habe erfolgreich die HTTP Basic Authentication auf beiden Sites aktiviert, damit sie nicht zugänglich sind, bis sie öffentlich geschaltet werden (wodurch der Zugriff durch die allgemeine Öffentlichkeit sowie Suchmaschinen effektiv blockiert wird).

Wordpress (informativ für Leute, die etwas Ähnliches erreichen wollen)

Discourse

Das WP-Discourse-Plugin funktioniert gut, bis die Basic Authentication auf dem Discourse-Server aktiviert ist.

(Bearbeiten) Dies ist der Fehler im Log des WP-Discourse-Plugins auf der Wordpress-Seite: [2025-02-14 18:20:06] connection.INFO: check_connection_status.failed_to_connect {\"error\":\"wpdc_response_error\",\"message\":\"An invalid response was returned from Discourse\",\"http_code\":401,\"http_body\":\"\u003chtml\u003e\\r\\n\u003chead\u003e\u003ctitle\u003e401 Authorization Required\u003c/title\u003e\u003c/head\u003e\\r\\n\u003cbody\u003e\\r\\n\u003ccenter\u003e\u003ch1\u003e401 Authorization Required\u003c/h1\u003e\u003c/center\u003e\\r\\n\u003chr\u003e\u003ccenter\u003enginx\u003c/center\u003e\\r\\n\u003c/body\u003e\\r\\n\u003c/html\u003e\\r\\n\"}

Irgendwelche Gedanken, wie man APIs von der Anforderung der HTTP Basic Authentication auf Discourse ausschließen kann?

Danke!

Hast du das wirklich? Ich bin mir nicht ganz sicher, ob Discourse hinter der Basisauthentifizierung funktioniert; ich habe es einmal versucht, aber aufgegeben. Es scheint sogar noch wahrscheinlicher, dass es wp-discourse kaputt macht (oh, und ich hatte damit Recht!). Wenn du erfolgreich gewesen wärst, würdest du diese Nachricht nicht schreiben. :wink:

Für Discourse-Staging-Sites setze ich normalerweise einfach “Login erforderlich” und das hält Suchmaschinen fern. Jemand mit einem Login kann sich immer noch anmelden, aber das ist normalerweise das, was du willst.

Wenn es inakzeptabel ist, dass deine Websites für jedermann zugänglich sind, solltest du vielleicht eine Firewall verwenden und den Zugriff auf deine IP beschränken.

Kannst du einer Basisauthentifizierung sagen, dass sie den Zugriff von der IP-Adresse deines Discourse-Servers zulassen soll? Vielleicht: Allow access from one IP, require basic auth from all other sources - Traefik v2 - Traefik Labs Community Forum

Danke, dieser Hinweis hat mir geholfen, das Problem zu lösen. Hier ist der aktualisierte Abschnitt für die Basisauthentifizierung von app.yml auf meinem Discourse-Server (es waren keine Änderungen am WordPress-Server erforderlich):

# Basisauthentifizierung
  after_bundle_exec:
    - replace:
       filename: "/etc/nginx/conf.d/discourse.conf"
       from: "# Allow bypass cache from localhost"
       to: |
            # Erlaube die Umgehung der Basisauthentifizierung für das WP-Discourse-Plugin
            geo $authentication {
            default "Credentials you must provide.";
            127.0.0.1 "off";
            151.101.3.55/32 "off";
            }
            # Erlaube die Umgehung des Caches von localhost
    - replace:
       filename: "/etc/nginx/conf.d/discourse.conf"
       from: "# auth_basic on"
       to: "auth_basic $authentication"
    - replace:
       filename: "/etc/nginx/conf.d/discourse.conf"
       from: "# auth_basic_user_file /etc/nginx/htpasswd"
       to: "auth_basic_user_file /etc/nginx/htpasswd"
    - replace:
       filename: "/etc/nginx/conf.d/discourse.conf"
       from: "location = /srv/status {"
       to: "location = /srv/status {
           auth_basic off;"
    - file:
       path: "/etc/nginx/htpasswd"
       contents: |
         alfred:$apr1$jSdLuHyZ$faWxYGjnmLd/zRC6UMsRs1

151.101.3.55 ist die (Beispiel-)öffentliche IP-Adresse meines WordPress-Servers. WP-Discourse meldet nun:
Ein leerer Bildschirm zeigt den grün umrandeten Text „You are connected to Discord!“ (Untertitel von KI)

2 „Gefällt mir“

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.