Аутентификация по HTTP-заголовкам
Аутентификация по HTTP-заголовкам — способ аутентификации, при котором VK Registry доверяет личности пользователя, установленной вышестоящим прокси-сервером.
-
Пользователь обращается к VK Registry через доверенный прокси-сервер.
-
Прокси-сервер аутентифицирует пользователя через внешнюю систему.
-
Прокси-сервер добавляет имя пользователя в доверенный HTTP-заголовок и перенаправляет запрос в VK Registry.
-
VK Registry проверяет HTTP-заголовок:
-
Если HTTP-заголовок указан и содержит имя существующего пользователя VK Registry, запрос аутентифицируется от его имени. Роли и права доступа применяются как при других способах аутентификации.
-
Если HTTP-заголовок указан, но пользователь неизвестен, VK Registry игнорирует заголовок и переходит к другим способам аутентификации.
-
Если HTTP-заголовок отсутствует, VK Registry переходит к другим способам аутентификации.
-
-
Если ни один способ аутентификации не сработал, VK Registry обрабатывает запрос как анонимный (подробнее — в разделе Анонимный доступ).
VK Registry не хранит состояние сессии, поэтому HTTP-заголовок проверяется при каждом запросе независимо.
-
Прокси-сервер аутентифицирует пользователя через внешнюю систему. Примеры: OIDC, Kerberos, SAML.
-
Прокси-сервер подставляет имя пользователя в доверенный HTTP-заголовок. Имя заголовка выбрано согласно RFC 9110 (Tokens):
- длина — от 1 до 128 символов;
- разрешенные символы — латинские буквы, цифры и символы
!,#,$,%,&,',*,+,-,.,^,_,`,|,~.
Пример:
X-Forwarded-Login. -
Прокси-сервер удаляет доверенный HTTP-заголовок из клиентских запросов и устанавливает его значение самостоятельно. Это исключает подмену заголовка.
-
Прямой доступ к VK Registry в обход прокси-сервера закрыт на сетевом уровне. Например, файервол настроен так, чтобы порт VK Registry был доступен только с адресов доверенных прокси-серверов.
Примеры прокси-серверов: NGINX, Apache HTTPD, OIDC Proxy программного комплекса VK Dev Platform.
Аутентификация по HTTP-заголовку не добавляет учетные записи (УЗ) пользователей в VK Registry и не назначает роли существующим пользователям.
Чтобы при аутентификации по HTTP-заголовку у пользователей автоматически появился доступ:
-
Авторизуйтесь в VK Registry с помощью учетной записи администратора.
-
Перейдите в раздел Безопасность → Пользователи.
-
Убедитесь, что УЗ пользователей есть в VK Registry. Параметры ID пользователей должны совпадать со значениями, которые прокси-сервер передает в HTTP-заголовке.
При необходимости добавьте пользователей на LDAP-сервере, в OIDC-провайдере или локально в VK Registry (подробнее — в разделе Создание пользователя).
-
Убедитесь, что пользователям назначены нужные роли. Чтобы проверить роли пользователя, нажмите на его имя.
При необходимости назначьте роли вручную или автоматически через сопоставление ролей (подробнее — в разделах LDAP и OIDC).
Аутентификация по HTTP-заголовку по умолчанию отключена.
Перед включением убедитесь, что:
- соблюдаются все требования к прокси-серверу (подробнее — в разделе Требования к доверенному прокси-серверу);
- УЗ пользователей добавлены в VK Registry (подробнее — в разделе Подготовка УЗ для аутентификации по HTTP-заголовку).
Чтобы настроить и включить аутентификацию по HTTP-заголовкам:
-
Авторизуйтесь в VK Registry с помощью учетной записи администратора.
-
Перейдите в раздел Безопасность → Аутентификация по HTTP.
-
Задайте параметры:
- Имя заголовка — ключ HTTP-заголовка, в котором прокси-сервер передает имя пользователя.
Значение должно совпадать с указанным на прокси-сервере.
Пример:
X-Forwarded-Login. - Включить аутентификацию по HTTP-заголовку — включите опцию.
- Имя заголовка — ключ HTTP-заголовка, в котором прокси-сервер передает имя пользователя.
Значение должно совпадать с указанным на прокси-сервере.
Пример:
-
Нажмите кнопку Сохранить.
После включения автоматически активируется область безопасности HTTP Header Authentication Realm.
Она добавляется первой в список Активные области, что обеспечивает приоритет над остальными способами аутентификации.
- Авторизуйтесь в VK Registry с помощью учетной записи администратора.
- Перейдите в раздел Безопасность → Аутентификация по HTTP.
- Отключите опцию Включить аутентификацию по HTTP-заголовку.
- Нажмите кнопку Сохранить.
Этот механизм также можно отключить, убрав HTTP Header Authentication Realm из списка активных областей в разделе Безопасность → Области безопасности (подробнее — в разделе Деактивация области безопасности).
После отключения:
- Область
HTTP Header Authentication Realmдеактивируется. - Доверенный HTTP-заголовок в запросах игнорируется.
- Имя HTTP-заголовка сохраняется в настройках. При повторном включении задавать имя заново не нужно.
- Поведение остальных способов аутентификации остается прежним.