Hallo,
Discourse ist derzeit die Software, die meiner Meinung nach den höchsten Grad an technischer Freiheit aufweist, daher habe ich sie als mein Forum gewählt. Aber ich bin auf den Fehler „Discovery-Dokument fehlt“ gestoßen, als ich OIDC konfiguriert habe, was mich eine Woche gekostet hat , und ich habe hier keine geeignete Lösung gefunden.
Ich habe Discourse erfolgreich nach dem folgenden Tutorial erstellt:
Dann habe ich Docker verwendet, um Keycloak zu erstellen, und sowohl Keycloak als auch Discourse wurden lokal bereitgestellt. Als ich die Verbindung von Discourse und Keycloak über OIDC herstellte, stieß ich auf den folgenden Fehler:
OIDC-Protokoll: Das Abrufen des Discovery-Dokuments führte zu einem Fehler Faraday::ConnectionFailed FinalDestination: alle aufgelösten IPs waren nicht zulässig
13:51 Uhr
(oidc) Authentifizierungsfehler! openid_connect_discovery_error: OmniAuth::OpenIDConnect::DiscoveryError, Discovery-Dokument fehlt
13:51 Uhr
OmniAuth::OpenIDConnect::DiscoveryError (Discovery-Dokument fehlt) lib/middleware/omniauth_bypass_middleware.rb:53:in `call' lib/content_security_policy/middleware.rb:12:in `call' lib/middleware/
Aufgrund dieses Fehlers habe ich die entsprechende Lösung wie folgt gefunden:
Nachdem ich der Lösung gefolgt war, wurde ein neuer Fehler gemeldet, wie folgt:
Ich liege wahrscheinlich falsch, aber da Discourse und Keycloak beide lokal mit Docker bereitgestellt werden, sind Sie sicher, dass Discourse Anfragen an Keycloak stellen kann? Das ist etwas, womit ich in der Vergangenheit Probleme hatte. Ich weiß, dass es funktionieren kann.
Vielen Dank für Ihre geduldige Antwort, die mir eine gute Idee gegeben hat . Sie haben absolut Recht. Der lokale Keycloak-Dienst kann nicht über localhost oder 127.0.0.1 erreicht werden, daher verwende ich stattdessen die IP des Hosts anstelle von localhost. Aber ein neues Problem ist aufgetreten:
Dann habe ich die URL dekodiert und festgestellt, dass die Weiterleitungs-URL auf http://127.0.0.1:3000/auth/oidc/callback statt auf http://127.0.0.1:4200/auth/oidc/callback zeigte, dessen Port der Port der Diskussions-Frontend-Seite ist. Schließlich habe ich die entsprechenden Änderungen in Keycloak vorgenommen und Erfolg gehabt: