I’m considering the WP-Discourse plugin to integrate my WP site with Discourse, but would be interested in understanding a bit better what the benefits and costs are. What do you lose exactly when you turn on SSO in terms of discourse functionality, and what do you gain? How are the WP and Discourse accounts linked? For example, can the user profile info like picture, username, email address, “about me” and location be shared across both platforms?
Thanks for any guidance. I’d love to be directed also any good examples of the wp-discourse plugin in action, with and without SSO.
Questa è una domanda vecchia, ma dal 2015, quando è stata posta, ci sono stati alcuni cambiamenti. Una modifica notevole è che ora utilizziamo il termine DiscourseConnect invece di Discourse SSO. Questo perché il termine SSO può essere usato per riferirsi a diversi meccanismi di autenticazione (SAML, OAuth2, Auth0…). DiscourseConnect è l’implementazione di SSO da parte di Discourse.
Quando DiscourseConnect è abilitato, tutta l’autenticazione sul sito Discourse avverrà sul sito che hai impostato con la configurazione del sito discourse connect url. Ciò significa che gli utenti creeranno i loro account registrandosi sul tuo sito esterno invece che su Discourse. I dettagli dell’account verranno trasmessi a Discourse quando gli utenti accedono tramite DiscourseConnect. Quando gli utenti accedono per la prima volta a Discourse, i dettagli del loro account verranno impostati dai dati forniti nel payload SSO. A seconda dei valori di alcune impostazioni del sito Discourse, i dettagli dell’account continueranno a essere sincronizzati ogni volta che l’utente accede a Discourse, oppure gli utenti potranno impostare valori distinti per il proprio account su Discourse. Le impostazioni rilevanti per questo sono:
auth overrides email
auth overrides username
auth overrides name
discourse connect overrides bio
discourse connect overrides avatar
discourse connect overrides profile background
discourse connect overrides location
discourse connect overrides website
discourse connect overrides card background
discourse connect overrides groups
Tieni presente che, per impostazione predefinita, il plugin WP Discourse invia solo i seguenti campi nel payload:
username
email
name
bio
avatar_url
Parametri aggiuntivi possono essere aggiunti al payload collegandosi al filtro hook wpdc_sso_params del plugin WP Discourse.
Probabilmente la funzionalità più significativa persa attivando DiscourseConnect è che, una volta abilitato, diventa l’unico metodo di autenticazione per il sito. Ciò significa che non è possibile abilitare gli accessi social su Discourse insieme a DiscourseConnect. Puoi comunque abilitare gli accessi social sul sito del tuo provider di autenticazione. Ad esempio, potresti consentire agli utenti di accedere al tuo sito web tramite vari provider di accesso social e successivamente farli accedere a Discourse tramite DiscourseConnect. Un approccio simile può essere utilizzato con OAuth2 o SAML. Gli utenti possono accedere al tuo sito web con questi metodi di autenticazione e poi essere reindirizzati a Discourse per accedere tramite DiscourseConnect.
Un’altra funzionalità persa è che l’impostazione del sito Discourse invite only non può essere abilitata insieme a DiscourseConnect.
La possibilità di sincronizzare facilmente i dati degli utenti da un’applicazione esterna a Discourse è un grande vantaggio. Le appartenenze ai gruppi di Discourse possono essere impostate facilmente con i campi add_groups e remove_groups trasmessi nel payload SSO. Il plugin WP Discourse non invia per impostazione predefinita nessuno di questi campi, ma possono essere aggiunti al payload collegandosi al filtro hook wpdc_sso_params del plugin WP Discourse.
Un altro possibile vantaggio è che, se hai già una grande base di utenti su un sito esterno, abilitare DiscourseConnect consentirà a questi utenti di accedere a Discourse senza dover creare un account Discourse separato.
Con DiscourseConnect, gli account vengono collegati in base all’external_id trasmesso dal sito provider SSO a Discourse. Il plugin WP Discourse utilizza l’ID WordPress dell’utente per l’external_id.
Sì, per impostazione predefinita tutti questi campi vengono impostati con l’implementazione di DiscourseConnect di WP Discourse. Come notato sopra, se verranno o meno continuati a essere sincronizzati ogni volta che un utente accede a Discourse dipende dal valore di varie impostazioni del sito Discourse.