authentication 模組)處理。與 OIDC 和 SAML 不同,pod 會自行與目錄通訊。請依照 LDAP 身分驗證設定目錄端,再依下列方式將設定值放入 Kubernetes。
各元件的執行位置
設定
1
讓 pod 能連線至目錄
每個執行 Ayakaleaf Pro 的 pod 都會建立 LDAP 連線。若目錄受到防火牆或 NetworkPolicy 保護,請允許 pod 離開叢集時所使用的位址:通常是節點的位址,或您的 egress 閘道。映像檔中沒有 輸出中必須恰好有一個
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 放入掛載於 此 CA 清單會取代 LDAP 連線所使用的系統 CA,並在 web 啟動時讀取。
/var/lib/overleaf/certs 的 Secret overleaf-certs(請參閱憑證與其他檔案),並指向該檔案:5
套用並重新啟動
多個副本
除了步驟 1 的防火牆設定外,不需要額外處理:每個副本都會各自連線至目錄,而登入結果會存入 Redis 的工作階段中。在 Kubernetes 上的測試
以 goauthentik 的 LDAP outpost 作為目錄,在 Kubernetes 1.37 上以三個副本置於 HAProxy 之後,我們針對 LDAP 的端對端測試全數通過(26 個案例):從 launchpad 建立的第一位管理員透過 LDAP 登入、使用 Secret 中的繫結密碼登入、拒絕錯誤密碼與未知使用者、依群組對應管理員以及不使用對應、每次登入時更新名稱與管理員旗標(單一名稱屬性,或名字與姓氏)、目錄聯絡人、登出、LDAP 帳號的密碼規則、已停權的帳號,以及搭配 reCAPTCHA 的 LDAP 登入。問與答
只有部分 pod 上的 LDAP 登入失敗
只有部分 pod 上的 LDAP 登入失敗
回答:並非每個節點都能連線至目錄。請從每個 pod 進行檢查:
在哪裡可以看到登入失敗的原因?
在哪裡可以看到登入失敗的原因?
回答:在處理該次登入之 pod 的 web 日誌中:

