Discurso con SSO desde Nextcloud

No pude encontrar una guía para esto. Pero lo que me gustaría hacer es “integrar” Discourse como una “aplicación” dentro del entorno colaborativo de código abierto Nextcloud. Creo que esto se logra abriendo Discourse —algo así como un iframe— como un “sitio externo” en Nextcloud. Estos son mis pasos:

  1. Noté que existe algún tipo de “aplicación de integración” para usar SSO entre Nextcloud y Discourse:
    Discourse SSO - Apps - App Store - Nextcloud

  2. En Nextcloud, ve a + Aplicaciones → Integración → Discourse SSO. Instala esto y actívalo.

  3. Ve a mi configuración e ingresa mi información de SSO:

  4. Voy a mi sitio del foro de Discourse (que está en sueco, lo siento) y entro a mis configuraciones de administrador:


    Y hago scroll hacia abajo para completar estos 3 campos:

  5. Cierro sesión tanto en Discourse como en Nextcloud. Ingreso a Nextcloud (usando el mismo correo electrónico tanto en Nextcloud como en Discourse), pero no puedo abrir con éxito el “sitio externo” para mostrar mi foro de Discourse.

¿Por qué Firefox interpreta que mi foro está incrustado?

¿Estás seguro de que estás utilizando el endpoint correcto para SSO?

Lo segundo sería verificar si CSP está causando este comportamiento (no estoy seguro de cómo o por qué).

He intentado desactivar el SSO, pero el subdominio donde está ubicado mi foro sigue sin poder abrirse dentro de Nextcloud. Sin embargo, mi dominio regular sí se abre.
¿Te refieres con CSP al proveedor de servicios en la nube donde está alojado mi Discourse?

De Nextcloud

Es posible que tus enlaces funcionen o no correctamente debido a las diversas formas en que los navegadores web y los sitios web manejan las URLs HTTP y HTTPS, y porque la aplicación Sitios externos incrusta enlaces externos en IFrames.

Discourse no funciona dentro de una etiqueta <iframe> y tu servidor de Discourse rechazará la conexión.

3 Me gusta

¡Gracias! Pero, ¿entonces por qué existe una aplicación de “integración SSO” si la integración es imposible? ¿Hay alguna solución alternativa para permitir que Discourse se incruste como un iframe?

Edición: He creado una publicación en el foro de Nextcloud ahora. Informaré si obtengo alguna claridad de allí.

Bueno, un usuario en el foro de Nextcloud simplemente confirma que Discourse parece ser el problema, ya que no funciona en un iframe. Una búsqueda rápida en Google me llevó a este proyecto de GitHub de hace 4 años:

Después de editar app.yml para tener en cuenta este plugin, ¿qué hago a continuación? ¿Necesito reconstruir Discourse para instalarlo completamente?

Sí, se requerirá una reconstrucción para instalar cualquier complemento.

Solo como aviso, un complemento que no se mantiene desde hace más de 4 años tiene muchas probabilidades de dejar de funcionar.

2 Me gusta

Puedes enviar incidencias y solicitudes de funciones en el GitHub del proyecto. Ten en cuenta que aún no ha sido actualizado para la versión 20. Haz clic para obtener más detalles.

1 me gusta

¡Gracias por el consejo! ¿No has usado esta aplicación tú mismo, verdad?

Para el registro: instalé el plugin “allowifram” y, de hecho, mi Discourse se bloqueó. :stuck_out_tongue:

Para cualquiera que esté interesado, pregunté al desarrollador si se había intentado integrar Discourse en Nextcloud: Amend so that Discourse can be opened within Nextcloud? · Issue #18 · habi-dat/discoursesso · GitHub
El desarrollador respondió que no, pero que había sorteado el problema del iframe con el siguiente plugin: GitHub - soudis/discourse-allow-same-origin · GitHub
Aún no lo he probado yo mismo.

2 Me gusta

Lo siento por la respuesta tardía, pero recientemente he estado explorando opciones de integración entre Nextcloud y Discourse. Probablemente ya hayas resuelto todo esto, pero me gustaría intercambiar impresiones. ¿Sigues usando Discourse y Nextcloud juntos? De ser así, ¿podrías compartir más información sobre lo que intentas lograr y cómo te está funcionando? ¡Se lo agradecería!

Sí, como ya has aprendido, Discourse no se carga bien en un iframe. Siempre ha sido así. La solución consiste en utilizar el propio sistema de temas de Discourse, que es muy flexible, para añadir una cabecera que coincida con tu sitio principal. También puedes utilizar el sistema de temas de Nextcloud para actualizarlo y que coincida, según lo consideres oportuno. En la configuración de administración de sitios externos de Nextcloud, selecciona la opción redirect (redirección), lo que significa que el sitio no permite la incrustación. El enlace a Discourse se abrirá entonces en la misma pestaña del navegador, sin el iframe.

Screen Shot 2021-05-05 at 3.58.30 PM

La aplicación Nextcloud discoursesso a la que te refieres solo permite que las personas se autenticen en tu sitio de Discourse a través de Nextcloud. Parece que lo estás configurando correctamente. Solo tienes que ir a la URL de tu Discourse e intentar iniciar sesión; verás que has iniciado sesión con tus credenciales de Nextcloud.

Ten en cuenta que en Discourse, Discourse SSO ha sido renombrado a Discourse Connect. Al activarlo, se reemplazarán completamente todas las demás opciones de inicio de sesión en tu Discourse, por lo que deberás utilizarlo con precaución.

3 Me gusta

¿Has tenido suerte con este plugin? :eyes:

He instalado el complemento, pero aún obtengo el mensaje “Error al obtener las notificaciones de Discourse”.