Impossibile accedere all'ultima versione con LDAP

Ciao a tutti,

Scusate il disturbo per questa questione. Di recente abbiamo aggiornato la nostra installazione di Discourse all’ultima versione. Stiamo utilizzando il plugin LDAP (GitHub - jonmbake/discourse-ldap-auth: Discourse plugin to enable LDAP/Active Directory authentication. · GitHub), ma gli utenti non riescono ad accedere.

Se mantenete la sessione attiva non avrete alcun problema. Tuttavia, se provate ad accedere ora, cliccando su “Accedi” l’URL cambia in: /auth/failure?message=csrf_detected e otteniamo il messaggio di errore: Autorizzazione scaduta o avete cambiato browser. Riprovate..

Qualcuno sa se ci sono state recenti modifiche che potrebbero aver causato questa situazione?

Grazie.

Credo che @david possa dare un consiglio?

Una domanda a margine: esiste un modo per tornare a una versione precedente? Ho cercato un po’ e il consenso è disabilitare i plugin (o il plugin specifico responsabile). Tuttavia, non posso disabilitare questo perché è proprio attraverso di esso che i miei utenti accedono alla piattaforma :stuck_out_tongue:

Non è realmente supportato, ma se hai un backup puoi eliminare la directory dei dati di PostgreSQL, inserire un commit nella riga della versione in app.yml, ricostruire e ripristinare il backup.

Sì, ho eseguito un backup e sto cercando di ricostruire usando l’SHA della versione che avevo, dato che funziona in modo incerto.

Nel frattempo, ho ancora l’ultima versione stabile e sto cercando di capire se possiamo risolverla in qualche modo.

Non so se @david abbia qualche consiglio, come suggerito da @codinghorror, ma sono disposto a provare qualsiasi cosa, dato che i miei utenti sono bloccati (a meno che non abbiano mantenuto la sessione).

Aggiornamento rapido: Ho provato a usare la versione di backup con uno snapshot della macchina così com’era in quel momento (prima dell’aggiornamento). Cliccando su “Accedi” la pagina principale si ricarica due volte. Ho provato a ricompilare con l’esatto commit SHA che avevo allora, ma senza successo: errore DB Rake. :no_mouth:

Ho cercato altri report sul problema LDAP, ma non ne sembra esserci. Potrebbe essere causato da una fonte esterna?

Ultimo aggiornamento:

Problema risolto, individuata la causa radice, non correlata a Discourse (scusate ragazzi!). Il problema era che il certificato è stato aggiornato e servito tramite un HAP; prima non utilizzavamo un HAP e Discourse lo serviva autonomamente. Abbiamo dimenticato questo dettaglio, il che ha causato l’errore CORS.

Lezioni apprese:

  • Il rollback di Discourse non è un’opzione; è meglio avere un backup dell’intera macchina (fortunatamente era il nostro caso).
  • Non sono ancora riuscito a capire perché fosse così difficile ricostruire con uno SHA specifico seguendo le istruzioni lette qui; non sono riuscito a farlo.
  • È meglio servire sempre i certificati dall’HAP, ma non dimenticarsene. (Come nota per chiunque altro, è necessario aggiungere il flag 'set-header X-Forwarded-Proto https' perché Discourse ha il proprio NGINX, ed è lì che si verificava l’errore).
  • Il fatto che nessuno avesse segnalato lo stesso problema (anche considerando che si tratta di un caso limite, dato che il plugin non è ufficiale) indicava proprio questa direzione (Community come previsto :P).
  • Il problema si è manifestato solo in ritardo (al punto da non ricordare più la modifica al certificato) a causa della ricostruzione attivata dall’aggiornamento, ed è lì che si è verificato l’errore.

Ancora una volta, grazie e scusate per il disturbo!