Problème avec Drupal Discourse SSO

Bonjour,

Je débute sur Discourse et j’essaie de configurer mon forum avec un site Drupal en utilisant le module SSO de Discourse. J’ai suivi les instructions du module et ce sujet, mais malheureusement, l’URL « mydrupalwebsite.com/discourse/sso » renvoie une erreur 404.

Depuis la publication de ce sujet, de nouveaux paramètres ont été ajoutés au module, incluant une clé API, mais je ne sais pas quoi en faire.

Quelqu’un rencontre-t-il le même problème ?

Merci.

2 « J'aime »

Pouvez-vous partager un lien vers le module Drupal que vous utilisez ? S’il s’agit du module mentionné dans ce post, il a été mis à jour pour la dernière fois en mars 2015, il est donc très probable qu’il y ait des problèmes avec celui-ci.

Ce module SSO pour Drupal a été mis à jour en décembre 2019 : https://www.drupal.org/project/discourse_sso. Cela vaudrait la peine de l’essayer.

3 « J'aime »

J’utilise la deuxième option, avec la dernière version.

J’ai configuré le secret SSO et l’URL SSO. Lorsque j’essaie de me connecter, je vois qu’il y a bien des redirections comme prévu, mais /discourse/sso renvoie une page 404.

Le module dispose-t-il d’une documentation ? La procédure normale pour activer l’authentification unique (SSO) consiste à ajouter l’endpoint SSO au paramètre de site sso url de Discourse, à ajouter une clé secrète SSO au paramètre de site sso secret, puis à activer le paramètre de site enable sso. Lors de la configuration initiale, il est probable que vous souhaitiez également activer le paramètre de site verbose sso logging. Avec ce paramètre activé, vous obtiendrez des détails sur les erreurs SSO dans les journaux d’erreurs de votre site (trouvés dans Admin / Journaux / Journaux d’erreurs).

Une fois les paramètres Discourse activés, assurez-vous que l’URL de votre site Discourse et la clé sso secret sont ajoutées au site du fournisseur SSO.

D’après l’erreur que vous rencontrez, il semble probable que le paramètre de site enable sso n’ait pas été activé sur votre site Discourse.

Si vous rencontrez des problèmes pour accéder à votre site Discourse après avoir activé l’authentification unique, en tant qu’administrateur, vous pouvez contourner la connexion SSO en accédant à /u/admin-login sur votre site Discourse. Saisissez votre adresse e-mail d’administrateur dans le formulaire de la page. Un lien de connexion unique vous sera envoyé.

1 « J'aime »

Merci beaucoup pour votre aide. Malheureusement, le module ne dispose pas de plus de documentation que sur sa page de projet.

J’ai seulement vérifié « activer SSO », « journalisation verbose SSO », rempli les champs « URL SSO » avec « mywebsite/discourse/sso », et le champ « secret SSO ».

J’ai suivi les recommandations du module Drupal et saisi l’URL du forum Discourse et le secret SSO dans les champs correspondants.

Je reçois toujours une erreur 404 lorsque j’essaie de me connecter, avec cette URL :
https://mywebsite/discourse/sso?sso=bm9uY2U9MTJlMmI4ZWNjNzU4ZGE3YTg5ZWIwZDI2MmM5ZTUzOWEmcmV0dXJuX3Nzb191cmw9aHR0cHMlM0ElMkYlMkZmb3J1bXMuc2VnYS1tYWcuY29tJTJGc2Vzc2lvbiUyRnNzb19sb2dpbg%3D%3D&sig=96726cef3a6bb69a0863f66fb0e09ce3edb1ea77f3fd2d9e69cdaf932aede6a2

Voici le journal : verbose_sso.txt (5,9 Ko)

Si le problème ne vient pas de mes paramètres dans Discourse, je me tournerai à nouveau vers le développeur du module.

Merci encore.

J’ai examiné l’entrée du journal, mais elle ne montre pas l’erreur — il s’agit simplement de l’entrée du journal pour le début du processus SSO sur Discourse. Une autre entrée du journal devrait être créée peu après celle-ci, qui affichera l’erreur. Pourriez-vous essayer de repasser par le processus ? Il devrait y avoir des entrées de journal SSO détaillées pour chaque tentative de connexion. La première entrée montre le processus qui démarre sur Discourse, et la deuxième entrée concernera la façon dont Discourse a géré la réponse reçue de votre site web.

Il est possible qu’il y ait un autre message d’erreur pertinent qui ne commence pas par le texte Verbose SSO log. Examinez les entrées du journal autour du moment où vous avez effectué la demande SSO.

J’ai réessayé et j’ai obtenu trois messages de journal identiques, qui sont les mêmes que le précédent. Si je suis cette logique, cela doit signifier qu’il n’y a aucune réponse de mon site web.

Oui, cela me semble correct. Vous pourriez essayer d’examiner les requêtes qui sont effectuées en ouvrant l’inspecteur web de votre navigateur sur l’onglet Réseau. Sélectionnez l’option « Conserver les journaux » dans cet onglet et cliquez sur le lien de connexion sur votre site Discourse.

1 « J'aime »

Bonjour,

Voici une petite mise à jour à ce sujet : le module Discourse SSO a été corrigé et ne fait plus planter le site.

Cependant, il ne fonctionne toujours pas, car il est impossible de se déconnecter correctement une fois connecté. Un autre problème a été ouvert, au cas où quelqu’un souhaiterait l’examiner.

1 « J'aime »

Merci de nous avoir fait un retour à ce sujet ! Veuillez nous informer si le nouveau problème avec le module est résolu.

Ok, donc je poursuis mes investigations.

Y a-t-il une raison pour laquelle je ne pourrais pas me connecter à Discourse via SSO avec différents comptes ? Peut-être un paramètre de cookies ?

Lorsque SSO est activé, si je me déconnecte puis tente de me reconnecter, je suis automatiquement connecté au premier compte.

Je n’ai aucun problème lorsque je désactive SSO, cependant.

Il semble que la déconnexion de Discourse ne soit pas synchronisée avec la déconnexion du site du fournisseur SSO. Comme vous êtes toujours connecté au site du fournisseur SSO, la prochaine fois que vous cliquez sur le lien de connexion Discourse, vous êtes authentifié en fonction de votre connexion au fournisseur SSO.

Le paramètre de site « redirection de déconnexion » de Discourse peut être utilisé pour déconnecter les utilisateurs du site du fournisseur SSO. Lorsqu’un utilisateur se déconnecte de Discourse, il sera automatiquement redirigé vers cette URL. Le fournisseur SSO devra gérer l’URL pour déconnecter l’utilisateur. Je ne connais pas suffisamment Drupal pour savoir ce qui doit être fait pour mettre cela en œuvre.

1 « J'aime »

Ok, problème résolu. Pour résumer :

  • Ce module fonctionne bien, il y a simplement un bug avec l’image de profil des utilisateurs Drupal, mais un correctif est en cours,
  • Ce message est incorrect concernant les paramètres dans Discourse : l’URL du SSO doit se terminer par /discourse_sso, PAS par /discourse/sso
  • Si vous souhaitez pouvoir vous connecter avec plusieurs comptes différents, vous devez définir http://mywebsite/user/logout comme redirection de déconnexion et désactiver Ghostery dans votre navigateur pour votre site Discourse si vous utilisez ce plugin.

Merci pour votre aide, @simon !

2 « J'aime »