OAuth2 SSO avec fournisseur SSO ne définit-il pas la redirection ?

Je pense que cela pourrait être un cas similaire de ce problème survenu il y a quelques années : Discourse doesn't redirect to return_sso_url after user logs in on private site - #8 by vinothkannans

J’ai une application Rails qui utilise omniauth-discourse comme méthode de connexion, ce qui fonctionne bien. Ensuite, mon instance Discourse utilise SSO vers une autre application que je maintiens. De cette manière, Discourse est mon fournisseur SSO, mais il utilise également SSO avec une autre application.

Lorsqu’un utilisateur est déjà connecté à Discourse, la redirection vers l’application d’origine fonctionne parfaitement.
Lorsqu’un utilisateur n’est pas encore connecté, il est dirigé vers le flux SSO, mais l’URL de retour est toujours définie comme return_sso_url=https://forum.snap.berkeley.edu/session/sso_login. Il semble que cela devrait être l’URL de la requête d’origine, non ?

  • L’utilisateur clique sur le bouton de connexion dans la première application, ce qui le redirige vers une URL qui ressemble finalement à ceci : 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 (je l’ai décodée pour plus de clarté)
  • Discourse redirige ensuite vers le point de terminaison Discourse de la deuxième application : 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
  • L’utilisateur se connecte, mais n’est emmené que sur la page d’accueil du forum.

Existe-t-il une solution de contournement, ou s’agit-il de quelque chose qui pourrait être résolu dans une mise à jour ?

Je reconnais que j’utilise Discourse simplement comme un proxy, mais pour l’instant, c’est le meilleur outil que j’ai pour intégrer ces deux applications.

Merci !