Multiple sites with the same user accounts?

Hi… I’ve searched / browsed this forum but couldn’t find a simple explanation. Is multisite a feature where you want multiple separate sites but on the same server?

What I’m really looking for / wondering is if you can set up multiple forums on the same server, that share the same user database? Sorry if this has already been asked.

To share the userbase, simply have one of the forums be the sso provider and have the other forums be an sso consumer.

5 curtidas

Note that this is visible to the user: When they want to log in, they always go to the same site. This could be confusing, depending on the use case. If you want to avoid that, you need to set up an external SSO provider.

Also note that this will share the credentials, but not the user profiles, group memberships, …

Profile stuff can be handled in the payload.

Related:

https://meta.discourse.org/t/can-multisite-instances-communicate-with-one-another/8984?u=erlend_sh

1 curtida

Are there any newer/better approaches to this since the last post? This is something we want to do as well.

We definitely want to share user profiles so that badges (for example) only have to be earned once overall, not once per site.

Using discourse in multiple sites with shared accounts? suggests that just SSO will do the trick but Multiple sites with the same user accounts? suggests that using SSO just takes care of the authentication (credentials) but nothing else.

If you want shared badges, like using the sum for each site to get a badge, you gotta use a single forum and categories to separate stuff.

5 curtidas

Então, qual é a melhor maneira de lidar com isso? Você configura um site central, principal, e incorpora links do Discourse em outros sites (de modo que suas postagens de conversação sejam essencialmente armazenadas/“hospedadas” em um site central)?

“Melhor” é relativo se você não declarar suas capacidades.

A opção mais fácil é exatamente o que foi dito na postagem acima da sua: use uma única instância.

Se você tiver as capacidades de engenharia, ou o equivalente em orçamento, poderá ter múltiplas instâncias compartilhando um único SSO, além de um aplicativo complementar que consulta todas as instâncias Discourse irmãs para obter dados e concede uma medalha aos usuários em cada instância por meio de chamadas de API.

3 curtidas

Então, essencialmente, um plugin de sincronização de perfil SSO. Existe algo assim por aí que você conheça? Alguém já está trabalhando em algo assim? Também estou interessado.

Li que logins alternativos, como o Facebook, são perdidos quando o SSO é usado. Isso ainda é verdade hoje? O Discourse central também não teria esses logins alternativos? Por que é assim?

Você pode ter um Discourse configurado como principal e outros configurados para usar o site principal como seu servidor SSO. Nesse caso, o Discourse principal pode usar logins sociais, mas aqueles que o utilizam como servidor SSO redirecionariam todos os seus logins para o servidor principal.

Se você usar SSO, essa será a única método de autenticação disponível. Se deseja delegar de forma otimizada a outro servidor, é necessário usar OAuth2.

1 curtida

O que acontece quando um usuário de um Discourse escravo tenta fazer login? Eles são redirecionados para a criação de conta no Discourse mestre, que inclui qualquer login em rede social que eu desejar, e depois redirecionados de volta ao Discourse escravo, onde são solicitados a fazer login com quais credenciais se usaram um login em rede social, como o Facebook, após a criação bem-sucedida da conta? Desculpe pela pergunta longa, posso tentar reformular se não fizer sentido… Basicamente, em uma rede Discourse que depende de um Discourse mestre e onde o mestre permite logins em redes sociais, os Discourses escravos estão usando autenticação local armazenada no mestre ou ainda estão usando, por exemplo, autenticação do Facebook? Parece que isso poderia confundir gerenciadores de senhas locais.

tldr; quero que meu mestre e os escravos permitam logins em redes sociais.

O cliente redireciona para o discurso primário. Ele realiza a autenticação. É lá que os usuários fazem login. Pode usar redes sociais.

Os sites de discurso do cliente não sabem se o usuário usou redes sociais ao fazer login (pelo menos eu não acho que saibam).

2 curtidas

Então, quando um convidado faz login no slave, ele é redirecionado para o master, onde faz login com rede social e, em seguida, é redirecionado de volta para o slave já logado?

1 curtida