# 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 Добавить запуск скрипта через cron sudo crontab -e ``` раз в минут */5 * * * * либо раз в минуту */1 * * * * ```