Skip to main content
Đăng nhập OIDC được xử lý bởi dịch vụ web (module authentication) bên trong mọi pod Ayakaleaf Pro. Nó không có tác vụ nền và không có pod riêng. Phía nhà cung cấp (client, redirect URI, claim quản trị viên) giống như trên Toolkit, vì vậy trước tiên hãy thiết lập OpenID Provider (OP) của bạn theo Xác thực OIDC, sau đó đưa các giá trị vào Kubernetes như bên dưới.

Các thành phần chạy ở đâu

Cấu hình

1

Đăng ký Overleaf tại OP

Cho phép các địa chỉ sau trong OP của bạn, được tạo từ OVERLEAF_SITE_URL:Tìm năm URL trong tài liệu discovery của OP như mô tả trong Tìm các giá trị bằng tài liệu discovery.
2

Thêm các thiết lập vào ConfigMap

Thêm vào overleaf-env (30-config.yaml, hoặc 60-config.yaml khi dùng nhiều replica):
30-config.yaml (additions)
EXTERNAL_AUTH nhận một danh sách phân tách bằng dấu cách, ví dụ ldap oidc. Xem Biến môi trường để biết mọi thiết lập OVERLEAF_OIDC_*; tất cả đều được đặt trong ConfigMap, ngoại trừ client secret.
Hãy đặt "true" và "false" trong dấu nháy: ConfigMap chỉ chứa chuỗi. Một khóa được đặt thành "" không giống với một khóa bị thiếu: OVERLEAF_OIDC_ALLOWED_EMAIL_DOMAINS: "" tắt việc tạo tài khoản ở lần đăng nhập đầu tiên, trong khi bỏ khóa này đi sẽ cho phép mọi tên miền.
3

Đưa client secret vào Secret

4

Tin cậy một CA riêng (tùy chọn)

Nếu chứng chỉ của OP được cấp bởi CA riêng của bạn, hãy thêm CA vào Secret overleaf-certs được mount tại /var/lib/overleaf/certs (xem Chứng chỉ và các tệp khác) và trỏ Node.js tới nó:
5

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

Sau đó kiểm tra rằng mọi pod đều truy cập được endpoint token. Chính các pod gọi endpoint này, không phải trình duyệt, nên sự cố tường lửa hoặc DNS chỉ lộ ra ở đây:
Bất kỳ mã trạng thái HTTP nào (405 cho GET) đều có nghĩa là endpoint truy cập được; 000 nghĩa là không.

Nhiều replica

Không cần gì thêm. Giá trị state của một lần đăng nhập và ID token dùng để đăng xuất được lưu trong session nằm trên Redis, nên callback hoạt động trên bất kỳ replica nào nhận được nó.

Đã kiểm thử trên Kubernetes

Với goauthentik làm OP, trên Kubernetes 1.37 với ba replica phía sau HAProxy, các bài kiểm thử end-to-end của chúng tôi cho OIDC đều đạt (35 trường hợp): đăng nhập và đăng xuất qua OP; ánh xạ quản trị viên theo nhóm, theo email và theo một giá trị đơn, và khi không có ánh xạ; cập nhật tên và cờ quản trị viên ở mỗi lần đăng nhập; liên kết và hủy liên kết tài khoản; đặt lại và thay đổi mật khẩu của tài khoản OIDC; tài khoản bị tạm ngưng; OVERLEAF_OIDC_ALLOWED_EMAIL_DOMAINS; OVERLEAF_DISABLE_LOCAL_LOGIN; và OIDC kết hợp với truy cập công khai.

Hỏi & Đáp

Trả lời: Trình duyệt đã không gửi lại cookie session cùng với callback. Trên Kubernetes, các nguyên nhân thường gặp là:
  • OVERLEAF_SECURE_COOKIE được đặt, nhưng người dùng mở trang qua HTTP thường, nên trình duyệt không bao giờ lưu cookie. Bất kỳ giá trị nào của OVERLEAF_SECURE_COOKIE, kể cả "false", đều bật secure cookie; thay vào đó hãy xóa khóa này.
  • Trang được mở dưới một địa chỉ khác với OVERLEAF_SITE_URL.
  • Phía sau HTTPS, ingress hoặc load balancer của bạn không gửi X-Forwarded-Proto: https, hoặc địa chỉ của nó không có trong OVERLEAF_TRUSTED_PROXY_IPS.
Trả lời: Trong log web của pod đã phục vụ yêu cầu, không phải trong kubectl logs:
Khi có nhiều replica, hãy kiểm tra từng overleaf-N.
Lần sửa đổi cuối 2 tháng 11, 2026