authentication) в каждом поде Ayakaleaf Pro. Для него нет фонового задания и отдельного пода. Настройте провайдера удостоверений (IdP), как описано в разделе Аутентификация SAML, а затем перенесите значения и сертификат IdP в Kubernetes, как показано ниже.
Где что выполняется
Настройка
1
Зарегистрируйте Overleaf в IdP
Где находятся эти настройки, показано в пошаговом руководстве для goauthentik.
2
Поместите сертификат IdP в Secret overleaf-certs
Toolkit считывает сертификат из Если Secret уже существует, вместо этого добавьте в него файл: удалите и создайте его заново со всеми
data/overleaf/certs/. В Kubernetes он берётся из Secret overleaf-certs, смонтированного в /var/lib/overleaf/certs, как описано в разделе Сертификаты и другие файлы:--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 хранит пути к ним.4
Примените изменения и перезапустите
overleaf-certs также требует этого перезапуска.Несколько реплик
IdP возвращает пользователя на ACS URL с помощью межсайтовогоPOST. Браузеры не отправляют с ним cookie с SameSite=Lax, поэтому запрос не содержит ни cookie сессии Overleaf, ни (в Chrome и Edge) sticky-cookie балансировщика нагрузки и может прийти на любую реплику. При настройках по умолчанию это не имеет значения: реплика, получившая запрос, создаёт сессию в Redis, и с этого момента балансировщик нагрузки направляет пользователя на неё.
Проверено на 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 сразу появляется «Something went wrong»
При входе через SAML сразу появляется «Something went wrong»
Ответ: Стратегия SAML не загрузилась. Под всё равно становится готовым, поэтому смотрите журнал web каждого пода:Частые причины:
OVERLEAF_SAML_IDP_CERT указывает на файл, которого нет в overleaf-certs, логическое значение отличается от "true" или "false", либо недопустимый JSON. Если в EXTERNAL_AUTH перечислено несколько методов, такая ошибка также отключает методы, следующие после SAML (ldap, затем saml, затем oidc).Нужен ли IdP доступ к Overleaf или Overleaf — доступ к IdP?
Нужен ли IdP доступ к Overleaf или Overleaf — доступ к IdP?
Ответ: Ни то, ни другое для входа и выхода: IdP и Overleaf обмениваются сообщениями только через браузер пользователя. Только если вы настроите IdP с URL метаданных, он будет загружать
${OVERLEAF_SITE_URL}/saml/meta.
