Memberstack + Webflow + Discourse OpenID Connect

こんにちは。この件に関して古い投稿はいくつか拝見しましたが、最新の情報は見つかりませんでした。Memberstackフォーラムでも同じ質問をしました。

新しいプライベート/クローズドコミュニティを構築するプロジェクトに取り組んでおり、コミュニティプラットフォームとしてMemberstack + WebflowとDiscourseへのSSOを使用することに興味があります。カスタムSSO統合により、これがサポートされるようになったと理解しています。具体的には、ユーザーがWebflowページで認証され、その後Discourseコミュニティサイトにシームレスに移動できることを確認する必要があります。それが可能であることを示唆するコメントや、MemberstackのSSOドキュメントを拝見しましたが、Discourse統合に関するより具体的な情報があるか確認したいです。Memberstackを使用してDiscourseのSSOを管理し、このようなセットアップを使用している方はいらっしゃいますか?できるだけ早くテストする必要があります。よろしくお願いします。

「いいね!」 3

はい、これは現在サポートされています!Memberstackは、MemberstackをOpenID Connectプロバイダーとして使用できるようになりました:https://docs.memberstack.com/hc/en-us/articles/8161104982043-Custom-SSO-Integrations。これにより、ユーザーはMemberstack経由でDiscourseサイトにログインできるようになります。Discourseサイトを、OpenID Connectのみがサイトで利用可能なログインオプションとなるように設定すると、WebflowページからDiscourseにログインするプロセスはユーザーにとってシームレスになります。(注意:OpenID Connectログインが機能していることを確認するまで、ユーザー名/パスワードでDiscourseサイトにログインするオプションを削除しないでください。)

これが機能するには、DiscourseサイトにDiscourse OpenID Connectプラグインがインストールされている必要があります。そのプラグインの設定に関する詳細はここにあります:https://meta.discourse.org/t/discourse-openid-connect/103632。

DiscourseサイトのOpenID Connectログインを設定しようとする前に、リンクしたMemberstackドキュメントのビデオを視聴することをお勧めします。OpenID Connect Playground OpenID Connectログインを設定するプロセスが説明されています。それが完了すれば、DiscourseのOpenID Connect認証の設定は簡単なプロセスになるはずです。

MemberstackとOpenID Connect認証を設定した既存のDiscourseサイトがあれば、ぜひお聞かせください。

「いいね!」 5

@simon 入力と、これが機能するはずだという確認をありがとうございます!Webflowでこれ以上進む前に、このような検証を得たいと思っていました。パイロットプログラムの実行にこれを使用しており、パイロット中にMemberstack + Webflow + Discourseをテストしたいと考えています。そのため、これはMVPを実証するためだけであり、長期的には(Discourse以外は…間違いなく維持します!)まったく異なるものに移行する可能性も十分にあります。

このMemberstack OpenIDサポートは比較的新しいため、実際に本番環境でこの種のセットアップを使用している人がいれば、ぜひお聞きしたいと思います。

「いいね!」 2

こんにちは!この問題に対する動作するソリューションを実装できましたか?OpenIDはDiscourseのビジネスアカウントを必要としますが、それは月額$300です!WebflowとMemberstackで言及したことを達成するためにDiscourseConnect SSOを使用できることを願っていました!

私の知る限り、OpenID Connect を使用した動作するソリューションが実装されました。

Webflow では、サイトにサーバーサイドコードを追加することはできないと思います。それが正しい場合、Webflow で DiscourseConnect を使用することはできません。

@JammyDodger、このトピックは「Memberstack + Webflow + Discourse OpenID Connect」に改名できます。

「いいね!」 1

皆さん、こんにちは!Memberstackのログイン経由でDiscourseのSSOを機能させることができました!OpenID経由でDiscourseフォーラムにログインすると、「フォーラムでアカウントを作成する」というポップアップが表示されます。これは想定通りの動作でしょうか、それとも直接ログインされるべきでしょうか?ログイン後に表示されるポップアップのスクリーンショットを添付しました。よろしくお願いします!

素晴らしいですね!

