È possibile creare un plugin Sign in with Ghost per Discourse?

Un anno e mezzo fa è stata annunciata l’integrazione di Discourse su Ghost, che consente ai membri di Ghost di accedere senza problemi al forum del sito con le stesse autorizzazioni che hanno sulla pubblicazione. Un “svantaggio” dell’integrazione è che richiede l’installazione su un VPS, un’operazione che molti utenti di Ghost e/o Discourse potrebbero trovare un po’ troppo scoraggiante (come è stato discusso sul forum di Ghost negli ultimi giorni).

Qui sul forum di Discourse, pochi giorni fa è stato affermato quanto segue riguardo all’integrazione delle due piattaforme:

Sebbene ciò sarebbe fantastico, un’altra opzione potrebbe essere la creazione di una versione “pronta all’uso” che potrebbe essere configurata con Cloudflare Workers. Sebbene ciò rimuoverebbe parte dell’attrito per i neofiti, un’opzione ancora migliore potrebbe essere la creazione di un plugin Discourse, supponendo che una cosa del genere sia anche possibile. Vedendo che esiste già un plugin Accedi con Apple, ciò potrebbe suggerire che anche un plugin Accedi con Ghost potrebbe essere tecnicamente possibile?

5 Mi Piace

È fattibile, sì. Ci sono documentazione da qualche parte per configurare Ghost come provider di identità? Se sì e se oAuth è supportato, probabilmente puoi usare strumenti esistenti per impostarlo senza la necessità di un plugin dedicato.

4 Mi Piace

Mi è stato detto: “No, Ghost non è esattamente progettato per essere un IDP”. Detto questo, i plugin consentono di aggiungere nuovi endpoint, rendendo possibile quel percorso?

Modifica:
I gruppi possono essere definiti dal plugin in modo che (supponendo che Ghost invii webhook) quando l’abbonamento di un utente cambia, i gruppi possano essere sincronizzati?

2 Mi Piace

Quindi l’attuale integrazione Discourse-on-Ghost richiederebbe solo la funzionalità D-o-G per essere self-hosted e non necessariamente Ghost. Poiché tale integrazione utilizza DiscourseConnect, funzionerà bene con qualsiasi installazione di Discourse pronta all’uso, indipendentemente da come è ospitata.

Il che richiederebbe il self-hosting di Discourse. Quindi quale problema risolverebbe? L’onere si sposterebbe dal self-hosting di un componente aggiuntivo Ghost relativamente semplice, al self-hosting di Discourse.

4 Mi Piace

Accidenti, va bene, non mi ero reso conto che i plugin non ufficiali e personalizzati fossero disponibili solo per i piani Enterprise. Capisco cosa intendi allora quando dici che “L’onere si sposterebbe dall’auto-hosting di un componente aggiuntivo Ghost relativamente semplice, all’auto-hosting di Discourse”. Il problema è che, mentre l’auto-hosting del “semplice componente aggiuntivo” potrebbe essere troppo problematico per i meno esperti di tecnologia, alcuni potrebbero volere la rassicurazione che nulla è nelle loro mani e che tutte le operazioni sono al sicuro nelle mani dei più competenti.

Detto tutto ciò, @pmusaraj, visto che i plugin personalizzati sono disponibili solo per i piani Enterprise, è effettivamente il caso che, per quanto riguarda i plugin, le uniche opzioni siano agli “estremi”: o auto-hosting o Enterprise? Capisco perfettamente perché i plugin personalizzati non sarebbero disponibili per i piani Starter poiché Discourse ha bisogno di guadagnare per mantenersi, ma potrebbe esserci una via di mezzo? O in alternativa, potrebbe esserci ancora un’altra strada oltre a un plugin o alla “configurazione di Ghost come provider di identità” che non è stata affrontata?

2 Mi Piace

Non sono sicuro di quanto sia realistico, ma la piattaforma Ghost potrebbe probabilmente implementare DiscourseConnect per i loro siti ospitati.

Un’altra opzione è che potrebbe essere creato un plugin ufficiale Discourse Ghost e aggiunto ai plugin disponibili sui siti Discourse ospitati.

Entrambi i casi dipenderebbero probabilmente da una discreta quantità di domanda per l’integrazione Discourse/Ghost.

1 Mi Piace

Se solo ci fosse un’azienda ehm che offrisse plugin sia ufficiali che non ufficiali su piani ospitati convenienti :wink:

Ma seriamente, penso che una soluzione del genere dovrebbe essere ampiamente disponibile e non dipendere da un servizio specifico.

Sembra che D-o-G utilizzi l’integrazione JWT verso Ghost. Esiste un plugin JWT per Discourse (ufficiale ma solo sul piano enterprise?). Questa potrebbe essere una direzione degna di indagine.

2 Mi Piace

Non ho abbastanza familiarità con Ghost per fornire consigli adeguati, ma posso dire questo:

  • Il nostro approccio consigliato è utilizzare gli standard esistenti per l’autenticazione, perché, beh, la sicurezza è fondamentale quando si tratta di account e accessi. Ad esempio, GitHub - discourse/discourse-oauth2-basic: A basic OAuth2 plugin for use with Discourse o Discourse OpenID Connect (OIDC), disponibili nel piano business del nostro hosting ufficiale. Oppure SAML, per chi è orientato all’enterprise.
  • Dato i plugin sopra menzionati, non credo che sia giustificato un plugin di autenticazione specifico per Ghost per Discourse. Ghost dovrebbe supportare uno di questi standard e, una volta fatto, non avrai bisogno di un plugin specifico per Ghost. Siamo aperti a collaborare qui, ma la mia sensazione è che Ghost dovrebbe fare il grosso del lavoro aggiungendo alcune funzionalità IDP alla loro offerta.
  • Anche la strada del JWT è un’opzione, come ha notato @RGJ, il plugin esiste e probabilmente può essere configurato per fare la stessa cosa dell’intermediario D-o-G. È uno standard un po’ obsoleto, tuttavia, e generalmente raccomandiamo OAuth, OpenID, SAML o DiscourseConnect.
4 Mi Piace

Ciao, sono nuovo qui e ho letto tutti i thread sull’integrazione SSO Ghost-Discourse. Sono sul piano ospitato Ghost(Pro) e desidero configurare un’istanza Discourse ospitata con SSO, con Ghost come fonte di verità per l’autenticazione degli utenti. Ho capito bene che, attualmente, la mia unica opzione è ospitare autonomamente l’app middleware SSO e metterla in funzione da solo?

Il tuo primo passo dovrebbe essere chiedere a Ghost se supporta l’essere un provider di identità tramite oauth. Non riesco a capire bene da una rapida ricerca sul loro forum se ciò sia supportato o meno, ho trovato questo post di aprile 2024 che menziona oauth ma non sono sicuro se sia per Ghost per agire come provider di accesso (potrebbe essere per Ghost per utilizzare qualcos’altro come provider di accesso).

2 Mi Piace

Questa è stata la mia prima mossa. Il supporto di Ghost ha registrato la mia richiesta di funzionalità ma in sostanza ha detto che non accadrà presto, se mai accadrà. Invece di trattenere il respiro, ho assunto un ingegnere per installare DoG su un droplet. Funziona perfettamente, quindi posso garantire che si tratta di una soluzione efficace. Non capisco l’intransigenza del supporto di Ghost su questo problema.

1 Mi Piace