Skip to main content
Logowaniem OIDC zajmuje się usługa web (moduł authentication) w każdym podzie Ayakaleaf Pro. Nie ma ono zadania w tle ani osobnego poda. Strona dostawcy (klient, adresy URI przekierowania, claim administratora) jest taka sama jak w Toolkit, więc najpierw skonfiguruj swojego dostawcę OpenID (OP) zgodnie z Uwierzytelnianie OIDC, a następnie umieść wartości w Kubernetes, jak opisano poniżej.

Gdzie co działa

Konfiguracja

1

Zarejestruj Overleaf u dostawcy OP

Zezwól w swoim OP na następujące adresy, zbudowane na podstawie OVERLEAF_SITE_URL:Znajdź pięć adresów URL w dokumencie discovery dostawcy OP, jak opisano w Wyszukiwanie wartości za pomocą dokumentu discovery.
2

Dodaj ustawienia do ConfigMap

Dodaj do overleaf-env (30-config.yaml lub 60-config.yaml w przypadku kilku replik):
30-config.yaml (additions)
EXTERNAL_AUTH przyjmuje listę rozdzieloną spacjami, na przykład ldap oidc. Wszystkie ustawienia OVERLEAF_OIDC_* znajdziesz w Zmienne środowiskowe; wszystkie trafiają do ConfigMap z wyjątkiem sekretu klienta.
Ujmij w cudzysłów "true" i "false": ConfigMap przechowuje wyłącznie ciągi znaków. Klucz ustawiony na "" to nie to samo co brakujący klucz: OVERLEAF_OIDC_ALLOWED_EMAIL_DOMAINS: "" wyłącza tworzenie konta przy pierwszym logowaniu, natomiast pominięcie klucza dopuszcza każdą domenę.
3

Umieść sekret klienta w Secret

4

Zaufaj prywatnemu CA (opcjonalnie)

Jeśli certyfikat dostawcy OP pochodzi z Twojego własnego CA, dodaj CA do Secret overleaf-certs zamontowanego w /var/lib/overleaf/certs (zobacz Certyfikaty i inne pliki) i wskaż go Node.js:
5

Zastosuj i zrestartuj

Następnie sprawdź, czy każdy pod ma dostęp do punktu końcowego token. Wywołują go pody, a nie przeglądarka, więc problem z zaporą lub DNS ujawnia się tylko tutaj:
Dowolny status HTTP (405 dla GET) oznacza, że punkt końcowy jest osiągalny; 000 oznacza, że nie jest.

Kilka replik

Nic dodatkowego. Wartość state logowania oraz token ID używany przy wylogowaniu są przechowywane w sesji, która znajduje się w Redis, więc wywołanie zwrotne (callback) działa na dowolnej replice, która je odbierze.

Przetestowano na Kubernetes

Z goauthentik jako OP, na Kubernetes 1.37 z trzema replikami za HAProxy, nasze testy end-to-end dla OIDC przechodzą pomyślnie (35 przypadków): logowanie i wylogowanie przez OP; mapowanie administratora według grupy, według adresu e-mail i według pojedynczej wartości oraz bez mapowania; aktualizacja imienia i flagi administratora przy każdym logowaniu; łączenie i rozłączanie kont; resetowanie i zmiana haseł kont OIDC; zawieszone konta; OVERLEAF_OIDC_ALLOWED_EMAIL_DOMAINS; OVERLEAF_DISABLE_LOCAL_LOGIN; oraz OIDC razem z dostępem publicznym.

Pytania i odpowiedzi

Odpowiedź: Przeglądarka nie odesłała ciasteczka sesji wraz z wywołaniem zwrotnym. Na Kubernetes typowe przyczyny to:
  • OVERLEAF_SECURE_COOKIE jest ustawione, ale użytkownicy otwierają witrynę przez zwykłe HTTP, więc przeglądarka nigdy nie zapisuje ciasteczka. Dowolna wartość OVERLEAF_SECURE_COOKIE, nawet "false", włącza bezpieczne ciasteczka; zamiast tego usuń klucz.
  • Witryna jest otwierana pod innym adresem niż OVERLEAF_SITE_URL.
  • Przy HTTPS Twój ingress lub load balancer nie wysyła X-Forwarded-Proto: https albo jego adresu brakuje w OVERLEAF_TRUSTED_PROXY_IPS.
Odpowiedź: W logu web poda, który obsłużył żądanie, a nie w kubectl logs:
Przy kilku replikach sprawdź każdy overleaf-N.
Ostatnia modyfikacja 2 listopada 2026