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>
|
|||
|
```
|
|||
|
|
|||
|
|
|||
|
|