本指南介绍了如何在启用外部身份验证提供程序时自动配置 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 插件采用行业标准协议,这使得它们更容易与第三方身份提供程序连接,且配置最少。