自托管 Discourse 上的 SAML 插件

SAML 身份验证插件页面 在此处 指出:“SAML 身份验证仅在企业托管计划中提供。”

这是否意味着我无法在自行托管的免费版 Discourse 上使用 SAML 身份验证?理想情况下,我希望在我的 Discourse 实例上使用 Azure AD 身份验证。

您可以使用它。该插件可在 GitHub - discourse/discourse-saml: Support for SAML in Discourse · GitHub 获取。

该消息与我们托管服务相关。这意味着您无法在我们的标准版或企业版上使用 SAML 插件。

不过,对于 Azure AD,您其实并不需要 SAML。请参阅 Discourse OpenID Connect (OIDC) 以获取更简单的设置方案。文末附有针对 Azure AD 的说明。

那么,插件目录中列出的所有插件都可以在我自行托管的免费 Discourse 实例上使用吗?

当然可以!除了网站上列出的那些,还有更多#官方插件可供您免费使用。也别忘了查看#主题组件。

再次感谢您提供的补充信息。

因此,目标是让内部用户使用 Azure AD 进行身份验证/注册,而外部用户可以通过本地账户或其他账户注册插件进行注册。这也是我首先想到 SAML 的原因。

我能否限制 OpenID Connect 身份验证插件仅用于 Azure AD,并仅允许内部用户使用?

OpenID Connect 和 SAML 都属于“身份验证提供商”。通过在您的网站上配置其中一个,用户默认将能够在本地登录或身份验证提供商之间进行选择。Meta 就是一个很好的例子,您可以选择本地登录、Facebook、Google、GitHub 等。

在您的情况下,用户可以在本地登录和 OpenID 之间,或者本地登录和 SAML 之间进行选择。您可以根据自身需求选择更易于配置的方案。

使用任一插件均可实现此功能,因为谁可以登录将由 Azure AD 控制,而非您用于连接 Azure 的插件。

[quote=“jomaxro, 第 7 楼,主题:158544”]
使用任一插件均可实现此功能,因为登录权限由 Azure AD 管理,而非用于连接 Azure 的插件。[/quote]

不过,能否将其对外部用户隐藏呢?我不希望我们的客户尝试并误以为他们可以使用 Azure AD 登录。

是否可以为内部用户单独设立一个登录/注册页面(仅内部用户知晓),且该页面仅提供 Azure AD 认证作为唯一选项?

你可以通过 CSS 隐藏登录链接,这样用户就看不到它了。然后,你可以分享(或发布在内部门户网站上)一个直接链接,供内部用户使用 OpenID 或 SAML 登录。由于用户在访问登录页面时并未登录,因此无法判断他们是否为内部用户。

你也可以更改按钮标签,以避免混淆。例如,在下图中,我们将按钮标记为“内部用户”——“Discourse 工作人员”。如果不是 Discourse 工作人员尝试使用,那也无妨:

Joshua,我真心感谢你的及时且富有信息的帮助。非常感谢,祝一切平安!