.. | ||
src/main | ||
LICENSE.txt | ||
pom.xml | ||
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
Добавить запуск скрипта через cron sudo crontab -e
раз в минут
*/5 * * * * <path_to_script>
либо раз в минуту
*/1 * * * * <path_to_script>