Перейти к содержимому
Архивная документация. Выберите версию вашей установки.

Аутентификация

Анонимный доступ, Basic Auth, зашифрованные сеансы и HTTPS.

Поддерживаемая аутентификация

Поддерживаются анонимный доступ и встроенная 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.