release version 1.11.0
This commit is contained in:
@ -0,0 +1,79 @@
|
||||
# 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
|
||||
```
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user