Skip to main content
LDAP 登录由每个 Ayakaleaf Pro Pod 中的 web 服务(authentication 模块)处理。与 OIDC 和 SAML 不同,Pod 会自行与目录通信。请按照 LDAP 身份验证设置目录端,然后按下文将相应的值放入 Kubernetes。

各组件的运行位置

配置

1

让 Pod 能够访问目录

每个运行 Ayakaleaf Pro 的 Pod 都会建立 LDAP 连接。如果目录受防火墙或 NetworkPolicy 保护,请放行 Pod 离开集群时使用的地址:通常是节点的地址,或你的出口网关。镜像中没有 ldapsearch。要在集群内运行搜索检查,请使用一个临时 Pod:
它必须恰好输出一个 dn:。
2

将设置添加到 ConfigMap

30-config.yaml (additions)
所有 OVERLEAF_LDAP_* 设置都列在环境变量中。除绑定密码外,它们都放入 ConfigMap。请为 "true"、"false"、JSON 值(例如 OVERLEAF_LDAP_SEARCH_ATTRIBUTES: '["mail", "cn"]')以及以 * 开头的值加上引号。
3

将绑定密码放入 Secret

4

使用你自己的 CA 的 LDAPS 或 STARTTLS(可选)

将 CA 放入挂载在 /var/lib/overleaf/certs 的 Secret overleaf-certs 中(参见证书和其他文件),并指向它:
对于 LDAP 连接,该 CA 列表会替代系统 CA。它在 web 启动时读取。
5

应用并重启

多个副本

除第 1 步中的防火墙外无需其他操作:每个副本都会自行连接到目录,登录结果会存入 Redis 中的会话。

在 Kubernetes 上的测试

以 goauthentik 的 LDAP outpost 作为目录,在 Kubernetes 1.37 上使用位于 HAProxy 之后的三个副本,我们针对 LDAP 的端到端测试全部通过(26 个用例):通过 launchpad 创建的第一个管理员通过 LDAP 登录、使用 Secret 中的绑定密码登录、拒绝错误密码和未知用户、按组映射管理员以及不进行映射、每次登录时更新姓名和管理员标志(单个姓名属性,或名字和姓氏)、目录联系人、退出登录、LDAP 账户的密码规则、已停用的账户,以及带 reCAPTCHA 的 LDAP 登录。

Q&A

回答:并非每个节点都能访问该目录。请在每个 Pod 中检查:
回答:在处理该次登录的 Pod 的 web 日志中:
最后修改于 2026年11月2日