Vejo esta mensagem ao tentar ativar o Discourse_id no meu sistema de teste (3.6.0.beta2-latest):
enable_discourse_id: Você deve configurar as credenciais do Discourse ID ('discourse_id_client_id' e 'discourse_id_client_secret') antes de ativar esta configuração.
Eu uso um servidor Oauth local para OIDC aqui (keycloak). Talvez os dois métodos estejam interferindo um com o outro??
Não acho que interfira com OIDC, mas se a sua instância não estiver disponível na Internet, o registro de ID não funcionará. O provedor de identidade do Discourse ID tem um mecanismo de verificação para as instâncias do Discourse que iniciam o processo de registro.
Movi isto para um tópico separado… você vê algum erro em /logs na sua instância? Deverá haver mais detalhes lá sobre o que não está a funcionar nos bastidores durante o processo de registo.
Gostaria de entender um pouco mais do lado técnico.
Nas minhas instâncias, uso autenticação OIDC com um provedor de identidade externo (Keycloak 26). O Discourse ID parece muito semelhante; é apenas um servidor IDP diferente hospedado pelo Discourse.org. E as mensagens de erro (ID do cliente e segredo ausentes) também lembram o fluxo OAuth clássico. Isso significa que o Discourse ID será ativado como um caminho de autenticação IDP adicional? Porque só assim seria útil para o meu caso de uso. ???
Ok. Então eu precisaria de um ID de cliente no seu IDP (para o fluxo de acesso público) ou um ID de cliente e um Segredo do cliente (para o fluxo de acesso confidencial). Outra opção: adicione o ID do Discourse como um corretor de identidade externo ao IDP local. Para ambas as variantes, seria necessária um pouco mais de informação …
Ah, de fato, se você estiver no canal stable, @Tealk, terá que esperar pela próxima versão estável para que o Discourse ID esteja disponível para você.
Esse é um bom ponto. Atualizei o feed Novidades para incluir apenas este item para instâncias que não estão em versão estável (e que possuem o commit em latest que desbloqueia o ID do Discourse). Se você atualizar seu feed Novidades, não deverá mais ver este item em sua instância em versão estável.
A configuração do site enable_discourse_id não deve estar presente para você. (Certifique-se de não confundi-la com enable_discourse_connect, isso é outra coisa.)
Agora que vejo sua instância, vejo erros http/https. Para que o ID funcione, o site deve estar em https. Este é provavelmente o seu problema.
… interessante, mas não entendo por quê. Talvez tenhamos uma lacuna conceitual aqui: os contêineres do Discourse estão localizados atrás de um acelerador SSL, acessível apenas via https. Mas isso é para a conexão padrão que vem de “fora” para “dentro”. No caso de uso do OAuth, o contêiner do Discourse inicia a conexão de “dentro” para o IDP, que está “fora”. Não vejo nenhuma opção para configurar essa conexão com o ID do Discourse e forçá-la a ser “https“.
Se eu comparar isso com as configurações clássicas do OIDC usadas para configuração do OAuth com meu próprio IDP: lá temos uma configuração de “Documento de descoberta OpenID Connect”
Acho que precisamos de algo semelhante para o ID do Discourse para evitar problemas com conexões https ausentes. PS. Minha instância de teste tem 3.6.0.beta2-latest, Commits · discourse/discourse · GitHub