
Некоторые из этих веб-сервисов не имеют никакой авторизации из коробки, но должны быть скрыты от лишних глаз. Обычно для этого применяется basic-авторизация: придумываем какой-нибудь пароль, вешаем его на сервис в балансировщике, раздаём всем.
Не знаю как вы, но я ненавижу basic-авторизацию:
- Большинство браузеров не умеет в нормальное автозаполнение таких паролей
- Нужно раздавать пароль всей команде и следить за тем, чтобы он не попал в лишние руки
Решила эту проблему, накатив traefik-forward-auth + Google OAuth. Это сервис авторизации, который тесно интегрируется с traefik, балансировщиком, который мы используем.
Теперь достаточно добавить одну метку в compose-файл нужного сервиса, и он становится защищён OAuth-авторизацией. При попытке зайти в такой сервис через браузер вы будете переадресованы на страницу авторизации Google, где нужно выбрать корпоративный аккаунт (у всех сотрудников такой есть). Один клик — и вас уже редиректит обратно, а сессия нормально запоминается.
При этом доступ автоматически получают все, за этим не нужно следить при появлении/уходе сотрудников. Если нужен более точный контроль, понадобится дополнительная конфигурация.
P.S. Спрятали под такую авторизацию и те сервисы, которые уже имеют свою авторизацию. Например, Portainer. Зачем? Когда в авторизации Portainer найдут уязвимость, мы будем защищены дополнительным рубежом.