启用 SSO 时自动配置用户账户

:bookmark: 本指南介绍了如何在启用外部身份验证提供程序时自动配置 Discourse 中的用户账户,从而让用户无需经过注册页面即可自动创建账户。

:person_raising_hand: 所需用户等级:管理员

使用外部身份验证自动配置用户账户

当您通过 DiscourseConnectOpenID 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 每次登录时直接使用提供程序的头像,并防止用户在本地修改。适用于所有身份验证提供程序。

:information_source: OAuth2 Basic、OpenID Connect 和 SAML 插件也拥有各自的插件特定覆盖设置(oauth2 overrides emailopenid connect overrides emailsaml sync email)。它们的工作方式与全局 auth overrides email 设置相同,但仅适用于各自的提供程序。对于大多数配置,上述全局设置已足够。


常见问题解答

这些设置适用于所有身份验证插件,还是仅适用于 DiscourseConnect
auth skip create confirmauth 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 插件采用行业标准协议,这使得它们更容易与第三方身份提供程序连接,且配置最少。


其他资源

1 个赞