¡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.
¡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:
¡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?
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.
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.
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