Skip to main content
此功能由 yu-i-i/overleaf-cep 开发。
目前支持 3 种身份验证方式。配置完成后,你可以使用以下选项登录,如下图所示。
我们强烈建议你使用 OIDC,因为这是最通用的方式。

OIDC 身份验证

LDAP 身份验证

SAML 身份验证

全局配置

需要通过环境变量 EXTERNAL_AUTH 来启用特定的身份验证模块。该环境变量指定要激活哪些外部身份验证方式。可用选项如下(小写):
  • saml
  • ldap
  • oidc
如果只允许用户通过这些方式登录,请设置 OVERLEAF_DISABLE_LOCAL_LOGIN=true。这会隐藏邮箱和密码登录。除非 EXTERNAL_AUTH 至少启用了一种方式,否则该设置不会生效(6.3.1 中新增)。

账户和密码

设置了 EXTERNAL_AUTH 后,一个实例中可以同时存在有本地密码和没有本地密码的账户。账户能否设置或更改密码仅取决于这一点:有本地密码的账户可以管理自己的密码,没有本地密码的账户只能通过 SSO 登录,并且无法获得密码,即使管理员也无法为其设置。
  • LDAP 和 SAML 会在首次登录时接管具有相同邮箱的本地账户,并在每次登录时移除其本地密码。如果邮箱不同,则会创建一个新账户,不影响原有的本地账户。
  • OIDC 会关联到一个账户并保留其密码,因此关联到 OIDC 的本地账户可以通过两种方式登录。可以在设置页面上点击 Link 进行关联,或者在邮箱匹配时于首次 OIDC 登录时自动关联。关联方法请参见 OIDC 身份验证。
  • 管理员创建为本地账户的账户会收到一封激活邮件:激活账户时设置密码的方式与通过邮件重置密码相同。
  • 启用多种方式时,例如 EXTERNAL_AUTH=ldap saml oidc,上述规则保持不变:只看账户是否有本地密码。
  • 通过邮件重置需要配置邮件设置(OVERLEAF_EMAIL_*)。如果没有配置,不会发送任何邮件,尽管页面上会提示已发送:此时请由管理员在 Admin → Manage Users 中设置密码。
  • OVERLEAF_DISABLE_LOCAL_LOGIN=true 会隐藏邮箱和密码登录,但会保留密码:重新显示该登录方式后,密码可以再次使用。
  • 设置了 EXTERNAL_AUTH 后,无论使用哪种方式,用户都无法在设置页面上更改自己的邮箱:邮箱由 IdP 管理,并且用户首次 OIDC 登录时会关联到拥有该用户邮箱的账户。管理员可以在 Admin → Manage Users 中更改邮箱。
  • 在启用 OIDC 的实例上,请使用 OVERLEAF_ALLOW_PUBLIC_REGISTRATION=@<domain>(激活邮件可以证明邮箱地址的所有权),而不是 true,或者不开放公开注册:如果设置为 true,任何人都可以在同事首次 OIDC 登录之前使用该同事的邮箱注册,这会导致同事被关联到该账户。

SSO 建议

我针对 Overleaf 测试了 saml、ldap 和 oauth。saml 和 oauth 在 Overleaf 中都运行良好,但 ldap 则视情况而定。它在 https://docs.goauthentik.io/ 上无法正常工作,但在 openLDAP(https://github.com/rroemhild/docker-test-openldap)上运行良好。
我们需要更新 passport-ldapauth。最近我尝试用 https://goauthentik.io/ 测试 Overleaf 的 LDAP,结果失败了。将 “passport-ldapauth” 更新到 3.0.0 之后,一切都正常了。
原来的版本是 2.x.x,那已经是 6 年前的版本了。
我不确定具体原因,因为我们都依赖外部软件包来进行 LDAP(以及 saml、oauth)身份验证。如果无法正常工作,Overleaf Server Pro 的情况可能也是一样的,因为我们只是把所有环境变量传递给内部软件包,如果其中存在 bug,我们目前也无从得知。 因此,我强烈建议用户搭建开发环境,使用完整源代码来测试 SSO,具体请参见搭建开发环境(本地)。在开发环境中,你可以在终端中看到所有日志,便于调试。 \
最后修改于 2026年10月24日