Перейти к содержанию

Вход в SOGo под администратором

Это экспериментальная функция, которая позволяет администраторам и администраторам доменов напрямую входить в SOGo под видом пользователя почтового ящика, не зная его пароля.

Для этого в списке почтовых ящиков (интерфейс animails) отображается дополнительная ссылка на SOGo.

При использовании этой функции также возможны несколько одновременных входов администратора в разные почтовые ящики.

Включение функции

Функция по умолчанию отключена. Ее можно включить в файле animails.conf, установив:

ALLOW_ADMIN_EMAIL_LOGIN=y
и пересоздав соответствующие контейнеры с помощью:

docker compose up -d
docker-compose up -d

Недостатки при включении

  • Каждая загрузка страницы SOGo и каждый запрос Active-Sync будут вызывать дополнительное выполнение внутреннего PHP-скрипта. Это может повлиять на время загрузки SOGo / EAS. В большинстве случаев это не должно быть заметно, но об этом следует помнить при возникновении проблем с производительностью.
  • SOGo не будет отображать ссылку для выхода из системы при входе администратора; чтобы войти в обычном режиме, необходимо выйти из интерфейса animails, чтобы PHP-сессия была уничтожена.
  • Подписка на календарь или адресную книгу другого пользователя при входе под учетной записью администратора не работает. Также не работает приглашение других пользователей на события календаря. При попытке выполнить эти действия страница будет перезагружена.

Технические подробности

Опция SOGoTrustProxyAuthentication установлена в значение YES, что заставляет SOGo доверять заголовку x-webobjects-remote-user.

Dovecot получит случайный мастер-пароль, который действителен для всех почтовых ящиков при использовании контейнером SOGo.

Нажатие на кнопку SOGo в списке почтовых ящиков откроет файл sogo-auth.php, который проверяет права доступа, устанавливает переменные сессии и перенаправляет в почтовый ящик SOGo.

Каждый HTTP-запрос SOGo, CardDAV, CalDAV и EAS будет вызывать дополнительный внутренний вызов nginx auth_request к sogo-auth.php со следующим поведением:

  • Если присутствует заголовок basic_auth, скрипт проверит учетные данные вместо SOGo и предоставит следующие заголовки: x-webobjects-remote-user, Authorization и x-webobjects-auth-type.

  • Если заголовок basic_auth отсутствует, скрипт проверит наличие активной сессии администратора animails для запрошенного почтового пользователя и предоставит те же заголовки, но с мастер-паролем dovecot, используемым в заголовке Authorization.

  • Если оба варианта не срабатывают, заголовки будут оставлены пустыми, что заставит SOGo использовать стандартные методы аутентификации.

Все эти опции и алгоритмы работы отключены, если в конфигурации не активирован параметр ALLOW_ADMIN_EMAIL_LOGIN.