Аутентификация#
Все операции пользователей каталога проходят обязательную аутентификацию. Основным механизмом аутентификации является постоянный токена доступа, которые администраторы создают для пользователей. Аутентификация также может быть осуществлена с помощью временного токена доступа или имени пользователя и пароля. Данный документ разъясняет особенности работы разных механизмов аутентификации.
Учетная запись пользователя#
Каждый пользователь каталога должен быть зарегистрирован. Пользователь может пройти аутентификацию, только если его учетная запись существует и активна.
Используйте команду principal create для создания пользователя, команду principal update для активации и деактивации пользователя, команду principal delete для удаления пользователя, и команду principal get для просмотра состояния учетной записи пользователя.
Постоянный токен доступа#
Постоянный токен доступа — это строка, которую каталог использует для аутентификации пользователя. Постоянный токен доступа необходим для выполнения операций над каталогом через утилиту командной строки, а так же для работы с Iceberg REST Catalog.
Пользователь может пройти аутентификацию с помощью постоянного токена доступа, если выполнены два условия:
Токен зарегистрирован в системе
Учетная запись пользователя существует и активна
Постоянный токен доступа для пользователя может быть получен с помощью команды access-token create. Администратор системы может создать несколько токенов для пользователя, а также отозвать токен.
При создании каталога токен доступа для администратора будет сгенерирован автоматически и сохранен в файл. См. Первоначальная аутентификация.
Временный токен доступа#
Временный токен доступа — это строка, которую каталог использует для аутентификации пользователя. В отличие от постоянного токена доступа, временный токен имеет ограниченное время жизни. Каталог использует технологию JWT для создания временных токенов.
В отличие от постоянных токенов доступа, временный токен доступ не может быть отозван.
Пользователь может пройти аутентификацию с помощью временного токена доступа, если выполнены два условия:
Время жизни токена не истекло
Учетная запись пользователя существует и активна
Каталог использует временные токены доступа для имперсонации пользователей при работе c Iceberg REST Catalog. Iceberg REST Catalog создает временный токен доступа для пользователей автоматически. Временный токен доступа также может быть получен с помощью команды access-token create-temporary.
Время жизни токена доступа определяется параметром конфигурации jwt.token-ttl
.
Каталог использует секретный ключ для шифрования JWT токенов. По умолчанию ключ шифрования генерируется
автоматически при каждом запуске каталога. В этом случае, все временные токены доступа будут деактивированы
при перезапуске каталога. Вы можете задать клюя шифрования в явном виде с помощью параметра конфигурации
jwt.state-key
. В этом случае ранее выданные временные токены доступа продолжат работать в рамках своего
времени жизни при перезапуске каталога.
Аутентификация по имени пользователя и паролю#
Каталог поддерживает аутентификацию по имени пользователя и паролю. Данный режим используется, когда каталог является сервером аутентификации для внешнего сервиса (например, CedrusData, Trino).
Аутентификация по имени пользователя и паролю также может быть использована для получения токенов доступа администратором системы.
Задать или изменить пароль пользователя можно с помощью команд principal create и principal update.
Первоначальная аутентификация#
Данный раздел разъясняет, каким образом вы можете пройти аутентификацию в каталоге после его создания.
При первом запуске каталога, система создает пользователя с ролью администратора.
Имя администратора можно задать с помощью параметра конфигурации admin-username
, значение по умолчанию: root
.
По умолчанию каталог создает административного пользователя со случайным паролем, который не будет вам известен.
Одновременно с этим каталог автоматически создает постоянный токен доступа и сохраняет
его в файл <data_dir>/admin-access-token
. Вы можете изменить расположение данного файла с помощью
параметра конфигурации admin-access-token-file-path
.
Вы можете использовать данный токен доступа для дальнейшей работы с каталогом, а также аутентификации в сервисе Iceberg REST Catalog.
Вы также можете явно задать пароль администратора с помощью параметра конфигурации admin-password
.
Файлы конфигурации по умолчанию позволяют задать пароль администратора через переменную окружения CATALOG_ADMIN_PASSWORD
.
Запуск с явно заданными паролем из распакованного архива:
CATALOG_ADMIN_PASSWORD=mypasswod cedrusdata-catalog-server-458-1/bin/launcher/run --data-dir data
Запуск с явно заданным паролем с помощью Docker-образа:
docker run -d \
--name cedrusdata-catalog \
-p 9080:9080 -v \
-e CATALOG_ADMIN_PASSWORD=mypassword \
cr.yandex/crpjtvqf29mpabhmrf1s/cedrusdata-catalog:458-1
Если пароль администратора указан явно, постоянный токен доступа не будет создан. Вместо этого вам нужно будет запросить постоянный токен доступа с помощью команды access-token create, передав имя пользователя и пароль администратора.