Link di invito (Pulsante Accetta Invito) con SSO non funzionanti per la versione stabile v2.8.10

Ciao team Discourse,

Il pulsante Accetta invito non funziona sulla versione stabile v.2.8.10. Quando si tenta di accedere tramite SSO, si viene semplicemente reindirizzati alla pagina di invito e Accetta invito non fa nulla. Non ci sono nemmeno errori nella console. Qualcuno può aiutare?

Credo sia correlato all’ultimo aggiornamento: SECURITY: Fix invite link validation (stable) (#18818) · discourse/discourse@7e4e8c8 · GitHub

Saluti

2 Mi Piace

Puoi confermare come è configurato il tuo sito?

Gli inviti non hanno storicamente funzionato con SSO abilitato. Questa potrebbe essere una regressione, ma avremo bisogno di saperne di più.

1 Mi Piace

Ciao @Stephen,

Grazie per la tua risposta! Di quali informazioni hai specificamente bisogno? Lo abbiamo self-hosted sul ramo stabile (v2.8.10) utilizzando il plugin discourse-saml con Okta (SSO). Prima dell’aggiornamento alla versione 2.8.10, eravamo in grado di creare link di invito ai gruppi e funzionavano, l’utente accedeva tramite SSO e poi veniva reindirizzato all’argomento specificato nell’impostazione dell’invito.

Informazioni aggiuntive:

Nella precedente versione stabile v2.8.9, su domain.com/invites/invitecode:

  • Un utente non autenticato veniva presentato con una schermata che chiedeva di accedere tramite SSO (Okta, specificato nella configurazione SAML di app.yml), che lo reindirizzava all’SSO per l’accesso/registrazione, dopodiché eseguiva le azioni dell’invito (reindirizzamento al topic, aggiunta al gruppo, ecc.)

  • Un utente autenticato bypassava automaticamente la schermata dell’invito e le azioni dell’invito venivano eseguite

Nella versione stabile corrente v2.8.10, su domain.com/invites/invitecode:

  • Sia gli utenti non autenticati che quelli autenticati vengono presentati con la schermata dell’invito con 2 pulsanti:
    – Pulsante Accedi tramite SSO
    – Accetta invito (questo è nuovo)

Quando si fa clic sul pulsante Accedi tramite SSO, all’utente viene richiesto di accedere (se non è già autenticato) e verrà reindirizzato nuovamente alla pagina dell’invito.
Quando si fa clic sul pulsante Accetta invito, non accade nulla.

Abbiamo osservato nella console del browser di rete che c’è una richiesta PUT a domain.com/invites/show/invitecode.json che restituisce un errore 504 (solo nella versione 2.8.10)

1 Mi Piace

C’è una categoria specifica in cui posso spostare questo per segnalare questo bug?

1 Mi Piace

Conferma che abbiamo visibilità sul problema, in qualche modo puoi confermare che non si tratta di un problema in tests-passed e che esiste solo in stable al momento?

2 Mi Piace

Ciao @sam ,

Grazie per la risposta! Sono lieto di sapere che hai visibilità sul problema.

Sfortunatamente non abbiamo un’istanza test-passed con SSO, poiché ci siamo sempre attenuti allo stabile. Ho un ramo test-passed senza SSO e non ci sono problemi lì.

MODIFICA: Ci proverò per vedere se riesco a far funzionare un’istanza test-passed con SSO.

Ciao @sam,

Sono riuscito ad avviare un’istanza di tests-passed e non ho riscontrato problemi.
Sono riuscito ad accettare gli inviti. Spero questo aiuti!

1 Mi Piace

Ciao @sam!

C’è qualche possibilità che la versione stabile possa essere riproposta in modo che possa essere corretta sulla versione stabile?

Ho visto che Discourse ha ricevuto un aggiornamento: 2.8.11: Security Release

C’è qualche possibilità che questo aggiornamento risolva questo problema? :slight_smile:

1 Mi Piace

Sì, aggiorneremo, grazie mille per la segnalazione, ti faremo sapere una volta fatto. Dacci una o due settimane.

2 Mi Piace

Fantastico! Grazie @sam ! :raised_hands:

MODIFICA:
Solo per informazione per altri che potrebbero riscontrare questo problema:

La versione 2.8.11 di stable non risolve il problema. Cliccando su Accetta invito ora viene visualizzato un errore nel log della console:
PUT https://<DOMAIN>/invites/show/<INVITE_CODE>.json 404
L’URL .json porta a:

// https://<DOMAIN>/invites/show/<INVITE_CODE>.json

{
  "errors": [
    "The requested URL or resource could not be found."
  ],
  "error_type": "not_found"
}

Ciao @hyphalos, ho iniziato a dare un’occhiata oggi. Non ho familiarità con la nostra configurazione SAML, quindi abbiate pazienza con me.

Questo è un po’ strano, il pulsante “Accetta invito” dovrebbe apparire solo per gli utenti registrati. Potresti per favore pubblicare uno screenshot di ciò che vedono gli utenti registrati e non registrati per un invito specifico, e anche quali opzioni stai scegliendo per l’invito qui:

3 Mi Piace

Ciao @martin!

Grazie per la tua risposta. Mi scuso per il ritardo nella risposta, ero malato.

Ho fatto altri test e quello che ho osservato è che dopo l’aggiornamento a v2.8.11 le persone possono accettare un invito una sola volta, indipendentemente dalle impostazioni di creazione dell’invito. L’ho testato con “Arrive at topic”, senza “Arrive at topic”, “add to group”, senza “add to group”, ecc. e le persone possono accettare gli inviti solo una volta. È un comportamento previsto?

Cosa succede se un ospite si registra ma utilizza nuovamente lo stesso URL di invito? Rimarrà bloccato nella pagina di invito (nessun reindirizzamento con “Arrive at topic”). Quando clicca su Accept Invitation, appare questo errore:

EDIT: Volevo solo aggiungere che se è un comportamento previsto, non viene visualizzato alcun errore che dica “Hai già accettato questo invito prima” o qualcosa di simile, oppure semplicemente reindirizza ovunque sia impostato “Arrive at topic” nell’invito.

2 Mi Piace

Sì, questo è previsto. Non l’errore, ma il fatto che non possano accettare l’invito più volte. Ne abbiamo discusso qui New 'accept invitation' prompt feature causing issues with invitation links - #14 by martin dove ho apportato una correzione, ma ora vedo che dovrò backportare quella correzione anche a stable cc @sam

2 Mi Piace

Ciao @martin , è fantastico, grazie per aver indagato!

2 Mi Piace

Ho appena eseguito il commit di questa correzione in stable qui:

2 Mi Piace

Ciao @martin!

Grazie ancora per la correzione!

Ho aggiornato alla versione 2.8.12 (che secondo il tag del commit nel pannello di amministrazione include le correzioni) e ora vedo un messaggio di errore (su un account di prova) per aver tentato di accettare un invito che ho già accettato sull’account di prova:

Il che è fantastico!

Anche se, come utente già loggato, non mi aspettavo che venisse visualizzato il pulsante “Okta SSO”. Quando il pulsante viene cliccato, entra in un loop SSO e poi mi riporta alla pagina dell’invito. Dato che l’utente è loggato, il pulsante di accesso non dovrebbe essere nascosto per evitare confusione?

Questo argomento è stato chiuso automaticamente dopo 4 giorni. Non sono più ammessi nuovi messaggi.