Connexion automatique via SSO

J’ai configuré l’authentification unique (SSO) et tout fonctionne bien. Cependant, je souhaite connecter automatiquement mes utilisateurs lorsqu’ils visitent notre communauté Discourse s’ils sont déjà connectés à notre site principal. En d’autres termes, cliquer sur le bouton « Se connecter » pour lancer le SSO et les rediriger vers Discourse là où ils se trouvaient initialement.

Je viens tout juste de commencer à examiner le code de connexion, mais j’espérais que quelqu’un d’autre pourrait avoir des éclaircissements sur la façon dont je peux lancer la connexion à partir d’un composant de thème personnalisé.

Cela est possible, mais peut causer des problèmes de connexion sur le site de votre fournisseur SSO si l’SSO est mal configuré. Une approche plus sûre consiste à ajouter un lien de connexion SSO à votre site web qui connectera automatiquement les utilisateurs à Discourse et les redirigera vers une page spécifiée lorsqu’ils cliqueront sur le lien. Consultez Create a DiscourseConnect login link pour plus de détails.

Pouvez-vous préciser les types de problèmes auxquels je pourrais m’attendre ?

Dans mon cas particulier, les visiteurs ne accéderont pas d’abord à l’application principale lors d’une session donnée. Ils visiteront le site communautaire, mais ils se seront connectés à l’application principale à un moment donné. Je souhaite récupérer automatiquement la session de connexion sans aucune interaction de l’utilisateur.

J’ai rencontré un problème avec cela lorsque j’essayais de connecter des utilisateurs à Discourse depuis WordPress en les redirigeant silencieusement vers Discourse, puis de retour vers WordPress dans le cadre du processus de connexion WordPress. Si le SSO était mal configuré, les utilisateurs se retrouvaient bloqués hors de WordPress.

Si vous souhaitez essayer cette approche, vous devrez activer le paramètre sso allows all return paths dans Discourse. Une fois cela fait, vous pourrez rediriger les utilisateurs vers :

https://discourse.example.com/session/sso?return_path=path_back_to_your_sso_provider_site