Has anyone succeeded in using discourse as sso provider for nextcloud? Share recipe?

Hi all - I am interested in setting up a few small community sites with discourse plus nextcloud for document and media content sharing. It would be loverly and preferable to have SSO with discourse as SSO provider. If anyone has succeeded in doing this and can share a recipe here on how to do it I’d appreciate it. Thanks! :seedling:

The communities I am looking at creating are for my own geographically dispersed family, my neighborhood, and my son’s school.

I might also be interested in setting up a nextcloud for the organization I work for that already has an active community website. Though my organization’s community uses discourse, it uses wordpress as SSO auth now. Down the pike I’m also interested in flipping that around so we can benefit from features reliant on discourse as SSO auth.

Edit: this seems to be the page - I will be exploring this today and will let others know what I come up with if anything. :slight_smile: Any guidance along the way much appreciated.

https://docs.nextcloud.com/server/11/admin_manual/configuration_server/sso_configuration.html

1 Mi Piace

i’ve quite the same usecases, where i want to use discourse as the SSO provider for nextcloud.

are there any updates on this?

2 Mi Piace

Not that I am aware of. Could you ask at the nextcloud community?

it’s not a perfect implementation, but it does its job for me:

https://github.com/paroga/user_discourse

6 Mi Piace

L’app Social login supporta Discourse a partire dalla versione 4.10.

3 Mi Piace

Bello! Vedo che discourse non è fornito come “provider oauth integrato” per l’app di accesso social in nextcloud. Ci sono vari modi per configurarlo usando discourse - come hai fatto? Ti dispiacerebbe fornire una ricetta?

Vedo anche che l’app ti permette di ereditare gruppi dal provider di autenticazione, il che è molto carino. Mi piacerebbe poter fare lo stesso con la mia configurazione discourse/nextcloud.

Ci sono anche altre app nextcloud che sembrano pertinenti qui ma non le ho testate tutte. C’è l’app OpenID Connect Login. Esiste anche un’app Discourse SSO, ma sembra essere obsoleta/non testata.

Come scritto nel mio post, hai bisogno della versione 4.10. Poi c’è un’opzione “Custom Discourse” nelle impostazioni di social login.

Ha solo il supporto OpenID Connect, che non è fornito da Discourse.

Quella è per l’altra direzione, se vuoi accedere a Discourse con il tuo account Nextcloud.

3 Mi Piace

Grazie, Patrick! Ho reinstallato l’app e ora vedo l’opzione “Custom Discourse”. Non è ancora spiegata nella documentazione, motivo per cui pensavo non fosse cambiato nulla. Anche nella pagina https://apps.nextcloud.com/apps/sociallogin c’è un link a un link interrotto sul forum di supporto di nextcloud, quindi sto lottando per capire dove parlare di questa app con gli sviluppatori.

Ora funziona, ma il problema più grande che sto riscontrando è che non riesco a capire come abilitare questo come unico metodo di accesso per tutti gli utenti esistenti per impostazione predefinita.

Il secondo problema più grande è che i dettagli dell’utente non vengono trasferiti correttamente da Discourse a Nextcloud. I nuovi utenti creati in Nextcloud ottengono un nome utente generato automaticamente nella forma [nome interno]-[id utente], quindi nel caso del mio sito, ad esempio, kb2-3797. Il nome viene trasferito, ma altri dettagli del profilo devono essere inseriti nuovamente in Nextcloud. Anche l’avatar non viene trasferito.

Mi chiedo anche come l’utente imposterà il proprio nome utente e password per il client desktop o mobile, quando questo è l’unico metodo di accesso per l’app web Nextcloud. Immagino che dovranno sapere di andare nelle preferenze del loro account nell’app web Nextcloud per impostare le credenziali di accesso Nextcloud.

