Déclenchement de l'authentification automatique via SSO lors du lien vers des sujets privés ?

Nous utilisons notre propre application comme fournisseur SSO pour Discourse, et nous rencontrons un problème lors de la liaison des utilisateurs vers des sujets privés dans notre forum Discourse depuis notre application : l’authentification n’est déclenchée que lors du clic sur le bouton « Connexion ».

  • Nous utilisons notre propre système comme fournisseur SSO pour Discourse.
  • Nous avons un mélange de pages publiques et privées sur Discourse, donc nous n’avons pas défini login_required.
  • Si un utilisateur s’authentifie dans notre système et que nous le redirigeons vers l’URL racine de Discourse, il voit les catégories publiques mais n’est pas connecté.
  • Si un utilisateur s’authentifie dans notre système et que nous le redirigeons vers Discourse + /login, il se connecte correctement et est redirigé vers l’URL racine de Discourse.
  • Si un utilisateur s’authentifie dans notre système et que nous le redirigeons vers l’URL d’une catégorie ou d’un sujet privé dans Discourse, il voit une page lui demandant de se connecter. S’il clique sur « Connexion », il est automatiquement connecté et accède à la catégorie/au sujet.

Ce dernier cas est problématique. Je pense que l’une des solutions suivantes serait appropriée :

  • Nous pouvons lier vers notrediscourse.com/c/some-category?login=true et une vérification d’authentification est effectuée : si l’utilisateur est connecté, le sujet lui est affiché. Sinon, il est redirigé vers notre fournisseur SSO, puis renvoyé vers le sujet après la connexion.
  • Nous pouvons lier vers notrediscourse.com/login?redirect=c/some-category et une vérification d’authentification est effectuée : en cas de succès, redirection vers la page indiquée dans la chaîne de requête ; sinon, redirection vers le fournisseur SSO, puis vers la page indiquée dans la chaîne de requête après authentification réussie.
  • Nous pouvons lier vers notrediscourse.com/c/some-category, et s’il s’agit d’une page privée, Discourse effectue une vérification d’authentification : en cas de succès, l’utilisateur accède à la catégorie ; sinon, il est redirigé vers le fournisseur SSO, puis renvoyé vers la catégorie.

Merci !

(J’ai déjà publié ce problème ici – désolé pour les multiples publications, mais j’ai pensé qu’un nouveau sujet pourrait obtenir plus de réponses).

You can create an login link on your SSO provider site with a return_path parameter in the URL. After authentication, Discourse will redirect the user to the value set for the return_path. The link should be in this form:

<a href="https://forum.example.com/session/sso?return_path=https://forum.example.com/your-discourse-endpoint">Link Text</a>
5 « J'aime »

Can’t they also have the SSO do something similar so that when they log in to the SSO they are also logged in to Discourse?

The only ways I know of auto logging in users to Discourse when the login to the SSO provider site seem a little hacky. With the use of SSO login links in the form I gave above and the sync_sso route for updating users without requiring them to login, I can’t see where it would be required.

1 « J'aime »

Thank you - this has worked perfectly.

I’m not sure if we are doing this - what would be the way to check?

EDIT: should have searched first… details here: Sync DiscourseConnect user data with the sync_sso route

3 « J'aime »

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.