Memberstack + Webflow + Discourse OpenID Connect

Olá - Vi algumas postagens antigas sobre isso, mas nada atual. Fiz essa pergunta no fórum do Memberstack também…

Estou trabalhando em um projeto para construir uma nova comunidade privada/fechada e estou interessado em usar Memberstack + Webflow e SSO para Discourse como plataforma da comunidade. Tenho a impressão de que isso agora é suportado com integração SSO personalizada. Preciso especificamente garantir que os usuários possam ser autenticados nas páginas do Webflow e, em seguida, navegar perfeitamente para o site da comunidade Discourse. Vi comentários sugerindo que é possível e vi a documentação SSO do Memberstack, mas estou procurando informações mais específicas relacionadas à integração com o Discourse. Alguém está usando uma configuração como essa usando Memberstack para gerenciar SSO para Discourse? Preciso testá-la o mais rápido possível. Obrigado.

3 curtidas

Sim, isso agora é suportado! O Memberstack agora permite que você use o Memberstack como um provedor OpenID Connect: https://docs.memberstack.com/hc/en-us/articles/8161104982043-Custom-SSO-Integrations. Isso permitirá que os usuários façam login no seu site Discourse através do Memberstack. Se você configurar seu site Discourse de forma que o OpenID Connect seja a única opção de login disponível no site, fazer login no Discourse a partir de suas páginas Webflow será um processo contínuo para seus usuários. (Observação: não remova a opção de fazer login no seu site Discourse com nome de usuário/senha até ter confirmado que os logins OpenID Connect estão funcionando.)

Para que isso funcione, você precisará ter o plugin Discourse OpenID Connect instalado no seu site Discourse. Detalhes sobre a configuração desse plugin estão aqui: Discourse OpenID Connect (OIDC).

Recomendo assistir ao vídeo na documentação do Memberstack que linkei antes de tentar configurar os logins OpenID Connect para o seu site Discourse. Ele o guiará pelo processo de configuração dos logins OpenID Connect do Memberstack para funcionar com o site de teste em https://openidconnect.net/. Depois de fazer isso, configurar a autenticação OpenID Connect para o Discourse deve ser um processo simples.

Se houver algum site Discourse existente que tenha configurado a autenticação OpenID Connect com o Memberstack, seria ótimo ouvir deles.

5 curtidas

@simon Muito obrigado pela sua contribuição e por confirmar que isso deve funcionar! Eu esperava obter esse tipo de validação antes de avançar muito com o Webflow. Estou usando isso para executar um programa piloto e quero testar Memberstack + Webflow + Discourse durante o piloto. Portanto, isso é apenas para provar o MVP e é muito possível que eu mude para algo bem diferente a longo prazo (exceto o Discourse… definitivamente manterei esse!).

Como este suporte OpenID do Memberstack é relativamente novo, ficaria feliz em saber se há alguém aqui que esteja realmente usando esse tipo de configuração em produção.

2 curtidas

Olá! Você conseguiu implementar uma solução funcional para isso? O OpenID requer uma conta empresarial no Discourse, que custa US$ 300/mês! Eu esperava usar o DiscourseConnect SSO para conseguir o que você mencionou com Webflow e Memberstack!

Até onde sei, uma solução funcional foi implementada com OpenID Connect.

Não acho que o Webflow permita adicionar código do lado do servidor ao seu site. Se isso estiver correto, não será possível usar o DiscourseConnect com o Webflow.

@JammyDodger, este tópico poderia ser renomeado para “Memberstack + Webflow + Discourse OpenID Connect”.

1 curtida

Olá a todos! Consegui fazer o SSO para o Discourse funcionar via meu login do Memberstack! Assim que faço login via OpenID no meu fórum Discourse, recebo um pop-up para “criar minha conta” no fórum. É isso que deveria acontecer ou deveria me fazer login diretamente? Incluí uma captura de tela do pop-up que recebo depois de fazer login com minhas informações do Memberstack. Agradeço antecipadamente!

Que ótimo!

