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. Hãy thiết lập nhà cung cấp danh tính (IdP) như trong Xác thực SAML, sau đó đưa các giá trị và chứng chỉ IdP 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 IdP
Hướng dẫn từng bước cho goauthentik cho thấy vị trí của các thiết lập này.
2
Đưa chứng chỉ IdP vào Secret overleaf-certs
Toolkit đọc chứng chỉ từ Nếu Secret đã tồn tại, hãy thêm tệp vào đó: xóa rồi tạo lại nó với mọi
data/overleaf/certs/. Trên Kubernetes, chứng chỉ đến từ Secret overleaf-certs, được mount tại /var/lib/overleaf/certs như mô tả trong Chứng chỉ và các tệp khác:--from-file, hoặc dùng kubectl -n overleaf edit secret overleaf-certs.OVERLEAF_SAML_IDP_CERT nhận một đường dẫn, hoặc một danh sách JSON các đường dẫn trong quá trình thay chứng chỉ. Nó không nhận trực tiếp nội dung PEM.3
Thêm các thiết lập vào ConfigMap
30-config.yaml (additions)
OVERLEAF_SAML_* được liệt kê trong Biến môi trường. Tất cả đều được đặt trong ConfigMap: không thiết lập nào tự nó là bí mật. Các tệp khóa (OVERLEAF_SAML_PRIVATE_KEY, OVERLEAF_SAML_DECRYPTION_PVK) được đặt trong overleaf-certs, còn ConfigMap chứa đường dẫn của chúng.4
Áp dụng và khởi động lại
overleaf-certs cũng cần lần khởi động lại này.Nhiều replica
IdP đưa người dùng trở lại ACS URL bằng mộtPOST cross-site. Trình duyệt không gửi cookie SameSite=Lax kèm theo yêu cầu này, nên yêu cầu không mang theo cookie session của Overleaf, và trong Chrome và Edge cũng không mang theo sticky cookie của load balancer, vì vậy nó có thể đến bất kỳ replica nào. Với các thiết lập mặc định, điều này không quan trọng: replica nhận được yêu cầu sẽ tạo session trong Redis và từ đó load balancer giữ người dùng ở replica này.
Đã kiểm thử trên Kubernetes
Với goauthentik làm IdP (binding HTTP-POST, assertion và response được ký), 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 SAML đều đạt (19 trường hợp): quản trị viên đầu tiên từ launchpad đăng nhập qua SAML, đăng nhập với chứng chỉ IdP từoverleaf-certs, tạo tài khoản và đăng nhập lại, ánh xạ quản trị viên theo nhóm 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, đăng xuất qua IdP, quy tắc mật khẩu cho tài khoản SAML, và tài khoản bị tạm ngưng. OVERLEAF_SAML_VALIDATE_IN_RESPONSE_TO được để ở giá trị mặc định.
Hỏi & Đáp
Đăng nhập qua SAML hiển thị ngay “Something went wrong”
Đăng nhập qua SAML hiển thị ngay “Something went wrong”
Trả lời: Chiến lược SAML không tải được. Pod vẫn trở nên sẵn sàng, vì vậy hãy xem log web của từng pod:Các nguyên nhân thường gặp:
OVERLEAF_SAML_IDP_CERT trỏ tới một tệp không có trong overleaf-certs, một giá trị boolean không phải "true" hoặc "false", hoặc JSON không hợp lệ. Khi EXTERNAL_AUTH liệt kê nhiều phương thức, lỗi như vậy cũng tắt các phương thức đứng sau SAML (ldap, rồi saml, rồi oidc).IdP có cần truy cập Overleaf, hay Overleaf cần truy cập IdP không?
IdP có cần truy cập Overleaf, hay Overleaf cần truy cập IdP không?
Trả lời: Không cần cả hai, đối với đăng nhập và đăng xuất: IdP và Overleaf chỉ trao đổi thông điệp qua trình duyệt của người dùng. Chỉ khi bạn cấu hình IdP với một metadata URL thì IdP mới tải xuống
${OVERLEAF_SITE_URL}/saml/meta.
