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, кроме секрета клиента.3
Поместите секрет клиента в Secret
4
Доверие частному CA (необязательно)
Если сертификат OP выдан вашим собственным CA, добавьте CA в Secret
overleaf-certs, смонтированный в /var/lib/overleaf/certs (см. Сертификаты и другие файлы), и укажите его для Node.js:5
Примените изменения и перезапустите
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 вместе с публичным доступом.
Вопросы и ответы
Где посмотреть, почему вход не удался?
Где посмотреть, почему вход не удался?
Ответ: В журнале web того пода, который обработал запрос, а не в При нескольких репликах проверьте каждый
kubectl logs:overleaf-N.
