Аутентификация с помощью файла#

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

Важно

Для использования любого механизма аутентификации необходимо предварительно включить Шифрование клиентского трафика с помощью TLS и Аутентификация узлов в кластере (shared secret).

Конфигурация#

Конфигурацию необходимо задать на координаторе.

Задайте механизм аутентификации PASSWORD в etc/config.properties:

http-server.authentication.type=PASSWORD

Создайте файл etc/password-authenticator.properties, задайте имя аутентификатора file и укажите путь к файлу:

password-authenticator.name=file
file.password-file=/path/to/password.db
Параметры конфигурации:#

Название

Описание

file.password-file

Путь к файлу в локальной файловой системе координатора.

file.refresh-period

Как часто перезагружать информацию из файла. Значение по умолчанию: 5s.

file.auth-token-cache.max-size

Максимальный размер кэша паролей. Значение по умолчанию: 1000.

Структура файла#

Файл должен содержать пары <имя_пользователя>:<пароль>, по одной на строку. Имя пользователя должно быть задано явно. Пароль должен быть хеширован с помощью bcrypt или PBKDF2.

Пароль, хешированный bcrypt, начинается с $2y$:

test:$2y$10$BqTb8hScP5DfcpmHo5PeyugxHz5Ky/qf3wrpD7SNm8sWuA3VlGqsa

Пароль, хешированный PBKDF2, состоит из количества итераций, за которыми следуют salt и хеш в шестнадцатеричной форме:

test:1000:5b4240333032306164:f38d165fce8ce42f59d366139ef5d9e1ca1247f0e06e503ee1a611dd9ec40876bb5edb8409f5abe5504aab6628e70cfb3d3a18e99d70357d295002c3d0a308a0

Хеширование с помощью утилиты htpasswd#

Для хеширования пароля с помощью bcrypt можно использовать утилиту htpasswd. На операционных системах семейства Debian установить утилиту можно с помощью следующей команды:

sudo apt install apache2-utils

При генерации пароля необходимо указать cost c помощью параметра -C. CedrusData допускает использование хешей, имеющих cost не менее 8.

Создайте пустой файл:

touch password.db

Добавьте или обновите пароль для пользователя alice:

htpasswd -B -C 10 password.db alice

Просмотрите содержимое файла:

cat password.db