大家好,
我所在的组织正在使用 Discourse,有一个需求是启用基于 Azure AD 的单点登录(SSO)。请问是否有相关指南说明如何启用 Azure AD 的单点登录?
另外,我还有一个需求:通常情况下,在 Discourse 中使用用户名和密码进行身份验证时,用户可以自行注册并创建论坛账户。但在 Azure AD SSO 场景下,如何在用户登录时自动创建其个人资料,并根据 Azure AD 中的某个组将其映射到特定的论坛组?是否有一种方法可以在用户通过 Azure AD SSO 登录论坛时自动创建其账户,并根据 Azure AD 组名自动将用户关联到相应的组?
此致,
Sundaram
david
(David Taylor)
2021 年8 月 9 日 09:25
3
许多人通过使用 OpenID Connect 插件取得了成功。在此链接的第一篇帖子的底部,有一个关于 Azure AD 的简短章节:
摘要
Discourse OpenID Connect 允许使用 OpenID Connect 提供商作为 Discourse 的身份验证提供商。
安装指南
此插件已随 Discourse 核心捆绑。无需单独安装该插件。
功能
该插件旨在提供 规范 的最小实现。具体来说,它支持“授权码流程”。要开始使用,请遵循 插件安装说明 ,或联系您的托管服务提供商。
我们的 oauth2-basic 插件可用于连接某些 OpenID Connect 提供商(OpenID Connect 基于 OAuth2)。但是,此插件需要的手动配置要少得多,并且如果 JSON API 不可用,还可以利用 JWT“ID Token”。
配置将自动使用 OpenID Connect 发现文档 进行。根据规范,该文档应位于 <issuer domain>/.well-known/openid-configuration,但 Discourse 支持任何路径以允许不符合规范的实现(例如 Azure B2C)。发现文档会被缓存 10 分…
默认情况下,用户会在 Discourse 中点击“登录”,然后被重定向到 Azure。当他们返回 Discourse 时,会看到注册表单(与常规注册表单相同,只是没有密码字段)。您可以使用各种站点设置来控制注册行为。
Sundaram_Das:
将根据某些 Azure AD 组映射到特定组
目前尚不支持组同步。您可能可以通过构建与 Discourse API 的集成来实现某些功能。
david
(David Taylor)
2021 年8 月 10 日 12:29
6
关于群组同步?我们目前没有针对 Azure 或 OpenID Connect 的具体计划。不过,我们正在开发一个通用框架,这可能会为未来添加 Azure 支持打开大门。技术细节请参见:
@david Continuing the discussion from
As you probably can guess, I’m also keen to see a stable solution to this problem, which is not specific to the openid-connect plugin. Let’s see if we can figure out a way forward
To pick up on the point you’ve raised.
How do you decide which groups to add and remove the user from? And how does that affect manually adding/removing users from groups in Discourse itself?
a user authenticates via OIDC with groups ['group1', 'group2']
In the discourse UI…