Skip to main content
Вход через OIDC обрабатывает сервис web (модуль authentication) в каждом поде Ayakaleaf Pro. Для него нет фонового задания и отдельного пода. Настройка на стороне провайдера (клиент, URI перенаправления, claim администратора) такая же, как в Toolkit, поэтому сначала настройте своего провайдера OpenID (OP) по инструкции Аутентификация OIDC, а затем перенесите значения в Kubernetes, как показано ниже.

Где что выполняется

Настройка

1

Зарегистрируйте Overleaf у OP

Разрешите в своём OP следующие адреса, построенные на основе OVERLEAF_SITE_URL:Найдите пять URL в документе обнаружения (discovery document) OP, как описано в разделе Поиск значений с помощью документа обнаружения.
2

Добавьте настройки в ConfigMap

Добавьте в overleaf-env (30-config.yaml или 60-config.yaml для нескольких реплик):
30-config.yaml (additions)
EXTERNAL_AUTH принимает список через пробел, например ldap oidc. Все настройки OVERLEAF_OIDC_* описаны в разделе Переменные окружения; все они помещаются в ConfigMap, кроме секрета клиента.
Заключайте "true" и "false" в кавычки: ConfigMap хранит только строки. Ключ со значением "" — не то же самое, что отсутствующий ключ: OVERLEAF_OIDC_ALLOWED_EMAIL_DOMAINS: "" отключает создание учётных записей при первом входе, а если ключ не указан, разрешены все домены.
3

Поместите секрет клиента в Secret

4

Доверие частному CA (необязательно)

Если сертификат OP выдан вашим собственным CA, добавьте CA в Secret overleaf-certs, смонтированный в /var/lib/overleaf/certs (см. Сертификаты и другие файлы), и укажите его для Node.js:
5

Примените изменения и перезапустите

Затем проверьте, что каждый под может обратиться к эндпоинту token. Его вызывают поды, а не браузер, поэтому проблема с файрволом или DNS проявится только здесь:
Любой HTTP-статус (405 для GET) означает, что эндпоинт доступен; 000 — что недоступен.

Несколько реплик

Ничего дополнительного не требуется. Значение state при входе и ID-токен, используемый для выхода, хранятся в сессии, которая находится в Redis, поэтому callback работает на любой реплике, которая его получит.

Проверено на Kubernetes

С goauthentik в качестве OP, на Kubernetes 1.37 с тремя репликами за HAProxy, наши сквозные тесты для OIDC проходят (35 сценариев): вход и выход через OP; назначение администратора по группе, по адресу электронной почты и по единственному значению, а также без назначения; обновление имени и признака администратора при каждом входе; привязка и отвязка учётных записей; сброс и смена пароля для учётных записей OIDC; заблокированные учётные записи; OVERLEAF_OIDC_ALLOWED_EMAIL_DOMAINS; OVERLEAF_DISABLE_LOCAL_LOGIN; а также OIDC вместе с публичным доступом.

Вопросы и ответы

Ответ: Браузер не отправил cookie сессии вместе с callback. В Kubernetes обычные причины таковы:
  • Задан OVERLEAF_SECURE_COOKIE, но пользователи открывают сайт по обычному HTTP, поэтому браузер никогда не сохраняет cookie. Любое значение OVERLEAF_SECURE_COOKIE, даже "false", включает защищённые cookie; вместо этого удалите ключ.
  • Сайт открывается по адресу, отличному от OVERLEAF_SITE_URL.
  • При работе за HTTPS ваш ingress или балансировщик нагрузки не отправляет X-Forwarded-Proto: https, либо его адрес отсутствует в OVERLEAF_TRUSTED_PROXY_IPS.
Ответ: В журнале web того пода, который обработал запрос, а не в kubectl logs:
При нескольких репликах проверьте каждый overleaf-N.
Последнее изменение 2 ноября 2026 г.