Discusión con Keycloak para SSO

¿Existe alguna forma de configurar Keycloak como proveedor de autenticación para Discourse? Necesito que funcione de manera SSO, de modo que los usuarios que tienen una cuenta gestionada por Keycloak tengan acceso automático y también inicien sesión en la instancia de Discourse.

He leído sobre la configuración de OpenID y la gente dice que con este enfoque los usuarios deben iniciar sesión por separado y crear una cuenta independiente en Discourse. Eso no es exactamente lo que busco.

¿Hay algo que pueda/debería leer sobre el tema?
Mi intención es tener Discourse y Keycloak configurados en contenedores Docker separados y compuestos, y necesito una autenticación fluida entre ellos para poder crear publicaciones en Discourse desde mi backend de API en nombre del usuario que ha iniciado sesión en mi aplicación frontend en JS, con los datos del usuario gestionados por Keycloak.

La solución más sencilla que he implementado para usuarios con Keycloak como su proveedor de IAM empresarial es configurar Discourse con SAML:

Configurar SAML en Keycloak es bastante directo:

Alternativamente, también puedes conectarte mediante OpenID Connect:

Para permitir que los usuarios inicien sesión automáticamente con SAML, deberás desactivar todos los demás métodos de autenticación, incluido el inicio de sesión local. Asegúrate de que tu cuenta de administrador ya tenga una cuenta correspondiente en Keycloak, o quedarás bloqueado fuera de la administración.

1 me gusta

Interesante, gracias.
Deshabilitar todos los demás métodos de inicio de sesión no es realmente una opción. Quiero seguir usando mi Keycloak como el método principal de autenticación en mi aplicación, pero, además, permitir que los usuarios estén en Discourse.
Eso significaría que mis usuarios deberían poder registrarse con usuario/contraseña o cualquier red social que deseen y simplemente obtener una cuenta que funcione tanto para mi aplicación como para Discourse.
¿Es posible algo así?

PD: Solo leyéndolo de nuevo, ¿te refieres a deshabilitar los métodos de autenticación en Keycloak o en Discourse?

La autenticación social o mediante nombre de usuario/contraseña tendría que realizarse a través de Keycloak. Además, acabo de darme cuenta de que no inicia sesión automáticamente en los usuarios. Lo que haría es permitir que los usuarios se autentiquen directamente contra Keycloak si hacen clic en el botón de iniciar sesión.

Así que digamos que al principio quiero acceder a todo a través de la API. ¿Todavía podré hacerlo?
El inicio de sesión es parte de la interfaz de usuario de Discourse.

Digamos que un nuevo usuario se registra en mi servidor Keycloak y tengo esta integración SAML. El usuario ha iniciado sesión en mi aplicación web JS y tengo su token. ¿Podré llamar a la API de Discourse usando solo este token?
Es decir, si quiero tener una interfaz de usuario personalizada para crear publicaciones desde mi aplicación web.

Según lo que sé, puedes acceder a todos los puntos de conexión de la API utilizando claves de API.

Deberías poder hacerlo; nada te impide hacerlo.

@AAverin ¿Encontraste una solución?

@AAverin ¿revisaste esto?