Altre cose che ho notato:

  • le impostazioni dell’app non vengono raggiunte tramite la sezione app ma tramite la barra laterale delle impostazioni di amministrazione. Mi ci è voluto un minuto per trovarle. :slight_smile:
  • ci sono tre sezioni nelle impostazioni di amministrazione per l’app, e le sezioni superiore e inferiore hanno pulsanti di salvataggio ma quella centrale (per i provider personalizzati) no. Non è chiaro quale usare per salvare le impostazioni personalizzate di Discourse. Risposta: funzionano entrambi allo stesso modo.
  • ci sono molte impostazioni dell’app. queste sembrano funzionare al meglio per la mia configurazione:
    • disable auto create new users = consente la creazione di nuovi utenti in Nextcloud se esistono in Discourse
    • create users with disabled account = non disabilitare gli utenti appena creati
    • allow users to connect social logins with their account = consente agli utenti esistenti di scegliere di accedere tramite Discourse (:warning: non sono riuscito a capire come impostare di default l’accesso tramite Discourse)
    • update user profile every login = sincronizza i gruppi di Discourse con i gruppi di Nextcloud ogni volta che accedono. (:warning: non sincronizza correttamente nome utente, nome, bio e altre informazioni del profilo)
    • do not prune not available user groups on login (:warning: non so cosa faccia ma è abilitato per impostazione predefinita. Sospetto che impedisca la rimozione dell’utente dai gruppi Nextcloud esistenti se non sono mappati da Discourse?)
    • automatically create groups if they do not exist = disabilitato perchĂ© crea alcuni nomi di gruppo brutti che replicano i gruppi desiderati (vedi sotto)
    • restrict login for users without mapped groups = disabilitato
    • restict login for users without assigned groups = disabilitato
    • disable notify admins about new users = disabilitato perchĂ© mi è utile vedere quando vengono creati nuovi utenti Nextcloud
    • hide default login = incoraggia gli utenti ad accedere tramite Discourse, sebbene sia ancora possibile accedere direttamente con il nome utente/email e password di Nextcloud.
  • Ho perso immediatamente l’accesso admin la prima volta che ci ho provato, prima di creare le mappature dei gruppi. Per recuperarlo, ho dovuto andare sulla riga di comando ed eseguire occ group:adduser admin NOMEUTENTE
  • la mappatura dei gruppi funziona benissimo! La cosa piĂą importante è stata aggiungere la mappatura di admins → Nextcloud admin in modo che gli amministratori del mio forum abbiano i privilegi di amministratore in Nextcloud. Sono anche riuscito ad aggiungere mappature per i gruppi utilizzati per le categorie sicure, per dare accesso anche alle cartelle sicure in Nextcloud relative a quelle categorie sicure.

Sempre piĂą vicino!

1 Mi Piace

Suggerirei GitHub.

IMHO è il modo migliore per implementarlo, poiché l’id viene utilizzato principalmente internamente e non è visibile in molti posti ai normali utenti.
Nextcloud non ha un modo semplice per rinominare gli utenti, ma Discourse sì. Rinominare un utente in Discourse potrebbe portare a comportamenti strani con Nextcloud se i nomi non corrispondono più.

L’avatar_url da DiscourseConnect dovrebbe essere passato a Nextcloud e letto lì. Se vuoi passare anche la bio, poche righe nel ramo responsabile degli aggiornamenti del profilo dovrebbero fare al caso tuo.

Dovresti invece usare password per dispositivi. La password di Nextcloud potrebbe essere diversa dalla password di Discourse, il che porterebbe a confusione e salterebbe l’SSO.

Penso che questi siano problemi generali con l’interfaccia utente di Nextcloud e non specifici dell’app.

Imposta l’opzione social_login_auto_redirect su true come descritto nella sezione config se vuoi nascondere completamente il login di Nextcloud.

2 Mi Piace

Fantastico! Grazie, Patrick! Apprezzo molto la tua guida.

Ho aperto una issue su GitHub riguardo al mio problema principale, ovvero vorrei che tutti gli utenti effettuassero il login tramite Discourse e al momento non posso farlo senza fornire agli utenti istruzioni su come passare a Discourse tramite la preferenza utente social login connect.

Ora ho impostato social_login_auto_redirect come suggerisci e funzionerĂ  bene una volta che tutti saranno configurati per utilizzare Discourse. :+1: Per ora funziona bene per me personalmente, ma non per chiunque altro utilizzi questi siti. Non potranno accedere. :sob:

