Привет!
Discourse на данный момент — это программное обеспечение, которое, по моему мнению, предоставляет наибольшую техническую свободу, поэтому я выбрал его в качестве форума. Однако при настройке OIDC я столкнулся с ошибкой «Discovery document is missing» (Файл обнаружения отсутствует), которая заняла у меня неделю , и я не смог найти подходящего решения здесь.
Я успешно установил Discourse согласно следующему руководству:
Затем я использовал Docker для сборки Keycloak, и оба сервиса — Keycloak и Discourse — были развернуты локально. При попытке установить соединение между Discourse и Keycloak через OIDC я столкнулся со следующей ошибкой:
OIDC Log: Fetching discovery document raised error Faraday::ConnectionFailed FinalDestination: all resolved IPs were disallowed
13:51
(oidc) Authentication failure! openid_connect_discovery_error: OmniAuth::OpenIDConnect::DiscoveryError, Discovery document is missing
13:51
OmniAuth::OpenIDConnect::DiscoveryError (Discovery document is missing) lib/middleware/omniauth_bypass_middleware.rb:53:in `call' lib/content_security_policy/middleware.rb:12:in `call' lib/middleware/
Согласно этой ошибке я нашел соответствующее решение:
После следования этому решению была сообщена новая ошибка:
(oidc) Authentication failure! openid_connect_discovery_error: OmniAuth::OpenIDConnect::DiscoveryError, Discovery document is missing
14:00
OmniAuth::OpenIDConnect::DiscoveryError (Discovery document is missing) lib/middleware/omniauth_bypass_middleware.rb:53:in `call' lib/content_security_policy/middleware.rb:12:in `call' lib/middleware/
Возможно, я не прав, но так как Discourse и Keycloak развернуты локально с помощью Docker, вы уверены, что Discourse может отправлять запросы в Keycloak? С этим я раньше сталкивался и у меня возникали проблемы. Хотя, конечно, это можно заставить работать.
Спасибо за ваш терпеливый ответ, который дал мне хорошую идею . Вы действительно правы. К локальному сервису Keycloak нельзя получить доступ через localhost или 127.0.0.1, поэтому я использую IP-адрес хоста вместо localhost. Но возникла новая проблема: