本指南介绍在启用外部身份验证提供商时,如何在 Discourse 中自动配置用户账户,以便在不显示注册页面的情况下自动创建用户。
所需用户级别:管理员
通过外部身份验证自动配置用户账户
当您通过 DiscourseConnect、OpenID Connect 插件、OAuth2 Basic 插件、SAML 或其他身份验证提供商将 Discourse 连接到外部身份提供商时,Discourse 会在首次登录时创建用户账户。默认情况下,即使提供商已提供所有必要详细信息(电子邮件、用户名和姓名),Discourse 仍会在创建账户之前显示注册页面。
自动配置省去了这一步骤。启用正确的设置后,Discourse 会在后台静默创建账户并直接登录用户,从而提供无缝体验。
启用自动配置
要跳过注册步骤,您需要启用 auth_skip_create_confirm 站点设置。该设置位于 管理员 > 所有站点设置 > 登录页面。
可选:启用覆盖设置
这些设置告诉 Discourse 信任身份提供商提供的值并直接使用它们,而无需用户审核。导航至 管理员 > 所有站点设置 > 登录页面,并勾选以下选项:
| 设置 | 描述 |
|---|---|
auth_overrides_username |
在每次登录时直接使用提供商的用户名,并防止用户在本地更改它。适用于所有身份验证提供商。 |
auth_overrides_email |
在每次登录时直接使用提供商的电子邮件,并防止用户在本地更改它。适用于所有身份验证提供商。 |
auth_overrides_name |
在每次登录时直接使用提供商的全名,并防止用户在本地更改它。适用于所有身份验证提供商。 |
auth_overrides_avatar |
在每次登录时直接使用提供商的头像,并防止用户在本地更改它。适用于所有身份验证提供商。 |
OAuth2 Basic、OpenID Connect 和 SAML 插件也有各自插件特定的覆盖设置(
oauth2_overrides_email、openid_connect_overrides_email、saml_sync_email)。它们的工作方式与全局auth_overrides_email设置相同,但仅适用于各自的提供商。对于大多数设置,上述全局设置已足够。
常见问题
这些设置是否适用于所有身份验证插件,还是仅适用于 DiscourseConnect?
auth_skip_create_confirm 和 auth_overrides * 设置适用于所有外部身份验证提供商,包括 DiscourseConnect、OpenID Connect、OAuth2 Basic、SAML 以及基于 Discourse 身份验证框架构建的任何其他插件。
我可以在用户登录之前预先创建账户吗?
可以,但仅在使用 DiscourseConnect 时。按照 Sync DiscourseConnect user data with the sync_sso route 中的描述使用 sync_sso API 路由。
DiscourseConnect 与 OAuth2/OIDC 插件有什么区别?
DiscourseConnect 是 Discourse 自己的自定义 SSO 协议。它让您的外部站点完全控制 Discourse 账户,包括推送组成员身份、覆盖字段和通过 API 预先创建账户的能力。OAuth2 和 OpenID Connect 插件使用行业标准协议,这使得它们更容易以最小配置连接到第三方身份提供商。