Questo post riguarda una funzionalità che sicuramente non esiste ma che vorrei implementare io stesso. Al momento, però, non ho idea di quanto lavoro potrebbe richiedere e lo scopo di questa domanda è cercare di capire cosa sia necessario.
Alcuni contesti: stiamo lavorando a una soluzione di autenticazione senza password. https://trykno.com/ La soluzione funziona come servizio, il che significa che i proprietari dei siti che utilizzano il servizio non devono gestire l’invio sicuro di e-mail o l’archiviazione di segreti e informazioni di identificazione personale.
Sarebbe fantastico avere un forum per il progetto e vorremmo utilizzare Discourse.
Tuttavia, dobbiamo sostituire il sistema di autenticazione in modo che utilizzi Kno.
Domande?
Il sistema di autenticazione in Discourse è pluggable?
Ci sono ipotesi hardcoded sul fatto che l’utente abbia un indirizzo e-mail?
Qual è il framework front-end? (Vedo ember-rails nel Gemfile, ma nessun riferimento a Ember in package.json)
Scusate se queste domande sono semplicistiche, non sono uno sviluppatore Ruby e qualsiasi spunto sul problema sarebbe prezioso. Grazie
Al momento è possibile non utilizzare una password e ricevere semplicemente un link.
Se il tuo obiettivo è sviluppare kno, probabilmente vorrai configurarlo come un server OAuth. In questo modo, gli utenti potranno utilizzarlo come una delle diverse fonti di autenticazione, dove SSO rappresenta l’unica opzione. Consulta Discourse OAuth2 Basic
Vedo la possibilità di ricevere un link, ma kno offre funzionalità aggiuntive, come l’autenticazione del dispositivo tramite WebAuthn, una volta confermata l’email con un codice monouso.
Sviluppare come server OAuth purtroppo non soddisfa i requisiti di cui abbiamo bisogno. (Dovrei probabilmente scrivere qualcosa nel nostro FAQ per spiegare il motivo, ma la questione si riduce al fatto che Kno ti permette di autenticarti su un dispositivo utilizzando un altro dispositivo).
Analizzando la situazione più da vicino, sembra che dovrei essere in grado di mettere insieme una prima versione funzionante implementando una soluzione SSO specifica per Discourse.
È possibile utilizzare un solo provider OAuth e disabilitare tutti gli altri tipi di autenticazione?
In tal caso, sarebbe utile anche che cliccando su “Accedi” venisse avviato automaticamente il flusso di autenticazione, ovvero senza aprire la finestra di accesso e chiedere all’utente di selezionare il provider.
Beh, questa è ottima.
No, non l’ho ancora provato perché non ho ancora implementato il provider OAuth per il mio servizio, e immagino che dopo dovrò scrivere un plugin, dato che sarà un nuovo provider OAuth.
Ho quasi completato l’integrazione SSO, quindi immagino sia il momento perfetto per passare all’uso di OAuth.