Problema con Keycloak SSO e logout

Ciao!
@david aiutami per favore, grande uomo! ))))

Ho configurato con successo il pacchetto plugin Discourse + Keycloak SSO + SAML + Openid Connect. C’è solo una cosa che offusca questa bellezza: l’logout.

Effettuo l’logout dal forum, l’utente viene disautorizzato; questa parte funziona correttamente.
Poi controllo le sessioni attive su Keycloak: la sessione dell’utente che ha effettuato l’logout dal forum non viene eliminata.
Sospetto che ciò sia dovuto alle impostazioni dell’URL di logout. Non so solo dove trovarle: su Discourse o su Keycloak.

Le mie impostazioni SAML su Keycloak:

Le mie impostazioni Openid Connect su Keycloak:

Il plugin OpenID Connect supporta il Logout iniziato dal RP. È supportato da Keybase?

Ora rimane da capire di cosa si tratta e se è presente in Keycloak ))))
Dove viene configurata questa opzione nel plugin openid-connect?

È configurato nelle impostazioni del sito:

Grazie! Cercherò su Google cosa c’è di Keycloak riguardo a questa domanda.

Sì! Funziona perfettamente! Vorrei chiarire che è necessario impostare la variabile openid_connect_rp_initiated_logout_redirect.

@david Ho un’altra domanda. Una domanda importante.
Attualmente sono nelle fasi finali di test di Keycloak SSO e devo scegliere un protocollo: SAML o OpenID Connect.
Mi è piaciuto di più OpenID Connect, ma al momento ho riscontrato un problema fastidioso nella creazione di nuovi utenti quando si utilizza OpenID Connect.

Per comprendere il problema, partirò dall’altro lato. Quando un nuovo utente del forum viene creato tramite SAML, l’utente viene creato nel sistema SSO e trasmesso in modo trasparente per la creazione in Discourse. Viene immediatamente attivato: questo è importante!
Cioè, quando faccio clic su “Iscriviti” nel forum Discourse, vado su Keycloak, dove creo un utente, confermo la sua email, ecc. Dopo di ciò, vengo reindirizzato al forum Discourse, dove l’utente è già stato creato e ATTIVATO automaticamente:

Ma se utilizzo il plugin OpenID Connect, quando creo un nuovo utente, appare la seguente finestra:

Questo è estremamente scomodo! A cosa serve? Dopotutto, l’email dell’utente è già stata confermata durante la creazione dell’account su SSO. C’è qualche modo per eliminare questa finestra?

Grazie mille in anticipo!

Se quel messaggio viene visualizzato per OpenID Connect, significa che il provider di identità ha passato un messaggio email_verified: false a Discourse. Se abiliti l’impostazione di debug verboso, verrà stampato tutto il dato di autenticazione in /logs per essere esaminato. Speriamo ci sia un modo per dire a Keycloak di passare correttamente lo stato di verifica.

Perché allora il plugin SAML lo ignora?

Nel plugin SAML, questo è controllato dall’impostazione globale saml_default_emails_valid (predefinito: true).

Ho trovato la soluzione! ))))
In Keycloak:

Disabilita queste opzioni:

Finché sei sicuro al 100% che Keycloak abbia verificato gli indirizzi email, va bene. Se gli indirizzi email non sono verificati, farlo esporrà il tuo sito Discourse agli attaccanti.

Sì, è corretto…
Ora sto testando un nuovo caso: due forum con un unico client OpenID di Keycloak ))

A proposito, @david, secondo te quale è più corretto:

  1. Utilizzare un unico client OpenID per tutti i forum e specificare gli URL di reindirizzamento validi richiesti, come ho fatto io:

  2. Oppure utilizzare un client OpenID dedicato per ogni forum?

Non sono molto familiare con Keycloak, ma entrambe le opzioni mi sembrano valide. Se in futuro vorrai avere controlli di accesso separati per ogni forum, averli come client distinti potrebbe rendere tutto più semplice :man_shrugging: