¿Es posible crear un plugin de Iniciar sesión con Ghost para Discourse?

Hace un año y medio se anunció la integración de Discourse con Ghost, que permite a los miembros de Ghost acceder sin problemas al foro del sitio con los mismos permisos que tienen en la publicación. Una “desventaja” de la integración es que requiere la instalación en un VPS, una tarea que muchos usuarios de Ghost y/o Discourse pueden encontrar un poco desalentadora (como se ha discutido en el foro de Ghost en los últimos días).

Aquí, en el foro de Discourse, se afirmó hace unos días lo siguiente sobre la integración de las dos plataformas:

Si bien esto sería genial, otra opción podría ser la creación de una versión “lista para usar” que se pudiera configurar con Cloudflare Workers. Si bien esto eliminaría parte de la fricción para los neófitos, una opción aún mejor podría ser la creación de un plugin de Discourse, suponiendo que tal cosa sea posible. Visto que ya existe un plugin de Iniciar sesión con Apple, ¿podría esto sugerir que un plugin de Iniciar sesión con Ghost también podría ser técnicamente posible?

5 Me gusta

Es factible, sí. ¿Hay alguna documentación en algún lugar para configurar Ghost como un proveedor de identidad? Si es así y si oAuth es compatible, probablemente puedas usar herramientas existentes para configurarlo sin necesidad de un plugin dedicado.

4 Me gusta

Me han dicho: “No, Ghost no está diseñado exactamente como un IDP”. Siendo así, ¿permiten los plugins añadir nuevos endpoints, haciendo posible esa ruta?

Editar:

¿Pueden los grupos ser definidos por el plugin para que (suponiendo que Ghost enviará webhooks) cuando la suscripción de un usuario cambie, los grupos puedan sincronizarse?

2 Me gusta

Entonces, la integración actual de Discourse en Ghost solo necesitaría la funcionalidad D-o-G para ser autoalojada y no necesariamente Ghost. Dado que esa integración utiliza DiscourseConnect, funcionará bien con cualquier instalación de Discourse lista para usar, independientemente de cómo se aloje.

Lo que requeriría autoalojar Discourse. Entonces, ¿qué problema resolvería? La carga se trasladaría de autoalojar un complemento de Ghost relativamente simple a autoalojar Discourse.

4 Me gusta

Maldición, de acuerdo, no me había dado cuenta de que los complementos no oficiales y personalizados solo estaban disponibles para los planes Enterprise. Entiendo lo que quieres decir entonces cuando dices que “La carga se trasladaría de autoalojar un complemento de Ghost relativamente simple a autoalojar Discourse”. El problema es que, si bien autoalojar el “complemento simple” puede ser demasiado problemático para los que tienen dificultades tecnológicas, algunos pueden querer la seguridad de que nada está en sus manos y que todas las operaciones son seguras en manos de los más competentes.

Dado todo eso, @pmusaraj, viendo que los complementos personalizados solo están disponibles para los planes Enterprise, ¿es efectivamente el caso de que, en cuanto a complementos, las únicas opciones son los “extremos”: autoalojamiento o Enterprise? Entiendo perfectamente por qué los complementos personalizados no estarían disponibles para los planes Starter, ya que Discourse necesita ganar algo de dinero para mantenerse, pero ¿podría haber un camino intermedio aquí? O, alternativamente, ¿podría haber todavía alguna otra ruta además de un complemento o “configurar Ghost como proveedor de identidad” que no se haya abordado?

2 Me gusta

No estoy seguro de lo realista que es, pero la plataforma Ghost probablemente podría implementar DiscourseConnect para sus sitios alojados.

Otra opción es que se pudiera crear un plugin oficial de Discourse Ghost y añadirlo a los plugins que están disponibles en los sitios alojados de Discourse.

Cualquiera de los dos casos probablemente dependería de que haya una cantidad considerable de demanda de integración entre Discourse y Ghost.

1 me gusta

Si tan solo hubiera una empresa ejem que ofreciera plugins oficiales y no oficiales en planes alojados asequibles :wink:

Pero en serio, creo que tal solución debería estar ampliamente disponible y no depender de un servicio específico.

Parece que D-o-G utiliza la integración JWT hacia Ghost. Existe un plugin JWT para Discourse (¿oficial pero solo en el plan enterprise?). Esa podría ser una dirección que valga la pena investigar.

2 Me gusta

No estoy lo suficientemente familiarizado con Ghost como para aconsejar adecuadamente aquí, pero puedo decir esto:

  • Nuestro enfoque recomendado es utilizar los estándares existentes para la autenticación, porque, bueno, la seguridad es clave cuando se trata de cuentas e inicios de sesión. Por ejemplo, GitHub - discourse/discourse-oauth2-basic: A basic OAuth2 plugin for use with Discourse o Discourse OpenID Connect (OIDC), disponible en el nivel empresarial de nuestro alojamiento oficial. O SAML, para los inclinados a la empresa.
  • Dados estos complementos anteriores, no creo que un complemento de autenticación específico de Ghost para Discourse esté justificado. Ghost necesitaría admitir uno de estos estándares y, una vez que lo hagan, no necesitará un complemento específico de Ghost. Estamos abiertos a colaborar aquí, pero mi instinto me dice que Ghost tendría que hacer el trabajo pesado de agregar algunas funciones de IDP a su oferta.
  • La ruta JWT también es una opción, como señaló @RGJ, el complemento existe y probablemente se pueda configurar para hacer lo mismo que el intermediario D-o-G. Sin embargo, es un estándar un poco obsoleto y generalmente recomendamos OAuth, OpenID, SAML o DiscourseConnect.
4 Me gusta

Hola, soy nuevo aquí y he estado leyendo todos los hilos sobre la integración SSO de Ghost-Discourse. Estoy en el plan alojado Ghost(Pro) y deseo configurar una instancia de Discourse alojada con SSO, con Ghost como la fuente de verdad para la autenticación de usuarios. ¿Entiendo correctamente que, actualmente, mi única opción es auto-alojar la aplicación intermediaria SSO y ponerla en funcionamiento yo mismo?

Tu primer paso debería ser preguntar a Ghost si admiten ser un proveedor de identidad a través de OAuth. No puedo saberlo con certeza por una búsqueda rápida en su foro si eso es compatible o no, encontré esta publicación de abril de 2024 que menciona OAuth, pero no estoy seguro si es para que Ghost actúe como proveedor de inicio de sesión (puede ser para que Ghost use otra cosa como proveedor de inicio de sesión).

2 Me gusta

Ese fue mi primer movimiento. El soporte de Ghost registró mi solicitud de funciones, pero básicamente dijo que no sucederá pronto, si es que alguna vez sucede. En lugar de contener la respiración, contraté a un ingeniero para instalar DoG en una instancia. Está funcionando perfectamente, así que puedo dar fe de que es una solución efectiva. No entiendo la intransigencia del soporte de Ghost en este asunto.

1 me gusta