スクリーンショットを見る限り、ログインフォームにメールアドレスが入力されていないようです。Memberstackのビデオ(https://docs.memberstack.com/hc/en-us/articles/8161104982043-Custom-SSO-Integrations)を見てからしばらく経ちますが、Discourseの openid_connect_authorize_scope サイト設定を openid email profile に設定する必要があると思います。これにより、メールアドレスとユーザー名の両方がDiscourseに送信されるペイロードに含まれるようになります。

現在テストできる環境はありませんが、アカウント作成ポップアップをスキップするために、これらの設定を有効にする必要があるかもしれません(そうしないと、フィールドは入力されますが、ユーザーは「アカウントを作成」ボタンをクリックする必要があります)。

  • auth skip create confirm (アカウント作成ポップアップをスキップするには必ず有効にする必要があります)
  • auth overrides email
  • auth overrides username
  • auth overrides name

これをテストする最も簡単な方法は、Webflowサイトに管理者以外のユーザーアカウントがある場合です。そのユーザーとして複数回ログインを試み、期待どおりに機能しない場合はDiscourseでそのアカウントを削除できます。

サイモン、本当にありがとうございます!「openid_connect_authorize_scope」に追加の項目を追加したことで修正され、「auth skip create confirm」を有効にすることでポップアップがスキップされ、フォーラムのホームページに直接移動します!「openid connect overrides email」を有効にしましたが、これは何をするのですか?

また、Discourse の「サインアップ」ボタンを、私のウェブサイトにあるカスタムサインアップページに移動させる方法はありますか?現在、「サインアップ」をクリックすると OpenID 経由でログインしますが、ウェブサイトの特定のページにリンクさせたいです。

ご協力いただき、本当にありがとうございました。非常に役立ちました!

はい、OpenID Connectの場合、設定名は「openid connect overrides email」であり、「auth overrides email」ではありません。これを有効にすると、ユーザーがOpenID Connect経由でDiscourseにログインするたびに、Discourseのメールアドレスは、OpenID Connect認証プロバイダーサイトで使用しているメールアドレスの値に設定されます。つまり、ユーザーがDiscourseでメールアドレスを変更した場合でも、Memberstackで使用しているメールアドレスの値に自動的にリセットされます。

メールアドレスが認証プロバイダーと同期しなくなる問題を回避するために、「email editable」サイト設定を無効にすることもできます。したがって、「email editable」を無効にして「openid connect overrides email」を有効にすると、ユーザーはMemberstackでメールアドレスを変更してからMemberstack経由でDiscourseにログインすることでしか、メールアドレスを変更できなくなります。

そうは思いません。誰かがDiscourseの「サインアップ」ボタンをクリックすると、DiscourseはMemberstackによって提供されるauthorization_endpointにリダイレクトします。Memberstackがこれを設定可能にしている可能性はありますが、確認するにはMemberstackに問い合わせる必要があります。

別の可能なアプローチとして、Discourseヘッダーにカスタムページへのリンクを追加できる可能性があります。おそらくこのテーマコンポーネントを使用します: https://meta.discourse.org/t/custom-header-links/90588。理想的には、CSSを使用してログイン中のユーザーにはリンクを非表示にできるでしょう。

サイモン、ありがとうございます!openidのオーバーライドをメールに有効にし、メールの編集を無効にしました。ご案内いただき感謝いたします!

サインアップボタンに関するご提案も良いですね。検討してみます!

「いいね!」 1

@ryanshah112 @simon の多大な協力を得て、これを PoC として機能させることができましたが、MS のセットアップは採用しないことに決め、プロジェクトを数か月間一時停止しました。再び開始する必要があります。MS の openID 統合はあまりうまく機能しないことがわかりました。まず、二重ログインの問題があり、オンボーディングフローが理想的ではなくなりました。アプリの承認を求めるだけでなく、ユーザーにログインを要求します。Webflow サイトでユーザーがログインし、Discourse にシームレスに移動できるように、カスタムオンボーディングフローを設定したかったのです。API を介して Discourse ユーザーを作成することにより、フォーム、Zapier、Airtable を使用してこれを機能させることができました。PoC としては非常にクールでしたが、本番システムとしてはあまり望ましいものではありませんでした。再び開始するときは、IDP として MS に依存するのではなく、Wized と Supabase などを使用して構築する可能性が高いです。MS と Discourse の連携は、いくつかの制限で問題ない場合はうまく機能すると思います。

「いいね!」 1

ディスコースコネクトのURLを教えていただけますか? 承認トークンエンドポイント、トークンエンドポイント、トークンキーエンドポイントがあります。

リバーさん、OpenID Connectについて不明な点があれば、MemberstackのOpenID Connectの動画を視聴し、チュートリアル(https://docs.memberstack.com/hc/en-us/articles/8161104982043-Custom-SSO-Integrations)を試すことをお勧めします。私もそうしました。

Discourse側でOpenID Connectを設定するには、関連情報がこちら(https://meta.discourse.org/t/discourse-openid-connect/103632)にあります。そのトピックには記載されていませんが、Memberstackに固有の詳細として、Discourseの`openid_connect_authorize_scope`サイト設定を以下に設定する必要があると思います。

  • openid email profile

(それが正しければ、「Discourse OpenID Connect」トピックの最下部にある「Provider specific notes」セクションに追加されるはずです。)

これはここで終わりのない混乱の原因となっていますが、DiscourseConnectは完全に別の認証プロトコルを指します。必要な情報は、私がリンクしたDiscourse OpenID Connectトピックにあります。

サイモン様

ご説明いただきありがとうございます。MemberstackとDiscourseConnectを連携させる方法はありますでしょうか?

DiscourseConnect を Memberstack で使用することは、ほぼ不可能だと思います。機能させるには、Memberstack サイトにサーバーサイドコードを追加できる必要があります。それはできないと思います。

Memberstack に問い合わせてみる価値はあるかもしれません。彼らは、Memberful が行ったことと同様の方法で、すべてのサイトで DiscourseConnect を実装できる可能性があります: Page Not Found :slight_smile:

こんにちは、リバーさん!サイモンが言うように、DiscourseConnectは使用できず、代わりにOpenIDを使用する必要があります。OpenID経由でMemberstack x Discourseを設定するのに何かお手伝いが必要な場合は、サイモンの助けを借りてこれを機能させることができたので、喜んでお手伝いします!Discourseホスティングを利用する場合は、「Business」プランが必要です。

@ryanshah112 および @river - ご参考までに - このスレッドを開始したとき、Webflow を使用するという厳しい要件がありました。SSO を OpenID 経由で実現するには Memberstack が唯一の現実的な選択肢であり、6 か月ほど見ていないため、状況が改善されている可能性があります。しかし、WordPress の利用を検討する気があれば、DiscourseConnect には多くの利点があります。

Ryan - テストのために Business プランから始めましたが、OpenID 以外に POC で「ビジネス」レベルのパッケージング/機能は必要なかったので、数か月後に Self hosted に切り替えました。必要に応じて検討する価値があるかもしれません。設定のヘルプが必要な場合は @pfaffman をお勧めします。非常に簡単です。

「いいね!」 2