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.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
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
Gdzie mogę zobaczyć, dlaczego logowanie się nie powiodło?
Gdzie mogę zobaczyć, dlaczego logowanie się nie powiodło?
Odpowiedź: W logu web poda, który obsłużył żądanie, a nie w Przy kilku replikach sprawdź każdy
kubectl logs:overleaf-N.
