Documento de descoberta está faltando

Olá,

O Discourse é atualmente o software que considero ter o maior grau de liberdade técnica, por isso o escolhi como meu fórum. Mas encontrei o erro ‘Discovery document is missing’ ao configurar o OIDC, o que me levou uma semana :face_with_spiral_eyes:, e não encontrei uma solução adequada aqui.
Consegui construir o Discourse com sucesso seguindo o seguinte tutorial:

Em seguida, usei o docker para construir o Keycloak, e tanto o Keycloak quanto o Discourse foram implantados localmente. Ao estabelecer a conexão do Discourse e do Keycloak através do OIDC, encontrei o seguinte erro:


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/

De acordo com este erro, encontrei a solução correspondente da seguinte forma:

Após seguir a solução, um novo erro foi relatado da seguinte forma:

(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/

Aqui estão algumas das minhas configurações:


A porta do Keycloak é 7070

Os conteúdos do documento de descoberta do openid connect são os seguintes

Posso estar enganado, mas como o Discourse e o Keycloak são ambos implantados localmente com Docker, você tem certeza de que o Discourse pode fazer requisições para o Keycloak? É algo com que já tive problemas no passado. Sei que é possível fazer funcionar.

3 curtidas

Obrigado pela sua resposta paciente que me deu uma boa ideia :blush:. Você está realmente certo. O serviço Keycloak local não pode ser acessado através de localhost ou 127.0.0.1, então eu uso o IP do host em vez de localhost. Mas um novo problema surgiu:

Então eu decodifiquei a URL e descobri que a URL de redirecionamento apontava para http://127.0.0.1:3000/auth/oidc/callback em vez de http://127.0.0.1:4200/auth/oidc/callback, cuja porta é a porta da página front-end de discussão. Finalmente, fiz as modificações correspondentes no Keycloak e tive sucesso:

2 curtidas

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