Creo que esto podría ser una ocurrencia similar de este problema de hace un par de años: Discourse doesn't redirect to return_sso_url after user logs in on private site - #8 by vinothkannans
Tengo una aplicación en Rails que utiliza omniauth-discourse como método de inicio de sesión, lo cual funciona bien.
Luego, mi instancia de Discourse utiliza SSO para conectarse con otra aplicación que mantengo.
De esta manera, Discourse actúa como mi proveedor de SSO, pero también está utilizando SSO con una aplicación diferente.
Cuando un usuario ya ha iniciado sesión en Discourse, la redirección de vuelta a la aplicación original funciona perfectamente.
Sin embargo, cuando el usuario no ha iniciado sesión previamente, se le dirige al flujo de SSO, pero la URL de retorno siempre se establece como return_sso_url=https://forum.snap.berkeley.edu/session/sso_login. ¿No debería ser esta la URL original de la solicitud?
- El usuario hace clic en el botón de inicio de sesión en la primera aplicación, lo que lo redirige a una URL que finalmente se ve así:
https://forum.snap.berkeley.edu/session/sso_provider?sso=nonce=4...f&return_sso_url=https://www.snapcon.org/accounts/auth/discourse/callback &sig=1...6(la he decodificado para mayor claridad) - Discourse, a continuación, redirige al endpoint de Discourse de la segunda aplicación:
https://snap.berkeley.edu/api/v1/discourse-sso?sig=f...d&sso=nonce=6...1&return_sso_url=https://forum.snap.berkeley.edu/session/sso_login - El usuario inicia sesión, pero solo es llevado a la página principal del foro.
¿Existe alguna solución alternativa o esto podría abordarse en una actualización?
Reconozco que solo estoy utilizando Discourse como proxy, pero por ahora es la mejor herramienta que tengo para integrar estas dos aplicaciones.
¡Gracias!