Pela sua captura de tela, não parece que seu endereço de e-mail está sendo preenchido no formulário de login. Faz um tempo que assisti ao vídeo do Memberstack (https://docs.memberstack.com/hc/en-us/articles/8161104982043-Custom-SSO-Integrations), mas acho que a configuração do site do Discourse openid_connect_authorize_scope precisa ser definida como openid email profile para que o endereço de e-mail e o nome de usuário sejam incluídos na carga útil enviada para o Discourse.

Não tenho as coisas configuradas para testar isso agora, mas você pode precisar habilitar estas configurações para pular o pop-up de criação de conta (caso contrário, os campos ainda serão preenchidos, mas os usuários terão que clicar no botão “Criar sua conta”):

  • auth skip create confirm (definitivamente precisa ser habilitado para pular o pop-up de criação de conta)
  • auth overrides email
  • auth overrides username
  • auth overrides name

A maneira mais fácil de testar isso é se você tiver uma conta não administrativa no seu site Webflow. Dessa forma, você pode tentar fazer login como esse usuário várias vezes e apenas excluir a conta dele no Discourse se não estiver funcionando como esperado.

Muito OBRIGADO, Simon! Adicionar esses itens extras em “openid_connect_authorize_scope” resolveu e habilitar “auth skip create confirm” pula o pop-up e vai direto para a página inicial do fórum! Habilitei “openid connect overrides email” - o que isso faz?

E existe uma maneira de definir o botão “Inscrever-se” no Discourse para navegar para uma página de inscrição personalizada que tenho em meu site? Atualmente, clicar em “Inscrever-se” me conecta via OpenID, mas eu gostaria que ele linkasse para uma página específica em meu site.

Obrigado por toda a sua ajuda, tem sido inestimável!

Certo, para OpenID Connect, a configuração é chamada openid connect overrides email, não auth overrides email. Quando ativado, toda vez que um usuário faz login no Discourse através do OpenID Connect, o e-mail do Discourse dele será definido para o valor do endereço de e-mail que ele usa no site do provedor de autenticação OpenID Connect. Isso significa que, se um usuário alterou seu e-mail no Discourse, ele será automaticamente redefinido para o valor do endereço de e-mail que ele usa no Memberstack.

Na verdade, você pode desativar a configuração do site email editable para evitar quaisquer problemas com e-mails dessincronizados com o provedor de autenticação. Portanto, se você desativar email editable e ativar openid connect overrides email, os usuários só poderão alterar seu endereço de e-mail alterando-o no Memberstack e, em seguida, fazendo login no Discourse via Memberstack.

Não acho. Depois que alguém clica no botão “Inscrever-se” no Discourse, o Discourse o redirecionará para o authorization_endpoint fornecido pelo Memberstack. Possivelmente o Memberstack permite que isso seja configurável, mas você precisaria contatá-los para descobrir.

Outra abordagem possível é que pode ser possível adicionar um link para a página personalizada no cabeçalho do Discourse. Talvez com este componente de tema: Custom Header Links. Idealmente, você seria capaz de ocultar o link de usuários logados com algum CSS.

Obrigado, Simon! Ativei as substituições de e-mail do OpenID e desativei a edição de e-mail, agradeço por me guiar nisso!

Essa é uma boa ideia em relação ao botão de inscrição, vou investigar como fazer isso!

1 curtida

@ryanshah112 Consegui fazer isso funcionar como um POC (com muita ajuda de @simon), mas decidi contra a configuração da Microsoft e agora pausei o projeto por alguns meses. Preciso colocá-lo em funcionamento novamente. Achei que a integração MS openID não funcionou muito bem. Por um lado, há o problema do login duplo que tornou o fluxo de integração menos que ideal - ele não pede apenas a autorização do aplicativo, mas faz o usuário fazer login. Eu queria configurar um fluxo de integração personalizado onde o usuário fizesse login no site do Webflow e pudesse navegar para o Discourse de forma transparente. Consegui fazer isso funcionar usando formulários, Zapier, Airtable, criando um usuário do Discourse via API. Foi muito legal como um POC, mas não é realmente algo que eu queria fazer como um sistema de produção. Quando eu começar novamente, provavelmente não dependerei da Microsoft como o IDP, mas sim construirei usando algo como Wized com Supabase ou algo assim. Acho que a integração Microsoft + Discourse funcionaria bem se você estiver satisfeito com algumas das limitações.

1 curtida

Você pode me dizer qual será a URL de conexão do discurso? Existem o Ponto de Extremidade do Token de Autorização, o Ponto de Extremidade do Token e o Ponto de Extremidade das Chaves do Token.

Olá River, se você não tem certeza sobre o OpenID Connect, sugiro assistir ao vídeo do Memberstack sobre OpenID Connect e seguir o tutorial: https://docs.memberstack.com/hc/en-us/articles/8161104982043-Custom-SSO-Integrations. Foi o que eu fiz.

Para configurar o OpenID Connect no lado do Discourse, você pode encontrar as informações relevantes aqui: Discourse OpenID Connect (OIDC). Um detalhe específico do Memberstack que não é mencionado nesse tópico é que acho que a configuração do site openid_connect_authorize_scope do Discourse precisa ser definida como:

  • openid email profile

(Assumindo que isso esteja correto, ele deve ser adicionado à seção “Observações específicas do provedor” na parte inferior do tópico OpenID Connect do Discourse.)

Esta é uma causa de confusão sem fim aqui, mas DiscourseConnect se refere a um protocolo de autenticação completamente separado. As informações que você precisa estão no tópico OpenID Connect do Discourse que eu linkei.

Olá Simon,
Obrigado por me esclarecer as coisas. Existe um método para conectar o Memberstack com o DiscourseConnect?

Tenho quase certeza de que não é possível usar o DiscourseConnect com o Memberstack. Para funcionar, você precisaria adicionar algum código do lado do servidor ao seu site Memberstack. Acho que isso não pode ser feito.

Pode valer a pena perguntar ao Memberstack sobre isso. Eles poderiam implementar o DiscourseConnect para todos os seus sites de forma semelhante ao que o Memberful fez: Integrate Discourse with Memberful - Memberful. Estou disponível para trabalhos de consultoria se eles quisessem alguma ajuda com isso :slight_smile:

Olá River! Concordo com Simon que não é possível usar o DiscourseConnect e, em vez disso, você precisará usar o OpenID. Se precisar de ajuda para configurar o Memberstack x Discourse via OpenID, ficarei feliz em ajudar, pois consegui fazer isso com a ajuda de Simon! Você precisará do plano “Business” se estiver usando o serviço de hospedagem do Discourse.

@ryanshah112 e @river - Para sua informação - quando comecei este tópico, eu tinha um requisito rígido para usar o Webflow. O Memberstack era realmente a única opção viável para SSO via OpenID e eu não o olho há talvez 6 meses, então algumas coisas podem ter melhorado lá. Mas se você estiver disposto a considerar o Wordpress, há muitos benefícios com o DiscourseConnect.

Ryan - Comecei com o plano Business para testá-lo, mas mudei para Self hosted depois de alguns meses porque eu realmente não precisava de pacotes / recursos de nível “business” para meu POC, exceto o OpenID. Dependendo do que você precisa, você pode querer considerar isso e eu recomendo @pfaffman se você precisar de ajuda para configurar isso. Super fácil.

2 curtidas