Siga o tópico SSO Oficial, mas não consigo fazer a página de login universal aparecer.
Quando ativei apenas o OAuth, funcionou. Fiz login usando o botão “com Auth0” sem problemas. Ao ativar o SSO, fui redirecionado para a página do Auth0, mas recebi uma página de erro com a mensagem " invalid_request : Parâmetro inválido: client_id deve ser uma string". Minha primeira impressão é que estou inserindo o “sso_url” errado. Honestamente, não tenho ideia do que deveria estar lá, então coloquei “https://.auth0.com/authorize”.
Alguém já enfrentou um problema assim? Ou tem alguma ideia?
A sso url deve ser definida como a URL que você configurou no site do seu provedor de SSO para lidar com a solicitação de SSO do Discourse.
A implementação do SSO pelo Discourse não utiliza OAuth. É possível que isso seja a causa da confusão.
Qual linguagem ou framework o site do seu provedor de SSO está usando? É possível que já exista uma implementação de SSO para ela que você possa utilizar.
Isso faz sentido. O Auth0 e o SSO do Discourse são sistemas completamente separados. Você não pode ativar ambos no seu site. Parece que tudo o que você precisa fazer é garantir que o Auth0 esteja configurado corretamente no seu site.
Como novo usuário na configuração do Discourse, compartilho sua confusão ao entender o recurso SSO. Existe um tópico sobre o assunto, mas ele ainda não transmite bem a diferença, especialmente porque algumas das configurações de SSO são para usar o Discourse como provedor de SSO (algo como o que você deseja fazer com o Auth0).
Para usar um provedor de identidade externo com o recurso SSO, você precisa de um serviço intermediário, como o discourse-sso-oidc-bridge. Consegui fazê-lo funcionar hoje com o Keycloak em vez do Auth0; deve ser mais ou menos o mesmo.
Se você só quer usar o Auth0 como os logins sociais (Google/Facebook/GitHub), então o que provavelmente deseja é o plugin discourse-openid-connect. Você precisará instalá-lo e usar as configurações que ele fornece. Eu testei isso com o Keycloak antes do recurso SSO separado. Ele não precisa da ponte intermediária e pode atender ao que você deseja (desde que você não queira que detalhes do Discourse sejam atualizados/sincronizados quando um usuário fizer login novamente, que é o único momento em que o Discourse sincroniza os dados da conta).
Os usuários serão solicitados a criar uma conta, mas todos os campos do formulário serão preenchidos a partir do seu provedor de autenticação. Uma atualização futura do plugin pretende pular essa etapa e simplesmente criar a conta (desde que seja a única opção de login), como já faz o recurso SSO existente.