Memberstack + Webflow + Discourse OpenID Connect

Bonjour - J’ai vu quelques anciens messages à ce sujet, mais rien de récent. J’ai également posé cette question sur le forum Memberstack…

Je travaille sur un projet de construction d’une nouvelle communauté privée/fermée et je suis intéressé par l’utilisation de Memberstack + Webflow et du SSO pour Discourse en tant que plateforme communautaire. J’ai l’impression que cela est désormais pris en charge avec une intégration SSO personnalisée. Je dois spécifiquement m’assurer que les utilisateurs peuvent être authentifiés sur les pages Webflow, puis naviguer de manière transparente vers le site communautaire Discourse. J’ai vu des commentaires suggérant que c’est possible et j’ai consulté la documentation SSO de Memberstack, mais je cherche à savoir s’il existe des informations plus spécifiques concernant l’intégration avec Discourse. Quelqu’un utilise-t-il une configuration comme celle-ci en utilisant Memberstack pour gérer le SSO pour Discourse ? J’ai besoin de le tester dès que possible. Merci.

3 « J'aime »

Oui, c’est maintenant pris en charge ! Memberstack vous permet désormais d’utiliser Memberstack comme fournisseur OpenID Connect : https://docs.memberstack.com/hc/en-us/articles/8161104982043-Custom-SSO-Integrations. Cela permettra aux utilisateurs de se connecter à votre site Discourse via Memberstack. Si vous configurez votre site Discourse de manière à ce qu’OpenID Connect soit la seule option de connexion disponible sur le site, la connexion à Discourse depuis vos pages Webflow sera un processus transparent pour vos utilisateurs. (Remarque : ne supprimez pas l’option de connexion à votre site Discourse avec un nom d’utilisateur/mot de passe tant que vous n’avez pas confirmé que les connexions OpenID Connect fonctionnent.)

Pour que cela fonctionne, vous devrez avoir le plugin Discourse OpenID Connect installé sur votre site Discourse. Les détails sur la configuration de ce plugin se trouvent ici : Discourse OpenID Connect (OIDC).

Je vous recommande de regarder la vidéo dans la documentation Memberstack que j’ai liée avant d’essayer de configurer les connexions OpenID Connect pour votre site Discourse. Elle vous guide à travers le processus de configuration des connexions OpenID Connect de Memberstack pour fonctionner avec le site de test à l’adresse https://openidconnect.net/. Une fois que vous aurez fait cela, la mise en place de l’authentification OpenID Connect pour Discourse devrait être un processus simple.

S’il existe des sites Discourse qui ont configuré l’authentification OpenID Connect avec Memberstack, ce serait formidable d’avoir leur retour.

5 « J'aime »

@simon Merci beaucoup pour votre contribution et pour avoir confirmé que cela devrait fonctionner ! J’espérais obtenir ce type de validation avant d’aller trop loin avec Webflow. J’utilise ceci pour exécuter un programme pilote et je veux tester Memberstack + Webflow + Discourse pendant le pilote. Donc, ceci est juste pour prouver le MVP et il est très possible que je passe à quelque chose de très différent à long terme (sauf Discourse… je vais certainement le garder !).

Étant donné que ce support OpenID de Memberstack est assez récent, je serais heureux d’entendre s’il y a quelqu’un ici qui utilise réellement ce type de configuration en production.

2 « J'aime »

Salut ! Avez-vous pu mettre en œuvre une solution fonctionnelle pour cela ? OpenID nécessite un compte professionnel sur Discourse, ce qui coûte 300 $/mois ! J’espérais utiliser DiscourseConnect SSO pour réaliser ce que vous avez mentionné avec Webflow et Memberstack !

Pour autant que je sache, une solution fonctionnelle a été mise en œuvre avec OpenID Connect.

Je ne pense pas que Webflow vous permette d’ajouter du code côté serveur à votre site. Si c’est le cas, il ne sera pas possible d’utiliser DiscourseConnect avec Webflow.

@JammyDodger, ce sujet pourrait être renommé en « Memberstack + Webflow + Discourse OpenID Connect ».

1 « J'aime »

