以下是配置 Discourse 以支持使用 OneLogin 的 SAML 进行登录和注册的步骤。
配置 OneLogin
创建 OneLogin 账户
访问 OneLogin 并创建一个账户。
创建新应用:SAML Test Connector (IdP w/attr)
从您的仪表板创建新应用。
搜索 SAML Test Connector (IdP w/attr)
配置应用
假设我们的 Discourse 实例 URL 为 http://discourse.example.com。现在进行配置。
切换到 Configuration 选项卡并填写以下详细信息:
- Audience:
http://discourse.example.com - Recipient:
http://discourse.example.com/auth/saml/callback - ACS (Consumer) URL Validator:
^http:\\/\\/discourse\\.example\\.com\\/auth\\/saml\\/callback\\/$ - ACS (Consumer) URL:
http://discourse.example.com/auth/saml/callback
复制证书信息和 SAML 2.0 端点
切换到 SSO 选项卡。
点击证书下方的 View Details 链接,复制 SHA fingerprint 和 X.509 Certificate。请记下这些信息,稍后在配置 Discourse 应用时会用到。
复制并记下 SAML 2.0 Endpoint (HTTP) URL。
配置 Discourse
安装 discourse-saml 插件
按照 此指南 安装 discourse-saml 插件。
配置 discourse-saml 插件
该插件可以通过两种方式配置:
选项 1:站点设置(推荐)
安装并重建后,进入 Discourse 管理面板,导航至 Admin → Plugins → SAML。启用 saml_enabled 设置并配置以下内容:
- saml_target_url: 从 OneLogin SSO 选项卡复制的
SAML 2.0 Endpoint URL - saml_cert_fingerprint: 从 OneLogin SSO 选项卡 → 证书部分复制的
SHA fingerprint - saml_cert: 从 OneLogin SSO 选项卡 → 证书部分复制的
X.509 Certificate - saml_log_auth: 启用以进行调试
选项 2:环境变量
或者,您可以通过 app.yml 中的环境变量配置插件。请注意,当使用环境变量时,所有 SAML 站点设置将在管理 UI 中隐藏。
编辑 app.yml
cd /var/discourse
vim containers/app.yml
并在 env 部分添加以下变量:
DISCOURSE_SAML_TITLE: "Example SAML"
DISCOURSE_SAML_TARGET_URL: {SAML 2.0 Endpoint URL}
DISCOURSE_SAML_LOG_AUTH: "true"
DISCOURSE_SAML_CERT_FINGERPRINT: {SHA fingerprint}
DISCOURSE_SAML_CERT: {X.509 Certificate without line breaks}
- 将 {SAML 2.0 Endpoint URL} 替换为从 OneLogin SSO 选项卡复制的
SAML 2.0 Endpoint URL - 将 {SHA fingerprint} 替换为从 OneLogin SSO 选项卡 → 证书部分复制的
SHA fingerprint - 将 {X.509 Certificate without line breaks} 替换为从 OneLogin SSO 选项卡 → 证书部分复制的
X.509 Certificate,请注意必须没有换行符,并移除开始和结束标记
重建应用
为使更改生效,请重建应用
cd /var/discourse
./launcher rebuild app
完成!
现在您应该能够使用 OneLogin 的 SAML 进行登录。




