Аутентификация и пароли

Для аутентификации пользователей в YTsaurus для пользователя может быть установлен пароль, при помощи которого пользователь получает доступ к системе. Пароль пользователя может быть изменён администратором системы или самим пользователем. Для управления паролем можно использовать страницу изменения пароля или команду set-user-password в YTsaurus CLI.

После создания пользователя пароль для него не установлен, поэтому первый пароль устанавливает администратор. Рассмотрим пример.

$ yt create user --attr '{name=oleg}'
$ yt set-user-password oleg --new-password cone

Администратор создаёт пользователя oleg и устанавливает ему пароль cone.

При помощи команды set-user-password пользователь может сменить пароль на cube.

$ yt set-user-password oleg --current-password cone --new-password cube

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

Управление токенами

Для работы с YTsaurus через CLI или через API пользователю необходимо использовать токены. Для управления токенами в CLI поддержаны команды issue-token, revoke-token и list-user-tokens.

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

$ yt issue-token oleg --password cone
"2c5956daecdff8dd45d2561a8679acf5"

Пользователю oleg был выпущен токен 2c5956daecdff8dd45d2561a8679acf5. Как и в случае команды set-user-password пользователю обязательно указывать пароль, администратор же пароль пользователя указывать не должен.

При помощи команды list-user-tokens можно посмотреть информацию об активных токенах пользователя. YTsaurus не сохраняет токены пользователей, и команда list-user-tokens возвращает не токены, а их sha256-хеши. Например:

$ yt list-user-tokens oleg --password cone
["87a5d9406ccf6a42cca510d86e43b20e2943aa7ade7e9129f4f4f947e1b02574"]

$ echo -n '2c5956daecdff8dd45d2561a8679acf5' | sha256sum
87a5d9406ccf6a42cca510d86e43b20e2943aa7ade7e9129f4f4f947e1b02574  -

Команда revoke-token позволяет отозвать токен пользователя. Для отзыва токена можно указать как токен, так и его sha256-хеш, последнее позволяет отозвать все токены пользователя, используя результат list-user-tokens.

$ yt revoke-token oleg --token-sha256 87a5d9406ccf6a42cca510d86e43b20e2943aa7ade7e9129f4f4f947e1b02574  --password cube
$ yt revoke-token oleg --token 2c5956daecdff8dd45d2561a8679acf5  --password cube
$ yt list-user-tokens oleg --password cube
[]

Внимание

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