Salut à tous ! J’ai réussi à configurer l’authentification unique (SSO) pour Discourse via ma connexion Memberstack ! Une fois que je me connecte via OpenID à mon forum Discourse, une fenêtre pop-up apparaît pour « créer mon compte » sur le forum. Est-ce normal ou devrais-je être connecté directement ? J’ai inclus une capture d’écran de la fenêtre pop-up que j’obtiens après m’être connecté avec mes informations Memberstack. Merci d’avance !

C’est super !

D’après votre capture d’écran, il semble que votre adresse e-mail ne soit pas remplie dans le formulaire de connexion. Cela fait un moment que je n’ai pas regardé la vidéo de Memberstack (https://docs.memberstack.com/hc/en-us/articles/8161104982043-Custom-SSO-Integrations), mais je pense que le paramètre du site Discourse openid_connect_authorize_scope doit être défini sur openid email profile afin que l’adresse e-mail et le nom d’utilisateur soient inclus dans la charge utile envoyée à Discourse.

Je n’ai pas la possibilité de tester cela pour le moment, mais vous pourriez avoir besoin d’activer ces paramètres pour ignorer la fenêtre pop-up de création de compte (sinon, les champs seront toujours remplis, mais les utilisateurs devront cliquer sur le bouton “Créer votre compte”) :

  • auth skip create confirm (doit absolument être activé pour ignorer la fenêtre pop-up de création de compte)
  • auth overrides email
  • auth overrides username
  • auth overrides name

Le moyen le plus simple de tester cela est si vous avez un compte non administrateur sur votre site Webflow. Ainsi, vous pourrez essayer de vous connecter plusieurs fois en tant qu’utilisateur, et il suffira de supprimer son compte sur Discourse si cela ne fonctionne pas comme prévu.

Merci BEAUCOUP Simon ! L’ajout de ces éléments supplémentaires dans « openid_connect_authorize_scope » a résolu le problème et l’activation de « auth skip create confirm » ignore le popup et renvoie directement à la page d’accueil du forum ! J’ai activé « openid connect overrides email » – qu’est-ce que cela fait ?

Et y a-t-il un moyen de configurer le bouton « S’inscrire » sur Discourse pour qu’il renvoie vers une page d’inscription personnalisée que j’ai sur mon site web ? Actuellement, cliquer sur « S’inscrire » me connecte via OpenID, mais j’aimerais que cela renvoie vers une page spécifique de mon site web.

Merci pour toute votre aide, elle a été inestimable !

D’accord, pour OpenID Connect, le paramètre s’appelle openid connect overrides email, pas auth overrides email. Lorsqu’il est activé, chaque fois qu’un utilisateur se connecte à Discourse via OpenID Connect, son e-mail Discourse sera défini sur la valeur de l’adresse e-mail qu’il utilise sur le site du fournisseur d’authentification OpenID Connect. Cela signifie que si un utilisateur a modifié son adresse e-mail sur Discourse, elle sera automatiquement réinitialisée à la valeur de l’adresse e-mail qu’il utilise sur Memberstack.

Vous pouvez en fait désactiver le paramètre du site email editable pour éviter tout problème de désynchronisation des e-mails avec le fournisseur d’authentification. Donc, si vous désactivez email editable et activez openid connect overrides email, les utilisateurs ne pourront changer leur adresse e-mail qu’en la modifiant sur Memberstack, puis en se connectant à Discourse via Memberstack.

Je ne pense pas. Après qu’une personne a cliqué sur le bouton « S’inscrire » sur Discourse, Discourse la redirigera vers l’authorization_endpoint fourni par Memberstack. Il est possible que Memberstack permette de configurer cela, mais vous devrez les contacter pour le savoir.

Une autre approche possible est qu’il pourrait être possible d’ajouter un lien vers la page personnalisée dans l’en-tête de Discourse. Peut-être avec ce composant de thème : Custom Header Links. Idéalement, vous pourriez masquer le lien aux utilisateurs connectés avec du CSS.

Merci Simon ! J’ai activé les remplacements openid pour l’e-mail et désactivé la modification de l’e-mail, merci de m’avoir guidé !

C’est une bonne idée concernant le bouton d’inscription, je vais voir comment faire !

1 « J'aime »

@ryanshah112 J’ai réussi à faire fonctionner cela comme une preuve de concept (avec beaucoup d’aide de @simon) mais j’ai décidé de ne pas utiliser la configuration MS et j’ai mis le projet en pause pendant quelques mois. Je dois le relancer. J’ai trouvé que l’intégration MS openID ne fonctionnait pas très bien. D’une part, il y a le problème de la double connexion qui rendait le flux d’intégration moins qu’idéal - il ne demande pas seulement l’autorisation de l’application, il fait aussi se connecter l’utilisateur. Je voulais mettre en place un flux d’intégration personnalisé où l’utilisateur se connectait sur le site Webflow et pouvait naviguer vers Discourse de manière transparente. J’ai réussi à le faire en utilisant des formulaires, Zapier, Airtable en créant un utilisateur Discourse via l’API. C’était assez cool comme preuve de concept mais pas vraiment quelque chose que je voulais faire comme système de production. Quand je recommencerai, je ne m’appuierai probablement pas sur MS comme fournisseur d’identité, mais je le construirai plutôt en utilisant quelque chose comme Wized avec Supabase ou quelque chose de similaire. Je pense que la combinaison MS + Discourse fonctionnerait bien si vous êtes d’accord avec certaines limitations.

1 « J'aime »

Pouvez-vous me dire quelle sera l’URL de connexion du discours ? Il y a un point de terminaison de jeton d’autorisation, un point de terminaison de jeton et un point de terminaison de clés de jeton.

Salut River, si tu n’es pas sûr de ce qu’est OpenID Connect, je te suggère de regarder la vidéo Memberstack sur OpenID Connect et de suivre le tutoriel : https://docs.memberstack.com/hc/en-us/articles/8161104982043-Custom-SSO-Integrations. C’est ce que j’ai fait.

Pour configurer OpenID Connect côté Discourse, tu trouveras les informations pertinentes ici : Discourse OpenID Connect (OIDC). Un détail spécifique à Memberstack qui n’est pas mentionné dans ce sujet est que je pense que le paramètre du site Discourse openid_connect_authorize_scope doit être défini sur :

  • openid email profile

(En supposant que ce soit correct, cela devrait être ajouté à la section « Notes spécifiques au fournisseur » en bas du sujet Discourse OpenID Connect.)

C’est une source de confusion sans fin ici, mais DiscourseConnect fait référence à un protocole d’authentification complètement différent. Les informations dont tu as besoin se trouvent dans le sujet Discourse OpenID connect que j’ai lié.

Salut Simon,
Merci de m’avoir clarifié les choses. Existe-t-il une méthode pour connecter Memberstack à DiscourseConnect ?

Je suis presque certain qu’il n’est pas possible d’utiliser DiscourseConnect avec Memberstack. Pour que cela fonctionne, vous devriez pouvoir ajouter du code côté serveur à votre site Memberstack. Je ne pense pas que cela soit possible.

Cela vaut peut-être la peine de demander à Memberstack. Ils pourraient implémenter DiscourseConnect pour tous leurs sites d’une manière similaire à ce que Memberful a fait : Integrate Discourse with Memberful - Memberful. Je suis disponible pour des missions de conseil s’ils souhaitent de l’aide à ce sujet :slight_smile:

Salut River ! Je suis d’accord avec Simon sur le fait qu’il n’est pas possible d’utiliser DiscourseConnect et que vous devrez plutôt utiliser OpenID. Si vous avez besoin d’aide pour configurer Memberstack x Discourse via OpenID, je serai ravi de vous aider car j’ai réussi à faire fonctionner cela avec l’aide de Simon ! Vous aurez besoin du plan “Business” si vous passez par l’hébergement Discourse.

@ryanshah112 et @river - Pour information - lorsque j’ai commencé ce fil de discussion, j’avais une exigence stricte d’utiliser Webflow. Memberstack était vraiment la seule option viable pour le SSO via OpenID et je ne l’ai pas regardé depuis peut-être 6 mois, donc certaines choses ont peut-être été améliorées. Mais si vous êtes prêt à envisager Wordpress, il y a beaucoup d’avantages avec DiscourseConnect.

Ryan - J’ai commencé avec le plan Business pour le tester, mais je suis passé à l’auto-hébergement après quelques mois car je n’avais vraiment pas besoin d’un emballage / de fonctionnalités de niveau « business » pour mon POC, autre que OpenID. Selon vos besoins, vous pourriez envisager cela et je recommande @pfaffman si vous avez besoin d’aide pour la mise en place. Super facile.

2 « J'aime »