Landing page per l'accesso SAML

Nelle versioni precedenti, veniva mostrata una pagina di accesso sulla quale appariva il pulsante “login”. Cliccando questo pulsante, veniva visualizzata la pagina di accesso SAML.
Personalmente, mi piaceva molto questo comportamento. Con l’attuale versione 2.4.2 non è più possibile, poiché la pagina di accesso SAML viene mostrata immediatamente.

È configurabile?

Non ho capito, intendi che abbiamo mostrato una finestra modale con un unico pulsante “Accedi con SAML”?

No.
In una versione precedente (credo fosse la 2.3.6) era così:

Dopo aver fatto clic su “Anmelden”, appariva la finestra di accesso SAML.

Se abilito “accessi locali”, ricompare la pagina di destinazione con il pulsante di accesso, ma non voglio avere l’accesso locale e quindi devo disabilitarlo.

Qualcuno può aiutarmi? Forse @eviltrout?

Di sicuro non l’ho modificato intenzionalmente. Se poteste aiutarci a capire quando è cambiato, ci sarebbe molto utile per analizzare il contesto.

È possibile che sia cambiato per motivi di sicurezza.

Questa è un miglioramento richiesto da lungo tempo per far sì che omniauth si comporti come un vero SSO, quando è presente un solo metodo di accesso tramite omniauth.

Come posso aiutarti?

Un suggerimento: se abiliti “accesso locale”, viene mostrata la “Pagina di atterraggio insieme al pulsante di accesso”.

Se desideri davvero la pagina di conferma, puoi collegare l’utente a /login (invece che alla homepage). Questo non attiverà automaticamente l’accesso.

Tieni presente che questa non è una funzionalità ufficialmente supportata, ma è solo un comportamento collaterale dell’implementazione e potrebbe cambiare in qualsiasi momento.

Il nuovo comportamento è migliore e coerente con l’accesso SSO. Se è necessario un messaggio prima dell’accesso, può essere implementato nel Provider di Identità.

Ah, grazie per la precisazione.
Conosco due motivi:

  • mostrare una landing page molto gradevole con alcune informazioni di base invece di quella “noiosa” finestra di accesso
  • “sicurezza” (so che non è un vero e proprio ostacolo insormontabile). Gli script di hacking economici sul URL principale (senza la landing page) dovrebbero fallire, poiché è necessario premere prima il pulsante di accesso.

È possibile configurare questo comportamento?

Dovrai assumere uno sviluppatore qui per creare un plugin che modifichi questa impostazione. Al momento, questa è la prima lamentela che ho ricevuto sul nuovo sistema in mesi.

Sono uno sviluppatore :slight_smile: (vedi le mie modifiche in discourse_saml)

Accetteresti una PR che aggiunge un’opzione di configurazione (predefinito: nuovo comportamento)?

Il reindirizzamento automatico non dovrebbe introdurre alcuna vulnerabilità di sicurezza. Se sei a conoscenza di uno sfruttamento, faccelo sapere tramite il nostro programma di divulgazione: discourse/docs/SECURITY.md at main · discourse/discourse · GitHub

Non penso che vogliamo aggiungere altro rumore alle impostazioni finché non avremo più utenti che richiedono questa modifica.

Potresti sovrascriverlo in un plugin applicando una patch a questo metodo:

Quindi penso che vorresti semplificare la funzione fino a renderla:

def redirect_to_login
  dont_cache_page
  cookies[:destination_url] = destination_url
  redirect_to path("/login")
end

Grazie. Molto apprezzato!
A proposito: stai facendo un ottimo lavoro con Discourse.