Avanpost FAM/MFA+ : 4.5.2. Настройка Reverse Proxy

Общие сведения

Механизм аутентификации по технологии Reverse Proxy, реализуемый Системой, ожидает поступления запросов пользователей по отдельному порту.

Для корректной работы механизма порт Системы, предназначенный для обработки входящих HTTP/HTTPS-запросов, должен быть опубликован на общедоступном веб-сервере посредством веб-сервера или прокси-сервера. При этом порт Системы, обслуживающий Reverse Proxy-запросы, может обслуживать одновременно несколько веб-приложений, подключенных для аутентификации посредством этого механизма.


Рисунок – Общая схема решения

Настройка параметров интерфейса в конфигурационном файле

Для настройки параметров публикации порта Reverse Proxy-сервера настройте параметры секции reverseproxy.server в конфигурационном файле config.json Системы.

Параметры секции radiusServer:

ПараметрНазначение параметраДопустимые значения
hostIPv4-адрес и порт сетевого интерфейса, на котором ожидаются входящие подключенияIPv4-адрес или localhost
portНомер порта, на котором должен быть открыт интерфейсЦелое число в диапазоне от 0 до 65535

Пример корректно настроенной секции reverseproxy.server:

"reverseproxy.server": {
    "host": "localhost",
    "port": 4010
},

После внесения изменений в параметры config.json требуется перезапустить службу Сервера Системы

Настройка публикации интерфейса Reverse Proxy на веб-сервере

Представленные ниже настройки будут корректны в случае необходимости настройки проксирования запросов по HTTP на HTTP целевого приложения, или c HTTPS на HTTPS целевого приложения. Схема с изменением HTTPS на HTTP или HTTP на HTTPS требует дополнительных настроек на стороне Nginx, выполнение которых выходит за рамки текущего руководства

1. Создать новый файл в каталоге /etc/nginx/sites-available с расширением *.conf (например ssoreverse.conf) или отредактировать уже существующий файл idp.conf.

server {
    listen 80;
    listen 443 ssl;
    server_name mail.avanpost.demo;
    ssl_certificate /opt/idp/cert/cert.pem;
    ssl_certificate_key /opt/idp/cert/key.pem;
    location / {
        proxy_pass http://127.0.0.1:4010;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

, где:

  • server_name - имя, по которому будет происходить обращение через браузер;
  • ssl_certificate и ssl_certificate_key - путь до сертификата и ключа. Могут быть использованы тот же ключ и сертификат, что были сгенерированы на стороне самого Сервера Системы и указаны в конфигурационном файле config.json в параметрах cert и private_key.
  • proxy_pass - по умолчанию 4010 порт, но может быть настроен произвольный порт.

2. В конце конфигурационного файла на стороне Nginx добавить секцию:

server {
    listen      80;
    listen      443;
    server_name "";
    return      444;
}

Пример корректно настроенного конфигурационного файла для публикации нескольких веб-приложений посредством механизма Reverse Proxy:

server {
    listen 80;
    listen 443 ssl;
    server_name mail.avanpost.demo;
    ssl_certificate /opt/idp/cert/cert.pem;
    ssl_certificate_key /opt/idp/cert/key.pem;
    location / {
        proxy_pass http://127.0.0.1:4010;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

server {
    listen 80;
    listen 443 ssl;
    server_name portal.avanpost.demo;
    ssl_certificate /opt/idp/cert/cert.pem;
    ssl_certificate_key /opt/idp/cert/key.pem;
    location / {
        proxy_pass http://127.0.0.1:4010;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

server {
    listen 80;
    listen 443 ssl;
    server_name tracker.avanpost.demo;
    ssl_certificate /opt/idp/cert/cert.pem;
    ssl_certificate_key /opt/idp/cert/key.pem;
    location / {
        proxy_pass http://127.0.0.1:4010;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

server {
    listen      80;
    listen      443;
    server_name "";
    return      444;
}

Настройка приложения на стороне административной консоли Системы

Для последующей настройки и публикации веб-приложения посредством Reverse Proxy задайте два параметра:

  • Базовый URL - тот URL, который был на предыдущем шаге указан в параметре server_name;
  • URL приложения - целевой адрес (хост или IP-адрес), на котором размещено и доступно со стороны Сервера Системы целевое веб-приложение.


Обсуждение