Skip to main content
Dịch vụ web (module login-register) yêu cầu reCAPTCHA v2 (invisible) khi đăng nhập bằng email, đăng nhập LDAP, đăng ký và đặt lại mật khẩu. Hãy tạo khóa và tìm hiểu chức năng của từng thiết lập trong reCAPTCHA; trang này đưa chúng vào Kubernetes.

Cấu hình

1

Đưa site key vào ConfigMap

Site key là công khai: mọi trang đăng nhập đều hiển thị nó.
2

Đưa secret key và khóa lịch sử thiết bị vào Secret

Hãy đặt cả hai khóa cùng lúc: nếu có site key mà không có secret key, mọi lần kiểm tra đều thất bại và không ai có thể đăng nhập bằng mật khẩu, đăng ký hay đặt lại mật khẩu. DEVICE_HISTORY_SECRET phải gồm 64 ký tự hex; container không tự tạo giá trị này.
3

Áp dụng và khởi động lại

Sau đó kiểm tra rằng mọi pod đều truy cập được endpoint. Các pod bỏ cuộc sau khoảng một giây cho mỗi lần thử kết nối, và một lần đăng nhập mà không thể thực hiện kiểm tra sẽ thất bại kèm lỗi:

Nhiều replica

Mọi replica phải dùng chung DEVICE_HISTORY_SECRET, điều này được đảm bảo khi nó nằm trong Secret. Nếu các giá trị khác nhau, một trình duyệt đã vượt qua trên một replica sẽ lại bị yêu cầu captcha trên replica khác. Giới hạn tốc độ được đếm trong Redis trên tất cả các replica.

Đã kiểm thử trên Kubernetes

Với một bản giả lập endpoint xác minh của Google (được tin cậy qua NODE_EXTRA_CA_CERTS từ overleaf-certs), trên Kubernetes 1.37, các bài kiểm thử end-to-end của chúng tôi cho reCAPTCHA đều đạt (13 trường hợp): trên một replica, đăng nhập, đăng ký và đặt lại mật khẩu đều bị từ chối khi không có captcha hoặc captcha thất bại và được chấp nhận khi captcha thành công, lịch sử thiết bị từ DEVICE_HISTORY_SECRET cho phép trình duyệt bỏ qua captcha, và CAPTCHA_TRUSTED_USERS; trên ba replica phía sau HAProxy, đăng nhập LDAP với captcha.
Lần sửa đổi cuối 2 tháng 11, 2026