Problema de inicio de sesión único (SSO) y cierre de sesión de Keycloak

¡Hola!
@david ayúdame por favor, gran hombre! ))))

He configurado correctamente el paquete de plugins Discourse + Keycloak SSO + SAML + OpenID Connect. Solo hay una cosa que empaña esta belleza: el cierre de sesión.

Cuando cierro sesión en el foro, el usuario queda desautorizado; esta parte funciona bien.
Sin embargo, al revisar las sesiones activas en Keycloak, la sesión del usuario que salió del foro no se elimina.
Sospecho que esto se debe a la configuración de la URL de cierre de sesión. Solo no sé dónde está configurada: en Discourse o en Keycloak.

Mis configuraciones de SAML en Keycloak:

Mis configuraciones de OpenID Connect en Keycloak:

El complemento OpenID Connect admite RP Initiated Logout. ¿Esto es compatible con Keybase?

Ahora solo falta entender qué es y si está en Keycloak ))))
¿Dónde se configura esta opción en el plugin openid-connect?

Se configura en la configuración del sitio:

¡Gracias! Intentaré buscar en Google qué tiene Keycloak con respecto a esta pregunta.

¡Sí! ¡Funciona perfectamente! Quiero aclarar que es necesario establecer la variable openid_connect_rp_initiated_logout_redirect.

@david Tengo otra pregunta. Una pregunta importante.
Actualmente estoy en las etapas finales de la prueba de SSO con Keycloak y necesito elegir un protocolo: SAML o OpenID Connect.
Me pareció mejor OpenID Connect, pero ahora he encontrado un problema molesto al crear nuevos usuarios cuando se utiliza OpenID Connect.

Para entender el problema, empezaré por el otro lado. Cuando se crea un nuevo usuario del foro mediante SAML, el usuario se crea en el SSO y se envía de forma transparente para su creación en Discourse. Y se activa inmediatamente: ¡esto es importante!
Es decir, cuando hago clic en “Registrarse” en el foro de Discourse, voy a Keycloak, donde creo un usuario, confirmo su correo electrónico, etc. Después de eso, soy redirigido al foro de Discourse, donde el usuario ya ha sido creado y ACTIVADO automáticamente:

Pero si uso el plugin de OpenID Connect, al crear un nuevo usuario aparece la siguiente ventana:

¡Esto es extremadamente incómodo! ¿Para qué? Después de todo, el correo electrónico del usuario ya fue confirmado al crear la cuenta en el SSO. ¿Hay alguna manera de eliminar esta ventana?

¡Muchas gracias de antemano!

Si ese mensaje aparece para OpenID Connect, significa que el proveedor de identidad envió un mensaje email_verified: false a Discourse. Si habilitas la configuración de depuración detallada, se imprimirán todos los datos de autenticación en /logs para que los examines. Esperemos que haya alguna forma de indicar a Keycloak que pase el estado de verificación correctamente.

¿Por qué, entonces, el plugin SAML ignora esto?

En el complemento SAML, esto se controla mediante la configuración global saml_default_emails_valid (por defecto, true).

¡Encontré la solución! ))))
En Keycloak:

Deshabilita estas opciones:

Mientras tengas un 100% de certeza de que Keycloak ha verificado los correos electrónicos, no hay problema. Si los correos no están verificados, hacerlo dejará tu sitio de Discourse expuesto a atacantes.

Sí, es correcto…
Ahora probando un nuevo caso: dos foros con un cliente OpenID de Keycloak ))

Por cierto, @david, ¿qué crees que es más correcto:

  1. Usar un solo cliente OpenID para todos los foros y especificar las URLs de redirección válidas requeridas, como lo tengo ahora:

  2. O usar un cliente OpenID propio para cada foro?

No estoy familiarizado con Keycloak, pero cualquiera de las dos opciones me parece bien. Si más adelante quieres tener controles de acceso separados para cada foro, tenerlos como clientes distintos podría facilitarlo :man_shrugging: