SSO "parcial" é possível?

Não sou desenvolvedor, então nem sei o que pesquisar para encontrar a resposta à minha pergunta. Atualmente estou testando o Discourse e a forma como os usuários fazem login tem ocupado muito meus pensamentos.

No início do meu teste, estava convencido de que o SSO seria o caminho a seguir assim que o período de avaliação terminasse, mas agora não tenho tanta certeza. Parece que perderia alguns recursos legais do Discourse se ativasse o SSO (como os recursos de convite) e não sei se a vantagem, no meu caso, vale a pena.

É possível fazer com que meu fórum utilize tanto as contas nativas do Discourse quanto as contas do meu site? Algo semelhante à configuração de opções como “ou faça login com Facebook/Google/Apple”?

Sabe como, quando um usuário tenta fazer login ou criar uma conta, ele vê os campos de e-mail e senha, mas à direita há opções para fazer login com Facebook, Google, etc.? Eu poderia simplesmente ter a conta do meu site como uma dessas opções à direita?

Assim, se um usuário quiser apenas usar o login do meu site principal e não criar uma conta específica para o fórum, ele poderá, mas não será obrigado a fazê-lo.

Isso é possível? E é recomendável? Ou seja, existem razões pelas quais eu não deveria seguir esse caminho? Obrigado!

Depende do que você quer dizer com “SSO”:

  • Se você está falando de Setup DiscourseConnect - Official Single-Sign-On for Discourse (sso), então você não pode usá-lo junto com outras opções de login.

  • Se você está falando de OAuth2, OpenID Connect ou qualquer um dos nossos outros plugins de autenticação, então sim, eles podem ser usados juntos e também com o login por e-mail e senha.

Boas notícias nesse aspecto: adicionamos recentemente suporte a convites para o DiscourseConnect.

E para outros métodos de login:

Essas alterações estão disponíveis na versão mais recente do Discourse.

Você pode fazer isso implementando o OAuth2 no seu servidor para que ele funcione como o Google, o GitHub e outros. (Ou pedindo para alguém fazer isso, já que você não é um desenvolvedor.)

Obrigado! Poderia me enviar um link para a documentação sobre isso, por favor?

Esses dois plugins podem ser encontrados em:

Estou animado em ver o recurso de compatibilidade entre SSO e convites, mas ele não parece funcionar no meu ambiente.

Meu site principal está no WordPress e estou usando o plugin WP Discourse para integrar as duas aplicações. Também tenho um formulário de registro que realiza autenticação por e-mail no WordPress e escrevi código personalizado para evitar que o Discourse envie e-mails de verificação duplicados para usuários durante o registro. Ativei a opção must_approve_users no Discourse para impedir que qualquer pessoa acesse a comunidade sem aprovação.

Segui os seguintes passos, mas o usuário não foi aprovado no final. Exatamente como antes.

  1. Convite ao usuário com o endereço de e-mail
  2. O usuário abre o convite por e-mail e clica no link
  3. O usuário é redirecionado para a página de saída do Discourse com uma mensagem de boas-vindas e um botão de ação (CTA) para continuar
  4. Ao clicar no CTA, o usuário é levado para a página de login no WordPress
  5. Como o usuário não está registrado no WordPress, precisei criar uma nova conta para ele — o que acho que faz sentido, já que o WordPress não sabe que o Discourse convidou esse usuário.
  6. Após o registro, recebo um e-mail de confirmação do WordPress. Clico nesse e-mail e sou redirecionado para a página de login no WordPress.
  7. Após fazer login no WordPress, tento acessar a comunidade, mas não consigo.
  8. Vou para a conta de administrador e verifico o status do usuário e, como suspeitava, ele está como “Precisa de aprovação”. Esta é exatamente a mesma situação que tinha antes de enviar o convite.

O que estou deixando passar? Existe algum outro fluxo que eu precise seguir? Posso convidar apenas usuários que já estão registrados no WordPress? Estou procurando orientação. Obrigado.

Minha versão do Discourse: 2.8.0.beta1