78 lines
3.1 KiB
Markdown
78 lines
3.1 KiB
Markdown
# 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>
|
||
```
|
||
|
||
|
||
|