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

Все операции пользователей каталога проходят обязательную аутентификацию. Основным механизмом аутентификации является постоянный токена доступа, которые администраторы создают для пользователей. Аутентификация также может быть осуществлена с помощью временного токена доступа или имени пользователя и пароля. Данный документ разъясняет особенности работы разных механизмов аутентификации.

Учетная запись пользователя#

Каждый пользователь каталога должен быть зарегистрирован. Пользователь может пройти аутентификацию, только если его учетная запись существует и активна.

Используйте команду principal create для создания пользователя, команду principal update для активации и деактивации пользователя, команду principal delete для удаления пользователя, и команду principal get для просмотра состояния учетной записи пользователя.

Постоянный токен доступа#

Постоянный токен доступа — это строка, которую каталог использует для аутентификации пользователя. Постоянный токен доступа необходим для выполнения операций над каталогом через утилиту командной строки, а так же для работы с Iceberg REST Catalog.

Пользователь может пройти аутентификацию с помощью постоянного токена доступа, если выполнены два условия:

  1. Токен зарегистрирован в системе

  2. Учетная запись пользователя существует и активна

Постоянный токен доступа для пользователя может быть получен с помощью команды access-token create. Администратор системы может создать несколько токенов для пользователя, а также отозвать токен.

При создании каталога токен доступа для администратора будет сгенерирован автоматически и сохранен в файл. См. Первоначальная аутентификация.

Временный токен доступа#

Временный токен доступа — это строка, которую каталог использует для аутентификации пользователя. В отличие от постоянного токена доступа, временный токен имеет ограниченное время жизни. Каталог использует технологию JWT для создания временных токенов.

В отличие от постоянных токенов доступа, временный токен доступ не может быть отозван.

Пользователь может пройти аутентификацию с помощью временного токена доступа, если выполнены два условия:

  1. Время жизни токена не истекло

  2. Учетная запись пользователя существует и активна

Каталог использует временные токены доступа для имперсонации пользователей при работе 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, передав имя пользователя и пароль администратора.