Problema com SSO do fórum Discourse em iframe

Olá, quero incorporar o fórum dentro de um site usando iframe.

O fórum fará login via SSO. O iframe funciona corretamente, mas o processo de SSO não consegue definir o cookie de login porque o atributo ‘samesite lax’ está configurado no lado do Discourse. Alguém também enfrentou esse problema? Ou alguém conseguiu incorporar seu fórum em um site e conectá-lo via SSO?

Obrigado antecipadamente.

Só avisando que o Discourse não funciona bem (se é que funciona) dentro de um iframe. Então você já está pedindo problemas :wink:

Obrigado pela resposta super rápida :slight_smile:

image

Hmm, ok, bem, encontrei uma configuração na seção de configurações do Discourse. Isso permite que o fórum seja incorporado via iframe em outro site. Essa configuração funciona (se você já estiver logado e tiver o cookie).

A única coisa que não funciona é o processo de SSO. Nosso processo de SSO funciona bem e corretamente ao abrir o fórum em uma nova aba. Mas o iframe quebra esse processo porque o cookie com o token de acesso não pode ser definido devido a um domínio diferente. Isso leva a um loop infinito dentro do iframe, pois o Discourse não consegue encontrar esse cookie e inicia o processo de SSO novamente.

Como isso é muito importante para nós, não há nenhuma opção para incorporar o fórum via iframe enquanto se usa autenticação SSO?

A configuração é bastante experimental e não é realmente suportada em um ambiente SSO. O redirecionamento de volta exigiria um trabalho complexo para passar todas as informações de volta para o quadro.

Recomendo fortemente que você opte por um cabeçalho e rodapé personalizados; é muito fácil configurá-los para que pareçam o site principal.

Obrigado pela sua resposta.

Vamos tentar usar um cabeçalho e rodapé personalizados.
Existem planos para o futuro próximo de fazer o discourseSSO funcionar dentro de um iframe? Essa funcionalidade seria muito útil para quem deseja incluir um fórum em seu site sem precisar implementar todas as APIs do Discourse.

O que um iframe tem a ver com APIs?

Prezado Stephan,

Já utilizamos o fórum com SSO dentro de um WebView em um aplicativo. Agora queremos integrar o fórum em um novo site que estamos construindo. Acredito que temos duas opções para isso:

Opção 1: Implementar várias APIs (por exemplo, para recuperar posts, categorias e publicar no Discourse).

Opção 2: Incorporar o fórum em nosso site usando iframe, em combinação com SSO (solução mais econômica e que nos permite avaliar se o fórum será um sucesso antes de investir mais nele).

Portanto, para responder à sua pergunta: a opção de iframe não tem relação com as APIs.

Existem planos para fazer o Discourse SSO funcionar em um iframe no futuro próximo?

O protocolo SSO redireciona para o seu site; então você realiza a autenticação e redireciona de volta para o nosso site.

Se alguém configurar um IFRAME aqui, o redirecionamento que você realizar após autenticar o usuário teria que ir para o seu site, que então precisaria fazer algum tipo de “mágica” para passar as informações de volta para o IFRAME.

Isso é tecnicamente complexo e muito difícil de fazer corretamente. Por outro lado, a opção de rodapé e cabeçalho personalizados é tecnicamente muito mais simples de implementar, muito menos propensa a erros e, como bônus adicional, mais rápida, pois você não é obrigado a fazer duas solicitações separadas para montar uma página.