Аутентификация с помощью файла#
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
Название |
Описание |
---|---|
|
Путь к файлу в локальной файловой системе координатора. |
|
Как часто перезагружать информацию из файла. Значение по умолчанию: |
|
Максимальный размер кэша паролей. Значение по умолчанию: |
Структура файла#
Файл должен содержать пары <имя_пользователя>:<пароль>
, по одной на строку.
Имя пользователя должно быть задано явно.
Пароль должен быть хеширован с помощью 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