bedgarsf
(Brian Edgar)
1
您好 - 我看到了一些关于此的旧帖子,但没有最新的。我也在 memberstack 论坛上问过这个问题……
我正在做一个项目来构建一个新的私人/封闭社区,并且有兴趣将 memberstack + webflow 与 SSO 集成到 discourse 作为社区平台。我的理解是,这现在可以通过自定义 SSO 集成来支持。我特别需要确保用户能够通过 webflow 页面进行身份验证,然后无缝导航到 Discourse 社区网站。我看到过一些评论表明这是可能的,我也看过 Memberstack SSO 文档,但我想看看是否有更多与 discourse 集成相关的具体信息。有人在使用 memberstack 来管理 Discourse 的 SSO 吗?我需要尽快进行测试。谢谢。
3 个赞
simon
2
是的,现在已经支持了!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 文档中的视频。该视频将引导您完成将 Memberstack OpenID Connect 登录配置为与 https://openidconnect.net/ 上的测试站点配合使用的过程。完成此操作后,为 Discourse 设置 OpenID Connect 身份验证应该是一个简单的过程。
如果已有 Discourse 站点配置了与 Memberstack 的 OpenID Connect 身份验证,我们很乐意听取他们的经验。
5 个赞
bedgarsf
(Brian Edgar)
3
@simon 非常感谢您的输入并确认这应该可行!在深入研究 Webflow 之前,我希望能得到这种验证。我正在使用它来运行一个试点项目,并希望在试点期间测试 Memberstack + Webflow + Discourse。所以这只是为了验证 MVP,而且我很有可能在长期内转向完全不同的东西(除了 Discourse……肯定会保留它!)。
由于 Memberstack 的 OpenID 支持相当新,我很乐意听听是否有人在这里实际在生产环境中使用过这种设置。
2 个赞
Sy1
(Syed )
4
您好!您是否能够为这个问题实现一个可行的解决方案?OpenID 要求 Discourse 拥有一个企业账户,费用为每月 300 美元!我希望使用 DiscourseConnect SSO 来实现您提到的 Webflow 和 Memberstack 的功能!
simon
5
据我所知,OpenID Connect 已实现了一个可行的解决方案。
我不认为 Webflow 允许你在网站中添加服务器端代码。如果这是正确的,那么将无法将 DiscourseConnect 与 Webflow 一起使用。
@JammyDodger,这个主题可以重命名为“Memberstack + Webflow + Discourse OpenID Connect”。
1 个赞
大家好!我成功地通过我的 Memberstack 登录实现了 Discourse 的 SSO!一旦我通过 OpenID 登录到我的 Discourse 论坛,就会弹出一个窗口让我“在论坛上创建我的账户”。这是应该发生的,还是应该直接登录我?我已经附上了我登录 Memberstack 信息后弹出的截图。提前感谢!
simon
8
太棒了!
从你的截图来看,电子邮件地址似乎没有填入登录表单。我有一段时间没看 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 上的帐户。
非常感谢 Simon!在“openid_connect_authorize_scope”中添加额外的项目解决了问题,启用“auth skip create confirm”可以跳过弹出窗口直接进入论坛主页!我启用了“openid connect overrides email”——这有什么作用?
另外,有没有办法将 Discourse 上的“注册”按钮设置为导航到我网站上的自定义注册页面?目前点击“注册”会通过 OpenID 登录,但我希望它链接到我网站上的特定页面。
非常感谢您的帮助,这对我来说非常有价值!
simon
10
好的,对于 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 允许对此进行配置,但这需要您联系他们才能找出答案。
另一种可能的方法是,可能可以在 Discourse 标题中添加一个指向自定义页面的链接。也许可以使用这个主题组件:https://meta.discourse.org/t/custom-header-links/90588。理想情况下,您可以使用一些 CSS 来隐藏已登录用户的链接。
谢谢 Simon!我启用了 openid 覆盖 email 并禁用了 email 可编辑,感谢你的指导!
关于注册按钮的建议很好,我会研究一下怎么做!
1 个赞
bedgarsf
(Brian Edgar)
12
@ryanshah112 我在(@simon 的大力帮助下)成功地将此作为一个概念验证 (POC) 实现了,但我放弃了微软的设置,现在我暂停了这个项目几个月。我需要重新启动它。我发现微软的 openID 集成效果不是很好。首先,存在双重登录问题,这使得入职流程不理想——它不仅要求授权应用程序,还会让用户登录。我想设置一个自定义的入职流程,让用户在 Webflow 网站上登录,并能够无缝地导航到 Discourse。我确实通过表单、Zapier 和 Airtable 使用 API 创建 Discourse 用户的方式实现了这一点。作为一个 POC,这很酷,但并不是我真正想作为生产系统使用的东西。当我重新开始时,我可能不会依赖微软作为身份提供商 (IDP),而是会使用类似 Wized 和 Supabase 的东西来构建它。我认为微软 + Discourse 的组合如果你能接受一些限制的话,效果会不错。
1 个赞
river
(River)
13
您能告诉我话语连接 URL 是什么吗?有授权令牌端点、令牌端点和令牌密钥端点。
simon
14
嗨 River,如果你不确定 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 站点设置需要设置为:
(假设这是正确的,它应该会被添加到 Discourse OpenID Connect 主题底部的“提供商特定说明”部分。)
这是在这里引起无休止困惑的原因,但 DiscourseConnect 指的是一个完全独立的身份验证协议。你所需的信息在你之前链接的 Discourse OpenID connect 主题中。
river
(River)
15
Simon,您好:
感谢您为我澄清。是否有方法将 Memberstack 与 DiscourseConnect 连接起来?
simon
16
我几乎可以肯定,无法将 DiscourseConnect 与 Memberstack 一起使用。要使其正常工作,您需要能够为您的 Memberstack 网站添加一些服务器端代码。我认为这不可能做到。
也许值得就此询问 Memberstack。他们可以像 Memberful 所做的那样,为他们所有的网站实现 DiscourseConnect:Page Not Found 
嗨 River!我同意 Simon 的观点,无法使用 DiscourseConnect,您需要改用 OpenID。如果您在通过 OpenID 配置 Memberstack x Discourse 时需要任何帮助,我很乐意帮忙,因为在 Simon 的协助下我已成功配置。如果您通过 Discourse 托管,您将需要“Business”套餐。
bedgarsf
(Brian Edgar)
18
@ryanshah112 和 @river - 仅供参考 - 当我开始这个帖子时,我有一个硬性要求是使用 Webflow。Memberstack 是唯一可行的通过 OpenID 进行 SSO 的选项,我大概有 6 个月没关注它了,所以有些东西可能已经改进了。但如果你愿意考虑 Wordpress,DiscourseConnect 有很多好处。
Ryan - 我开始时使用的是 Business 计划来测试它,但在几个月后我切换到了 Self hosted,因为我除了 OpenID 之外,真的不需要“商业”级别的打包/功能来进行我的 POC。根据你的需求,你可能想考虑一下,如果你在设置方面需要帮助,我推荐 @pfaffman。非常简单。
2 个赞