entaxy-public/system/auth/basic-auth/htpasswd
Сергей Крючков 87c6dc76d0 ENTAXY-392 release version 1.8.2.2 2022-09-14 17:01:04 +03:00
..
src/main ENTAXY-248 release 1.8.1 2022-02-28 15:22:34 +03:00
LICENSE.txt initial public commit 2021-09-06 20:08:18 +03:00
README.md ENTAXY-248 release 1.8.1 2022-02-28 15:22:34 +03:00
pom.xml ENTAXY-392 release version 1.8.2.2 2022-09-14 17:01:04 +03:00

README.md

SYSTEM :: ENTAXY :: BASIC AUTH :: HTPASSWD

Генерация htpasswd файла, сервис выдачи файла и checksum Работает с nginX шифрования MD5 и SHA-1

Описание данного подхода аутентификации:

  1. Nginx по умолчанию собран с модулем ngx_http_auth_basic_module, который проводит базовую аутентификацию через файлы htpasswd.
  2. Файл passwd периодически или по событиям синхронизируется между нодами при помощи скрипта синхронизации, который вызывает Rest сервис шины. (Rsync использовать нельзя, так как порты закрыты.)
  3. Аутентификация делается только на Nginx без доп. нагрузки на шину
  4. Файл хранится на сервере nginx и аутентификация будет работать всегда
  5. Подход рассчитан на балансировщики реализующие basic аутентификацию с использованием htpasswd

Сборка

Сборка осуществляется командой

mvn clean install

Файл конфигурации модуля ru.entaxy.esb.system.basic_auth.htpasswd.cfg хранится в SYSTEM :: ENTAXY :: Features

Сервис Htpasswd

Настраивается свойствами

htpasswd.service.host по умолчанию 0.0.0.0

htpasswd.service.port по умолчанию 9091

htpasswd.service.root.path по умолчанию /htpasswd

Методы:

GET http://localhost:9091/htpasswd - получение содержимого файла htpasswd

GET http://localhost:9091/htpasswd/checksum - получение checksum текущего htpasswd

Кластер:

Для избежания рассинхронизации файлов htpasswd на разных серверах требуется настроить шару между карафами и установить адрес этой папки в свойство

htpasswd.file.directory=/mnt/share

Скрипт сихронизации htpasswd для nginX

Расположен в папке resources/script/htpasswd-checker.sh

Запускается из любой папки расположенной на сервере.

Перед запуском проверить и при необходимости поправить переменные в скрипте

  • KARAF_HOST_NAMES=("http://192.168.122.93:9091" "http://192.168.122.94:9091") - караф сервера с запущеным сервисом htpasswd
  • HTPASSWD_STORAGE=/etc/nginx/htpasswd - адрес файла htpasswd, на который настроен nginX
  • LOGFILE="htpasswd-sync.log" - адрес лог файла

Добавить запуск скрипта через cron sudo crontab -e

раз в минут
*/5 * * * * <path_to_script> >> <path_to_log_file> 2>&1

либо раз в минуту
*/1 * * * * <path_to_script> >> <path_to_log_file> 2>&1