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

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

Настройка

1

Зарегистрируйте Overleaf в IdP

Где находятся эти настройки, показано в пошаговом руководстве для goauthentik.
2

Поместите сертификат IdP в Secret overleaf-certs

Toolkit считывает сертификат из data/overleaf/certs/. В Kubernetes он берётся из Secret overleaf-certs, смонтированного в /var/lib/overleaf/certs, как описано в разделе Сертификаты и другие файлы:
Если Secret уже существует, вместо этого добавьте в него файл: удалите и создайте его заново со всеми --from-file или выполните kubectl -n overleaf edit secret overleaf-certs.OVERLEAF_SAML_IDP_CERT принимает путь или, во время смены сертификата, JSON-список путей. Сам текст PEM он не принимает.
3

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

30-config.yaml (additions)
Все настройки OVERLEAF_SAML_* перечислены в разделе Переменные окружения. Все они помещаются в ConfigMap: ни одна из них сама по себе не является секретом. Файлы ключей (OVERLEAF_SAML_PRIVATE_KEY, OVERLEAF_SAML_DECRYPTION_PVK) помещаются в overleaf-certs, а ConfigMap хранит пути к ним.
Заключайте в кавычки "true", "false" и значения JSON, например OVERLEAF_SAML_AUTHN_CONTEXT: '["urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport"]'. Если настройка не является допустимым логическим значением или JSON, стратегия SAML не загружается, хотя под по-прежнему сообщает о готовности; вход через SAML при этом не работает. Проверяйте web.log после каждого изменения, см. раздел «Вопросы и ответы» ниже.
4

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

Сертификат IdP и ключи считываются при запуске web, поэтому новый сертификат в overleaf-certs также требует этого перезапуска.

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

IdP возвращает пользователя на ACS URL с помощью межсайтового POST. Браузеры не отправляют с ним cookie с SameSite=Lax, поэтому запрос не содержит ни cookie сессии Overleaf, ни (в Chrome и Edge) sticky-cookie балансировщика нагрузки и может прийти на любую реплику. При настройках по умолчанию это не имеет значения: реплика, получившая запрос, создаёт сессию в Redis, и с этого момента балансировщик нагрузки направляет пользователя на неё.
Не задавайте OVERLEAF_SAML_VALIDATE_IN_RESPONSE_TO (по умолчанию never), если используете несколько реплик. При значении always или ifPresent каждая реплика запоминает запросы, отправленные ею в IdP, в собственной памяти, и ответ, пришедший на другую реплику, отклоняется с сообщением «InResponseTo is not valid»: пользователь остаётся на /saml/login/callback. В нашем тесте с тремя репликами и always 12 из 19 сценариев SAML завершились неудачей именно так, тогда как со значением по умолчанию прошли все. С одной репликой вход через SAML проходит и с always.

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

С goauthentik в качестве IdP (привязка HTTP-POST, подписанные утверждения и ответы), на Kubernetes 1.37 с тремя репликами за HAProxy, наши сквозные тесты для SAML проходят (19 сценариев): вход первого администратора из launchpad через SAML, вход с сертификатом IdP из overleaf-certs, создание учётной записи и повторный вход, назначение администратора по группе и без назначения, обновление имени и признака администратора при каждом входе, выход через IdP, правила для паролей учётных записей SAML и заблокированные учётные записи. OVERLEAF_SAML_VALIDATE_IN_RESPONSE_TO оставался со значением по умолчанию.

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

Ответ: Стратегия SAML не загрузилась. Под всё равно становится готовым, поэтому смотрите журнал web каждого пода:
Частые причины: OVERLEAF_SAML_IDP_CERT указывает на файл, которого нет в overleaf-certs, логическое значение отличается от "true" или "false", либо недопустимый JSON. Если в EXTERNAL_AUTH перечислено несколько методов, такая ошибка также отключает методы, следующие после SAML (ldap, затем saml, затем oidc).
Ответ: Ни то, ни другое для входа и выхода: IdP и Overleaf обмениваются сообщениями только через браузер пользователя. Только если вы настроите IdP с URL метаданных, он будет загружать ${OVERLEAF_SITE_URL}/saml/meta.
Последнее изменение 2 ноября 2026 г.