Memberstack + Webflow + Discourse OpenID Connect

Ciao, ho visto alcuni post precedenti su questo argomento, ma nulla di recente. Ho posto questa domanda anche nel forum di Memberstack…

Sto lavorando a un progetto per costruire una nuova community privata/chiusa e sono interessato a utilizzare Memberstack + Webflow e SSO per Discourse come piattaforma della community. Ho l’impressione che ora sia supportato con l’integrazione SSO personalizzata. Ho bisogno in particolare di assicurarmi di poter autenticare gli utenti nelle pagine Webflow e quindi navigare senza interruzioni verso il sito della community di Discourse. Ho visto commenti che suggeriscono che sia possibile e ho consultato la documentazione SSO di Memberstack, ma sto cercando informazioni più specifiche relative all’integrazione con Discourse. Qualcuno sta utilizzando una configurazione simile utilizzando Memberstack per gestire l’SSO per Discourse? Ho bisogno di testarlo il prima possibile. Grazie.

3 Mi Piace

Sì, ora è supportato! Memberstack ti consente ora di utilizzare Memberstack come provider OpenID Connect: https://docs.memberstack.com/hc/en-us/articles/8161104982043-Custom-SSO-Integrations. Ciò consentirà agli utenti di accedere al tuo sito Discourse tramite Memberstack. Se configuri il tuo sito Discourse in modo che OpenID Connect sia l’unica opzione di accesso disponibile sul sito, l’accesso a Discourse dalle tue pagine Webflow sarà un processo senza interruzioni per i tuoi utenti. (Nota: non rimuovere l’opzione di accesso al tuo sito Discourse con nome utente/password finché non avrai confermato che gli accessi tramite OpenID Connect funzionano.)

Affinché ciò funzioni, dovrai avere installato il plugin Discourse OpenID Connect sul tuo sito Discourse. I dettagli sulla configurazione di quel plugin sono qui: Discourse OpenID Connect (OIDC).

Ti consiglio di guardare il video nella documentazione di Memberstack che ho collegato prima di tentare di configurare gli accessi OpenID Connect per il tuo sito Discourse. Ti guida attraverso il processo di configurazione degli accessi OpenID Connect di Memberstack per funzionare con il sito di test su https://openidconnect.net/. Dopo averlo fatto, la configurazione dell’autenticazione OpenID Connect per Discourse dovrebbe essere un processo semplice.

Se ci sono siti Discourse esistenti che hanno configurato l’autenticazione OpenID Connect con Memberstack, sarebbe fantastico sentirlo da loro.

5 Mi Piace

@simon Grazie mille per il tuo contributo e per aver confermato che dovrebbe funzionare! Speravo di ottenere questo tipo di validazione prima di andare troppo avanti con Webflow. Sto usando questo per gestire un programma pilota e voglio testare Memberstack + Webflow + Discourse durante il pilota. Quindi questo serve solo a dimostrare l’MVP ed è molto probabile che a lungo termine passerò a qualcosa di molto diverso (tranne Discourse… quello lo terrò sicuramente!).

Dato che il supporto OpenID di Memberstack è piuttosto nuovo, sarei felice di sapere se c’è qualcuno qui che sta effettivamente utilizzando questo tipo di configurazione in produzione.

2 Mi Piace

Ciao! Sei riuscito a implementare una soluzione funzionante per questo? OpenID richiede un account aziendale su Discourse che costa $300/mese! Speravo di poter utilizzare DiscourseConnect SSO per ottenere ciò che hai menzionato con Webflow e Memberstack!

Per quanto ne so, è stata implementata una soluzione funzionante con OpenID Connect.

Non credo che Webflow ti permetta di aggiungere codice lato server al tuo sito. Se è corretto, non sarà possibile utilizzare DiscourseConnect con Webflow.

@JammyDodger, questo argomento potrebbe essere rinominato in “Memberstack + Webflow + Discourse OpenID Connect”.

1 Mi Piace

