login-register 模块)会在邮箱登录、LDAP 登录、注册和密码重置时要求通过 reCAPTCHA v2(隐形)验证。请在 reCAPTCHA 中创建密钥并了解每项设置的作用;本页介绍如何将其放入 Kubernetes。
配置
1
将站点密钥放入 ConfigMap
2
将密钥和设备历史密钥放入 Secret
DEVICE_HISTORY_SECRET 必须是 64 个十六进制字符;容器不会自动生成它。3
应用并重启
多个副本
所有副本必须共享DEVICE_HISTORY_SECRET,当它位于 Secret 中时即可满足这一点。如果值不同,在一个副本上已通过验证的浏览器在另一个副本上会再次遇到验证码。速率限制在 Redis 中跨所有副本统计。
在 Kubernetes 上的测试
针对 Google 验证端点的模拟服务(通过来自overleaf-certs 的 NODE_EXTRA_CA_CERTS 信任),在 Kubernetes 1.37 上,我们针对 reCAPTCHA 的端到端测试全部通过(13 个用例):在一个副本上,登录、注册和密码重置在没有验证码或验证失败时均被拒绝,在验证通过时被接受;来自 DEVICE_HISTORY_SECRET 的设备历史记录让浏览器跳过验证码;以及 CAPTCHA_TRUSTED_USERS;在位于 HAProxy 之后的三个副本上,带验证码的 LDAP 登录。
