此功能由 yu-i-i/overleaf-cep 開發。

OIDC 身分驗證
LDAP 身分驗證
SAML 身分驗證
全域設定
必須設定環境變數EXTERNAL_AUTH 才能啟用特定的身分驗證模組。此環境變數指定要啟用哪些外部身分驗證方式。可用選項如下(小寫):
- saml
- ldap
- oidc
OVERLEAF_DISABLE_LOCAL_LOGIN=true。這會隱藏電子郵件與密碼登入。除非 EXTERNAL_AUTH 至少啟用了一種方式,否則此設定不會生效(於 6.3.1 新增)。
帳號與密碼
設定EXTERNAL_AUTH 後,一個執行個體中可以同時存在有本機密碼與沒有本機密碼的帳號。帳號能否設定或變更密碼只取決於這一點:有本機密碼的帳號可以自行管理密碼,沒有本機密碼的帳號只能透過 SSO 登入,且無法取得密碼,即使由管理員設定也不行。
- LDAP 與 SAML 會在首次登入時接管具有相同電子郵件的本機帳號,並在每次登入時移除其本機密碼。若電子郵件不同,則會建立新帳號,不影響原有的本機帳號。
- OIDC 會連結至帳號並保留其密碼,因此已連結 OIDC 的本機帳號可以透過兩種方式登入。可以在設定頁面點擊 Link 進行連結,或在電子郵件相符時於首次 OIDC 登入時連結。連結方式請參閱 OIDC 身分驗證。
- 由管理員建立為本機帳號的帳號會收到啟用電子郵件:啟用帳號時設定密碼的方式,與透過電子郵件重設密碼相同。
- 啟用多種方式時,例如
EXTERNAL_AUTH=ldap saml oidc,上述規則依然相同:只看帳號是否有本機密碼。 - 透過電子郵件重設需要電子郵件設定(
OVERLEAF_EMAIL_*)。若未設定,則不會寄出任何電子郵件,儘管頁面上顯示已寄出:此時請由管理員在 Admin → Manage Users 中設定密碼。 OVERLEAF_DISABLE_LOCAL_LOGIN=true會隱藏電子郵件與密碼登入,但會保留密碼:重新顯示該登入方式後,密碼即可再次使用。- 設定
EXTERNAL_AUTH後,無論使用哪種方式,使用者都無法在設定頁面變更自己的電子郵件:電子郵件由 IdP 管理,且使用者首次 OIDC 登入時會連結至擁有該使用者電子郵件的帳號。管理員可在 Admin → Manage Users 中變更電子郵件。 - 在啟用 OIDC 的執行個體上,請使用
OVERLEAF_ALLOW_PUBLIC_REGISTRATION=@<domain>(啟用電子郵件可證明該地址的所有權),而非true,或不開放公開註冊:若設為true,任何人都可以在同事首次 OIDC 登入之前,以該同事的電子郵件註冊,導致同事被連結至該帳號。
SSO 建議
我測試過 Overleaf 的 saml、ldap 與 oauth。saml 與 oauth 在 Overleaf 中都運作良好,但 ldap 則視情況而定。它在 https://docs.goauthentik.io/ 上無法正常運作,但在 openLDAP(https://github.com/rroemhild/docker-test-openldap)上則運作良好。我們需要更新 passport-ldapauth。最近我嘗試用 https://goauthentik.io/ 測試 Overleaf 的 LDAP,結果失敗了。將 “passport-ldapauth” 更新到 3.0.0 之後,一切都運作正常。原本的版本是 2.x.x,那已經是 6 年前的版本了。