Ciao a tutti! Sono riuscito a far funzionare l’SSO per Discourse tramite il mio accesso Memberstack! Una volta effettuato l’accesso tramite OpenID al mio forum Discourse, compare un pop-up per “creare il mio account” sul forum. È così che dovrebbe succedere o dovrei essere loggato direttamente? Ho incluso uno screenshot del pop-up che ricevo dopo aver effettuato l’accesso con le mie informazioni Memberstack. Grazie in anticipo!

Fantastico!

Dallo screenshot, non sembra che il tuo indirizzo email venga compilato nel modulo di accesso. È passato un po’ di tempo da quando ho guardato il video di Memberstack (https://docs.memberstack.com/hc/en-us/articles/8161104982043-Custom-SSO-Integrations), ma penso che l’impostazione del sito Discourse openid_connect_authorize_scope debba essere impostata su openid email profile in modo che sia l’indirizzo email che il nome utente siano inclusi nel payload inviato a Discourse.

Non ho le cose impostate per testarlo in questo momento, ma potrebbe essere necessario abilitare queste impostazioni per saltare il popup di creazione dell’account (altrimenti, i campi verranno comunque compilati, ma gli utenti dovranno fare clic sul pulsante “Crea il tuo account”):

  • auth skip create confirm (deve assolutamente essere abilitato per saltare il popup di creazione dell’account)
  • auth overrides email
  • auth overrides username
  • auth overrides name

Il modo più semplice per testarlo è se hai un account non amministratore sul tuo sito Webflow. In questo modo, puoi provare ad accedere come quell’utente più volte e semplicemente eliminare il loro account su Discourse se non funziona come previsto.

Grazie MILLE Simon! Aggiungere quegli elementi aggiuntivi in “openid_connect_authorize_scope” l’ha risolto e abilitare “auth skip create confirm” salta il popup e va direttamente alla homepage del forum! Ho abilitato “openid connect overrides email” - cosa fa questo?

E c’è un modo per impostare il pulsante “Registrati” su Discourse in modo che navighi verso una pagina di registrazione personalizzata che ho sul mio sito web? Attualmente fare clic su “Registrati” mi autentica tramite OpenID, ma vorrei che collegasse a una pagina specifica sul mio sito web.

Grazie per tutto il tuo aiuto, è stato prezioso!

Giusto, per OpenID Connect, l’impostazione si chiama openid connect overrides email, non auth overrides email. Quando è abilitata, ogni volta che un utente accede a Discourse tramite OpenID Connect, la sua email di Discourse verrà impostata sul valore dell’indirizzo email che utilizza sul sito del provider di autenticazione OpenID Connect. Ciò significa che se un utente ha modificato il proprio indirizzo email su Discourse, questo verrà automaticamente reimpostato sul valore dell’indirizzo email che utilizza su Memberstack.

Puoi effettivamente disabilitare l’impostazione del sito email editable per evitare problemi di sincronizzazione delle email con il provider di autenticazione. Quindi, se disabiliti email editable e abiliti openid connect overrides email, gli utenti potranno modificare il proprio indirizzo email solo modificandolo su Memberstack, quindi accedendo a Discourse tramite Memberstack.

Non credo. Dopo che qualcuno clicca sul pulsante “Iscriviti” su Discourse, Discourse lo reindirizzerà all’authorization_endpoint fornito da Memberstack. È possibile che Memberstack consenta di configurare questo aspetto, ma dovresti contattarli per scoprirlo.

Un altro possibile approccio è che potrebbe essere possibile aggiungere un link alla pagina personalizzata nell’intestazione di Discourse. Magari con questo componente del tema: Custom Header Links. Idealmente, potresti nascondere il link agli utenti connessi con un po’ di CSS.

Grazie Simon! Ho abilitato le sovrascritture openid dell’email e disabilitato la modifica dell’email, ti ringrazio per avermi guidato!

Questa è una buona idea riguardo al pulsante di iscrizione, ci darò un’occhiata!

1 Mi Piace

@ryanshah112 Sono riuscito a farlo funzionare come POC (con l’aiuto di @simon) ma ho deciso di non utilizzare la configurazione MS e ora ho messo in pausa il progetto per alcuni mesi. Devo riprenderlo. Ho scoperto che l’integrazione MS openID non funzionava molto bene. Per prima cosa, c’è il problema del doppio login che ha reso il flusso di onboarding meno che ideale: non chiede solo l’autorizzazione dell’app, ma fa accedere l’utente. Volevo impostare un flusso di onboarding personalizzato in cui l’utente accedesse al sito webflow e fosse in grado di navigare su Discourse in modo fluido. Ci sono riuscito utilizzando moduli, zapier, airtable creando un utente discourse tramite API. Era piuttosto interessante come POC ma non era qualcosa che volevo fare come sistema di produzione. Quando ricomincerò, probabilmente non mi affiderò a MS come IDP, ma piuttosto lo costruirò utilizzando qualcosa come Wized con Supabase o qualcosa di simile. Penso che la cosa MS + Discourse funzionerebbe bene se ti accontenti di alcune limitazioni.

1 Mi Piace

Puoi dirmi quale sarà l’URL di connessione del discorso? Ci sono l’endpoint del token di autorizzazione, l’endpoint del token e l’endpoint delle chiavi del token.

Ciao River, se non sei sicuro di OpenID Connect, ti suggerisco di guardare il video OpenID Connect di Memberstack e di seguire il tutorial: https://docs.memberstack.com/hc/en-us/articles/8161104982043-Custom-SSO-Integrations. È quello che ho fatto.

Per configurare OpenID Connect sul lato Discourse, puoi trovare le informazioni pertinenti qui: Discourse OpenID Connect (OIDC). Un dettaglio specifico di Memberstack che non è menzionato in quell’argomento è che penso che l’impostazione del sito openid_connect_authorize_scope di Discourse debba essere impostata su:

  • openid email profile

(Supponendo che sia corretto, dovrebbe essere aggiunto alla sezione “Note specifiche del provider” in fondo all’argomento Discourse OpenID Connect.)

Questa è una causa di infinita confusione qui, ma DiscourseConnect si riferisce a un protocollo di autenticazione completamente separato. Le informazioni di cui hai bisogno si trovano nell’argomento Discourse OpenID connect che ho collegato.

Ciao Simon,
Grazie per avermi chiarito le cose. Esiste un metodo per collegare Memberstack con DiscourseConnect?

Sono quasi certo che non sia possibile utilizzare DiscourseConnect con Memberstack. Per funzionare, sarebbe necessario poter aggiungere del codice lato server al tuo sito Memberstack. Non credo che ciò sia possibile.

Potrebbe valere la pena chiedere a Memberstack. Potrebbero implementare DiscourseConnect per tutti i loro siti in modo simile a quanto fatto da Memberful: Integrate Discourse with Memberful - Memberful. Sono disponibile per lavori di consulenza se avessero bisogno di aiuto in merito :slight_smile:

Ciao River! Concordo con Simon sul fatto che non sia possibile utilizzare DiscourseConnect e che dovrai invece utilizzare OpenID. Se hai bisogno di aiuto per configurare Memberstack x Discourse tramite OpenID, sarò felice di aiutarti, dato che ci sono riuscito con l’assistenza di Simon! Avrai bisogno del piano “Business” se utilizzi l’hosting di Discourse.

@ryanshah112 e @river - Per tua informazione - quando ho iniziato questa discussione avevo il requisito fondamentale di utilizzare Webflow. Memberstack era davvero l’unica opzione praticabile per SSO tramite OpenID e non l’ho più guardato per circa 6 mesi, quindi alcune cose potrebbero essere migliorate lì. Ma se sei disposto a considerare Wordpress ci sono molti vantaggi con DiscourseConnect.

Ryan - Ho iniziato con il piano Business per testarlo, ma sono passato all’auto-ospitato dopo un paio di mesi perché in realtà non avevo bisogno di pacchetti / funzionalità di livello “business” per il mio POC oltre a OpenID. A seconda di ciò di cui hai bisogno, potresti volerlo considerare e consiglio @pfaffman se hai bisogno di aiuto per configurarlo. Super facile.

2 Mi Piace