Pagina di accesso SSO non visualizzata

Ho seguito la discussione SSO Ufficiale, ma non riesco a far apparire la pagina di login universale.

Quando ho abilitato solo l’oAuth, ha funzionato. Ho effettuato l’accesso usando il pulsante “con Auth0” senza problemi. Quando ho abilitato l’SSO, sono stato reindirizzato alla pagina di Auth0, ma mi viene restituita una pagina di errore con il messaggio " invalid_request : Parametro non valido: client_id deve essere una stringa". Il mio primo pensiero è che stia inserendo l’URL “sso_url” sbagliato. Onestamente non ho idea di cosa dovrebbe esserci lì, quindi ho inserito “https://.auth0.com/authorize”.

Qualcuno ha riscontrato un problema del genere o ha qualche idea?

L’sso url deve essere impostato sull’URL che hai configurato sul sito del tuo provider SSO per gestire la richiesta SSO di Discourse.

L’implementazione di SSO di Discourse non utilizza OAuth. È possibile che questo sia la causa della confusione.

Quale linguaggio o framework utilizza il sito del tuo provider SSO? È possibile che esista già un’implementazione di SSO per esso che puoi utilizzare.

Il mio provider SSO è Auth0.com. Ho seguito questo argomento per configurare OAuth2 e poi ho provato ad aggiungere SSO.

Forse devo approfondire meglio la parte di Auth0, perché ho impostato solo un’applicazione e un dominio (tenant); non ho visto nulla riguardo a SSO.

Ha senso. Auth0 e il SSO di Discourse sono sistemi completamente separati. Non puoi abilitarli entrambi sul tuo sito. Sembra che tutto ciò che devi fare sia assicurarti che Auth0 sia configurato correttamente sul tuo sito.

In quanto nuovo utente nella configurazione di Discourse, condivido la tua confusione riguardo alla funzione SSO. Esiste un argomento a riguardo, ma non ha ancora chiarito bene le differenze, specialmente perché alcune impostazioni SSO sono pensate per usare Discourse come provider SSO (un po’ come vorresti usare Auth0).

Per utilizzare un provider di identità esterno per la funzione SSO, hai bisogno di un servizio intermediario, come discourse-sso-oidc-bridge. Oggi sono riuscito a farlo funzionare con Keycloak invece di Auth0; dovrebbe essere più o meno lo stesso.

Se vuoi semplicemente usare Auth0 come i login social (Google/Facebook/Github), probabilmente dovresti usare il plugin discourse-openid-connect. Dovrai installarlo e utilizzare le impostazioni che fornisce; l’ho provato con Keycloak prima della funzione SSO separata. Non richiede il ponte intermedio e potrebbe darti ciò che desideri (purché non desideri che i dettagli su Discourse vengano aggiornati/sincronizzati quando un utente effettua nuovamente il login, che è l’unico momento in cui Discourse sincronizza i dettagli dell’account).

Gli utenti verranno invitati a creare un account, ma tutti i campi del modulo saranno compilati automaticamente dal tuo provider di autenticazione. Un futuro aggiornamento del plugin intende saltare questo passaggio e creare direttamente l’account (a condizione che sia l’unica opzione di login), proprio come fa la funzione SSO esistente.