Discourse com SSO do Nextcloud

Não consegui encontrar um guia para isso. Mas o que eu gostaria de fazer é “integrar” o Discourse como um “aplicativo” dentro do ambiente colaborativo de código aberto Nextcloud. Acredito que isso seja feito abrindo o Discourse — de certa forma, como um iframe — como um “site externo” no Nextcloud. Estas são as minhas etapas:

  1. Note que existe algum tipo de “aplicativo de integração” para usar SSO entre Nextcloud/Discourse:
    Discourse SSO - Apps - App Store - Nextcloud

  2. No Nextcloud, vá em + Aplicativos → Integração → Discourse SSO. Instale-o e ative-o.

  3. Vá para minhas configurações e insira minhas informações de SSO:

  4. Vou ao meu site do fórum Discourse (que está em sueco, desculpe) e vou para minhas configurações de administrador:


    E role para baixo para preencher esses 3 campos:

  5. Faço logout tanto do Discourse quanto do Nextcloud. Faço login no Nextcloud (usando o mesmo e-mail no Nextcloud e no Discourse), mas não consigo abrir com sucesso o “site externo” para revelar meu fórum Discourse.

Por que o Firefox interpreta meu fórum como estando incorporado?

Tem certeza de que está usando o endpoint correto para SSO?

O segundo passo seria verificar se o CSP está causando esse comportamento (não tenho certeza de como ou por que isso ocorre).

Tentei desativar o SSO, mas o subdomínio onde meu fórum está localizado ainda não pode ser aberto dentro do Nextcloud. No entanto, meu domínio regular abre.
Por CSP, você se refere ao Provedor de Serviços em Nuvem onde meu Discourse está hospedado?

Da Nextcloud

Seus links podem ou não funcionar corretamente devido às diversas formas como navegadores web e sites lidam com URLs HTTP e HTTPS, e porque o aplicativo Sites Externos incorpora links externos em IFrames.

O Discourse não funciona em uma tag <iframe> e seu servidor Discourse recusará a conexão.

Obrigado! Mas então, por que existe um aplicativo de “integração SSO” se a integração é impossível? Existe alguma solução alternativa para permitir que o Discourse seja incorporado como um iframe?

Edição: Criei um post no fórum Nextcloud agora. Vou dar um retorno se conseguir alguma clareza por lá.

Ok, então um usuário no fórum da Nextcloud apenas confirma que o Discourse parece ser o problema, já que não funciona em iframe. Uma rápida busca no Google me levou a este projeto do GitHub de 4 anos atrás:

Depois de editar o app.yml para incluir esse plugin, o que faço a seguir? Preciso reconstruir o Discourse para instalá-lo completamente?

Sim, será necessária uma recompilação para instalar qualquer plugin.

Apenas como aviso: um plugin que não é mantido há mais de 4 anos tem grande chance de quebrar.

Você pode enviar problemas e solicitações de recursos no GitHub do projeto. Observe que ele ainda não foi atualizado para a versão 20. Clique para detalhes.

Obrigado pela dica! Você não usou esse aplicativo, usou?

Para os registros: instalei o plugin “allowifram” e meu Discourse realmente travou. :stuck_out_tongue:

Para quem se interessa, perguntei ao desenvolvedor se havia havido uma tentativa de integrar o Discourse ao Nextcloud: Amend so that Discourse can be opened within Nextcloud? · Issue #18 · habi-dat/discoursesso · GitHub
O desenvolvedor disse que não, mas que ele/ela contornou o problema do iframe com o seguinte plugin: GitHub - soudis/discourse-allow-same-origin · GitHub
Ainda não o testei pessoalmente.

Desculpe a resposta tardia, mas tenho explorado opções de integração entre Nextcloud e Discourse recentemente. Provavelmente você já descobriu tudo isso, mas gostaria de comparar experiências. Você ainda usa Discourse e Nextcloud juntos? Se sim, pode compartilhar mais informações sobre o que está tentando alcançar e como está funcionando? Agradeço desde já!

Sim, como você aprendeu, o Discourse não gosta de ser carregado em um iframe. Isso sempre foi assim. A solução alternativa é usar o próprio sistema de temas flexível do Discourse para adicionar um cabeçalho que combine com seu site principal. Você também pode usar o sistema de temas do Nextcloud para atualizá-lo conforme desejar. Nas configurações de administração de sites externos do Nextcloud, selecione a opção redirect, o que significa que o site não permite incorporação. O link para o Discourse será então aberto na mesma aba do navegador, sem o iframe.

Screen Shot 2021-05-05 at 3.58.30 PM

O app Nextcloud discoursesso ao qual você se refere trata apenas de permitir que as pessoas se autentiquem em seu site Discourse por meio do Nextcloud. Parece que você está configurando corretamente. Basta acessar o URL do seu Discourse e tentar fazer login; você verá que está logado usando suas credenciais do Nextcloud.

Observe que, no Discourse, o Discourse SSO foi renomeado para Discourse Connect. Habilitá-lo substituirá totalmente qualquer outra opção de login no seu Discourse, então você deve usá-lo com cuidado.

Teve alguma sorte com esse plugin? :eyes:

Instalei o plugin, mas ainda recebo a mensagem “Falha ao obter notificações do Discourse”.