Аутентификация
Поддерживаемая аутентификация
Поддерживаются анонимный доступ и встроенная htpasswd Basic Auth. Внешние Bearer-сервисы и OIDC не поддерживаются. Управления пользователями в этом выпуске нет.
Сторона реестра Basic Auth
Создайте файл htpasswd с хешем пароля bcrypt. В следующем примере используется временный официальный контейнер Apache; замените учетные данные примера и защитите полученный файл:
mkdir -p auth
docker run --rm --entrypoint htpasswd httpd:2 -Bbn your-user choose-a-strong-password > auth/htpasswd
Пример настроек Distribution:
auth:
htpasswd:
realm: Registry
path: /auth/htpasswd
Смонтируйте сгенерированный файл в контейнер реестра по адресу /auth/htpasswd. Конфигурация реестра отличается от конфигурации Crateview. Используйте HTTPS для удаленного доступа; Basic Auth — это кодирование, а не транспортное шифрование. Не оставляйте настоящие пароли в общей истории оболочки или общедоступных примерах.
Сеансы пользовательского интерфейса
Сервер Nitro проверяет учетные данные по реестру. Он сохраняет их в зашифрованном файле cookie HttpOnly, SameSite=Strict. Браузерный JavaScript и localStorage не получают учетные данные. Сеансы истекают через восемь часов.
Установите случайный секрет производственного сеанса:
openssl rand -base64 32
Используйте сгенерированное значение как NUXT_SESSION_PASSWORD, содержащее не менее 32 символов. Каждый экземпляр внешнего интерфейса за балансировщиком нагрузки должен использовать одно и то же значение. Без настройки Crateview генерирует локальный секрет процесса, поэтому перезапуск делает существующие сеансы недействительными.
HTTPS и выход из системы
Файл cookie сеанса использует Secure, если протоколом общедоступных запросов является HTTPS. Правильно настройте пересылаемый протокол обратного прокси. Выход из системы очищает сеанс пользовательского интерфейса; он не удаляет и не изменяет пользователей реестра.
Docker и другие клиенты CLI аутентифицируются непосредственно через прокси-сервер /v2/**, используя свои обычные учетные данные реестра. Вход в веб-интерфейс не приводит к автоматическому входу в интерфейс командной строки Docker.
