Plugin OIDC improvvisamente rotto, fallisce silenziosamente per i nuovi utenti

Abbiamo un’istanza di discourse in esecuzione che ha smesso di consentire l’accesso agli utenti che non hanno già un account e non capiamo perché! Questo è iniziato un paio di settimane fa dopo aver installato il plugin Discourse AI e riavviato l’istanza. Questo è venuto alla mia attenzione solo dopo le lamentele dei clienti negli ultimi giorni. Di solito abbiamo molte nuove registrazioni ogni giorno.

La Configurazione

  • Discourse self-hosted tramite docker ufficiale
  • https://community.enginedj.com
  • Plugin OIDC che utilizza il nostro Provider OIDC (:camera_flash: 1)
  • Nessuna altra autenticazione tranne OIDC (cioè nessuna registrazione con email + password) (:camera_flash: 2)
  • Ultima nuova registrazione riuscita è stata il 22 novembre 2023 alle 5:23 NZDT
  • Il plugin AI è stato installato intorno al 22 novembre 2023 alle 6:03 NZDT (questo avrebbe causato il riavvio dell’istanza di discourse)
  • Nessun log di eventi per modifiche alla configurazione di sistema da ottobre, e niente di rilevante per l’autenticazione da marzo (:camera_flash: 3)
  • Molta attività sul forum, nessun problema con lo spazio su disco / db ecc.

Il Problema

  • Il flusso di accesso funziona correttamente ma dopo il ritorno gli utenti senza un account preesistente non vengono effettuati l’accesso
  • Nessun messaggio di errore viene visualizzato
  • Nessun messaggio di errore nei log (abbiamo alcuni errori CSRF nei log ma questi non sono correlati ai login falliti)
  • Il logging dettagliato per il plugin OIDC mostra che interroga correttamente i dati dal provider OIDC, ottiene i claim ecc. e non mostra problemi (:camera_flash: 4)

Cosa abbiamo provato

  • Disabilitato il plugin Discourse AI
  • Rimosso il plugin Discourse AI
  • Controllato le risposte dei cookie per domini non corrispondenti
  • Aggiornato tutti i plugin / componenti all’ultima versione (:camera_flash: 5)
  • Confermata l’assenza di modifiche alle impostazioni
  • Indagato sui log sull’host. Niente di degno di nota.

Ecco un video del problema. Il primo accesso è per un utente senza un account Discourse esistente. Il secondo è con il mio utente admin.

https://www.loom.com/share/3aad210d844849dc8154ce6e5db50d29

Qualche idea su cosa dovremmo guardare dopo?

:camera_flash: 1

:camera_flash: 2

:camera_flash: 3

:camera_flash: 4

:camera_flash: 5

1 Mi Piace

Ciao @snikch :wave:

Quando eseguo il processo di accesso sul tuo sito, vedo questo errore nella console JavaScript. Proviene dall’ID tema=12, che sembra tentare (e fallire) di aggiungere una sorta di stile aggiuntivo per il pulsante di accesso?

Se uso gli strumenti per sviluppatori del mio browser per ‘bloccare’ il JS per quel particolare tema, allora tutto sembra funzionare come previsto.

Quindi penso che per far funzionare di nuovo le cose tu possa disabilitare il tema ID=12, o modificarlo per correggere/rimuovere il codice problematico.

Detto questo, non vogliamo che questo tipo di errore del tema blocchi completamente l’accesso ai siti! Quindi controllerò se possiamo migliorare la gestione degli errori qui :eyes: (modifica: PR per migliorarla qui)

5 Mi Piace

Wow, grazie @david. Avevo visto quell’errore e creato una scheda per risolverlo, ma ho semplicemente presunto che non avesse nulla a che fare con il login dell’utente, dato che pensavo fosse tutto lato server e avvenisse prima che il JS renderizzasse la pagina! Molte supposizioni lì :facepalm: Ora capisco che serve per mostrare il modale Crea Account.

Grazie mille per l’aiuto :heart_eyes_cat:

1 Mi Piace

Questo argomento è stato chiuso automaticamente dopo 21 ore. Non sono più consentite nuove risposte.