Visualizzo questo messaggio quando tento di attivare Discourse_id sul mio sistema di test (3.6.0.beta2-latest):
enable_discourse_id: Devi configurare le credenziali di Discourse ID ('discourse_id_client_id' e 'discourse_id_client_secret') prima di abilitare questa impostazione.
Utilizzo un server Oauth locale per OIDC qui (keycloak). Forse i due metodi si stanno interferendo a vicenda??
Non credo interferisca con OIDC, ma se la tua istanza non è disponibile su Internet, la registrazione dell’ID non funzionerà. Il provider di identità Discourse ID ha un meccanismo di verifica in atto per le istanze Discourse che avviano il processo di registrazione.
Ho spostato questo in un argomento separato… vedi errori in /logs sulla tua istanza? Dovrebbe fornire maggiori dettagli su ciò che non funziona sotto il cofano durante il processo di registrazione.
Vorrei capirlo un po’ di più dal punto di vista tecnico.
Sulle mie istanze, utilizzo l’autenticazione OIDC con un provider di identità esterno (Keycloak 26). Discourse ID sembra molto simile; è solo un server IDP diverso ospitato da Discourse.org. E anche i messaggi di errore (client ID e segreto mancanti) ricordano il classico flusso OAuth. Ciò significa che Discourse ID verrà attivato come percorso di autenticazione IDP aggiuntivo? Perché solo allora sarebbe utile per il mio caso d’uso. ???
Ok. Avrei quindi bisogno di un ID client sul tuo IDP (per il flusso di accesso pubblico) o di un ID client e di un segreto client (per il flusso di accesso confidenziale). Un’altra opzione: aggiungere Discourse ID come broker di identità esterno all’IDP locale. Per entrambe le varianti sarebbero necessarie maggiori informazioni …
Ora che guardo la tua istanza, vedo errori http/https. Affinché l’ID funzioni, il sito deve essere sotto https. Questo è probabilmente il tuo problema.
@Tealk assicurati che anche il tuo sito funzioni correttamente su https.
Discourse ID funziona già sui forum che utilizzano la branch stabile? Pensavo che la funzionalità sarebbe stata aggiunta solo dopo il rilascio di agosto.
Questo è un buon punto. Ho aggiornato il feed Novità per includere questo elemento solo per le istanze che non sono in versione stabile (e che hanno il commit in latest che sblocca l’ID di Discourse). Se aggiorni il feed Novità, non dovresti più vedere questo elemento nella tua istanza in versione stabile.
L’impostazione del sito enable_discourse_id non dovrebbe essere presente per te. (Assicurati di non confonderla con enable_discourse_connect, quella è un’altra cosa.)
Ora che guardo la tua istanza, vedo errori http/https. Affinché l’ID funzioni, il sito deve essere sotto https. Questo è probabilmente il tuo problema.
… interessante, ma non capisco perché. Forse abbiamo una lacuna concettuale qui: i container di Discourse si trovano dietro un acceleratore SSL, accessibile solo tramite https. Ma questo vale per la connessione standard che proviene dall’“esterno” verso l’“interno”. Nel caso d’uso OAuth, il container di Discourse avvia la connessione dall’“interno” verso l’IDP che si trova all’“esterno”. Non vedo alcuna opzione per configurare questa connessione all’ID di Discourse e forzarla a essere “https”.
Se confronto questo con le impostazioni OIDC classiche utilizzate per la configurazione OAuth con il mio IDP: lì abbiamo un’impostazione “Documento di discovery OpenID Connect”
Penso che abbiamo bisogno di qualcosa di simile per l’ID di Discourse per evitare problemi con connessioni https mancanti. PS. La mia istanza di test ha 3.6.0.beta2-latest, Commits · discourse/discourse · GitHub