O Discourse poderia oferecer um serviço de login SSO/Federado semelhante ao StackExchange?

Tenho visto o Discourse por toda parte e não poderia estar mais feliz! Parece que ele está se tornando rapidamente a escolha padrão para comunidades que desejam configurar novos fóruns de discussão com rapidez ou substituir fóruns existentes baseados em plataformas antigas e padrões de UX desatualizados.

No entanto, de certa forma, ele parece ser vítima de seu próprio sucesso: toda vez que quero postar em uma nova comunidade do Discourse, preciso criar uma conta, configurar uma senha, etc. Algumas comunidades se deram ao trabalho de configurar o OAuth via GitHub, redes sociais, etc., mas muitas não. Tenho que criar e verificar uma nova conta no servidor Discourse delas apenas para fazer uma pergunta, oferecer uma resposta ou até mesmo :heart: uma resposta que achei útil.

Compare isso com minha experiência na rede StackExchange, onde me é oferecido um botão “Junte-se a esta comunidade” em uma comunidade com a qual desejo interagir pela primeira vez. Quando clico nesse botão, recebo a opção de me cadastrar usando meu login de outra comunidade:

A nova conta é criada e logada automaticamente com um único clique.

Acho que meu problema é que há uma suposição não declarada de que cada comunidade do Discourse é uma ilha à parte e que os usuários ficam sentados o dia todo logados em um único fórum esperando para ver respostas e novas perguntas, se divertindo ganhando distintivos e acumulando privilégios. Na realidade, a grande maioria das interações dos usuários é impulsionada por necessidades, com apenas alguns poucos usuários ancorando as comunidades para participar regularmente. Acredito que a interação típica de um usuário com uma comunidade do Discourse é algo assim:

  1. Ter um problema
  2. Pesquisar no Google por uma resposta
  3. Não encontrar uma solução em lugar nenhum na internet, incluindo o fórum Discourse do grupo
  4. Decidir que meu problema é urgente o suficiente para criar uma conta no fórum
  5. Fazer minha pergunta ou comentar em uma pergunta existente
  6. Receber uma resposta de alguém ou, eventualmente, resolver por conta própria
  7. Se eu resolvi por conta própria e estou me sentindo pró-social, retornar ao fórum Discourse com minha solução
  8. Voltar a viver minha vida
  9. Anos depois, ter outro problema e tentar lembrar minhas credenciais para poder fazer login no fórum novamente
  10. Repetir os passos 5 a 10

Grande parte desse processo é dificultada pela necessidade de criar uma nova conta para cada novo fórum no qual quero participar.

Entendo que as comunidades da StackExchange são gerenciadas por uma empresa central, enquanto as comunidades do Discourse são hospedadas de maneira completamente descentralizada, mas parece que isso poderia ser implementado com o Discourse estabelecendo seu próprio serviço de provedor de identidade. Em contraste com a integração de algo como GitHub ou Facebook, onde o administrador do fórum precisa tomar medidas ativas em um site externo para configurar o OAuth com esses provedores, parece que os tokens necessários para um botão “Entrar com Discourse” poderiam ser configurados automaticamente por meio do processo de instalação padrão.

Sei que já houve outras conversas sobre esse assunto, mas elas parecem ter escopo excessivamente complicado e saíram do rumo.

2 curtidas

Isso é um tipo diferente de federação, conectando o Discourse a ferramentas como o Mastodon relacionadas a publicações e respostas (em oposição ao login).

Você deve verificar o Discourse SSO, que está sendo discutido em vários tópicos no meta.

1 curtida

O que você descreveu foi muito discutido nos primórdios do Discourse. Existe uma tag para isso: #discourse_hub

O tópico mais recente é de 2014:

(além disso, acabei de perceber que Jeff usa o nome @david como exemplo, muitos anos antes mesmo de eu saber do Discourse :joy:)

É uma ideia muito legal, mas há muitos obstáculos no caminho.

6 curtidas

Legal, obrigado! Parece que a SE resolveu muitos dos problemas descritos naquele tópico ao longo dos últimos seis anos ou mais (por exemplo, ela usa um número + nome de usuário como identificador único para os usuários).

O cerne da questão parece ser que, ao contrário da SE, o Discourse é descentralizado, com cada comunidade sendo totalmente controlada por quem controla o(s) servidor(es) onde ele é executado. Também argumentaria que aqueles administradores que não querem abrir mão de um pouco de controle para tornar sua comunidade mais acessível certamente poderiam ter a opção de não aderir ao Discourse Hub, entendendo que há um custo para essa decisão na forma de acessibilidade e engajamento dos usuários reduzidos.

Certamente, poderíamos incluir um login social padrão para o provedor “DiscourseHub”, ativado por padrão e com recursos adicionais, como suporte completo a todos os campos padrão (nome de usuário, nome, e-mail, avatar, biografia) e até mesmo oferecer alguma sincronização bidirecional (tentar extrair os dados da conta de usuário recém-criada e publicar alguns detalhes no perfil central, como distintivos e melhores postagens). Poderíamos até usá-lo para promover as melhores práticas, como senhas mínimas robustas e autenticação de dois fatores obrigatória.

No entanto, se devemos fazer isso é uma grande questão em aberto.

3 curtidas

Quanto disso um diretório gerenciado centralmente (por nós) resolveria?

Você ainda precisará criar uma nova conta em cada site, e cada site pode ter (por exemplo) campos diferentes obrigatórios no cadastro. Poderíamos preencher a maioria, mas você ainda precisaria confirmá-los. O avatar já é bem atendido, por exemplo, pelo Gravatar.

sobre tentar lembrar suas credenciais: o login por e-mail é a melhor maneira de usar essas comunidades às quais você acessa com pouca frequência — eu o uso sempre que está habilitado.

Eu adoraria ver um problema sólido que precise ser resolvido antes de considerarmos nos tornar mais um provedor de identidade. Vejo a descentralização como um recurso, não um defeito :slight_smile:

6 curtidas

Sobre este tópico … um componente de tema que eu apoio 100% é uma mudança que torna a autenticação baseada 100% em e-mail.

  • Para se registrar … tudo o que você faz é inserir endereço de e-mail, nome de usuário, nome … sem senha
  • Para fazer login … tudo o que você faz é inserir endereço de e-mail … sem senha

Já suportamos login sem senha, via e-mail, mas isso está um pouco escondido. Eliminar a senha tornaria isso completamente óbvio e removeria bastante atrito.

Claramente não é um padrão do Discourse por enquanto, mas um componente de tema muito interessante, na minha opinião.

1 curtida