Non mi è del tutto chiaro cosa intendi per password del dispositivo. Ho guardato il link che hai fornito, ma gli screenshot delle preferenze utente in quella pagina non sono uguali alla mia istanza Nextcloud. Forse siamo su una versione diversa? Sono sulla 23.0.0, sul canale di aggiornamento stabile. :thinking: O forse c’è un’app che devo installare?

La sincronizzazione di nome utente, avatar e bio è meno urgente, anche se sarebbe bello vederla funzionare correttamente. Non capisco perché non dovrebbe essere possibile aggiornare questi dettagli per l’utente ad ogni accesso. Forse ci sono delle particolarità di Nextcloud che non si integrano bene con Discourse in questo caso. Ad esempio, Discourse consente un solo utente per indirizzo email, mentre sembra che io sia in grado di creare un secondo utente Nextcloud con lo stesso indirizzo email, a meno che non lo impedisca utilizzando l’impostazione di amministrazione Prevent creating an account if the email address exists in another account. Idealmente, collegherebbe automaticamente questi account in base all’indirizzo email.

1 Mi Piace

Non sono sicuro di aver capito correttamente il tuo problema attuale, ma presumo che il tuo problema siano gli utenti esistenti, che non hanno un “account di accesso social collegato”. Andrebbe tutto bene quando tutti gli utenti sono collegati?

Come hai già scritto tu stesso, l’email non è univoca in Nextcloud e quindi non può essere utilizzata in modo sicuro per il mapping degli utenti.

Quando sono passato all’app sociallogin, ho collegato gli utenti esistenti con una semplice query SQL. Ho esportato l’elenco degli utenti di Discourse e inserito un mapping per [nome interno]-[ID utente] (ad esempio, kb2-3797) ai nomi utente Nextcloud esistenti nella tabella sociallogin_connect nel database di Nextcloud. Quali campi utilizzi per il mapping (ad esempio, nome utente o email) dipende dalla tua configurazione.

Lo screenshot sembra un po’ datato, ma ho una tabella molto simile (incluso il “pulsante per creare una nuova password specifica per il dispositivo”) quando apro /settings/user/security sulla mia istanza stabile di Nextcloud 23.0. Puoi pubblicare uno screenshot della tua pagina?

2 Mi Piace

Non ci vorrà molto per correggere i miei utenti esistenti: ne ho solo pochi sul mio sito. Ma in termini di soluzione a lungo termine, replicabile e che funzioni per tutti coloro che cercano di utilizzare discourse come provider di autenticazione per nextcloud, sembra che abbia senso consentire un solo utente per indirizzo email e abbinarli automaticamente in base all’indirizzo email. Non dovrebbe essere necessario che gli utenti facciano nulla per far sì che ciò accada.

Ecco come appare la mia pagina /settings/user/security.

1 Mi Piace

C’è un “Crea nuova password per app” proprio alla fine della pagina. Lì puoi creare nuove credenziali per, ad esempio, client desktop.

2 Mi Piace

Ok, ha senso anche se il linguaggio è un po’ confuso. Penso di aver capito ora. Per i nuovi utenti che non hanno mai effettuato l’accesso diretto a nextcloud e desiderano installare l’app, devono utilizzare il pulsante Crea nuova password per app per crearne una nuova “password per app” da utilizzare. Idealmente, questa dovrebbe essere una password per dispositivo, ma non è obbligatorio.

Continuerò a seguire su github per vedere se posso aiutare a chiarire la documentazione e risolvere alcuni problemi di integrazione. Ma per ora direi che @paroga hai finalmente risolto questa richiesta di supporto del 2017! :partying_face:

1 Mi Piace

Penso che tu possa dare un’occhiata al tutorial che ho scritto.

Uso questa funzione per connettere il mio NextCloud al mio Discourse.

1 Mi Piace

Questo argomento è stato chiuso automaticamente 30 giorni dopo l’ultima risposta. Non sono più consentite nuove risposte.