Назад | Перейти на главную страницу

Использование конфигурации AmAgent на двух разных прокси-шлюзах Apache

Для аутентификации пользователей наших приложений у меня есть установка, которую можно представить в виде следующей диаграммы:

У меня есть сервер с OpenAM на нем (OpenSSO Enterprise на схеме), иметь несколько клиентских серверов и использовать Apache2 (HTTPD) как обратный прокси-сервер с двумя конфигурациями агентов. У меня есть функциональный поток аутентификации и перенаправления с использованием следующей конфигурации виртуального хоста:

<VirtualHost *:443>
    AmAgent On
    AmAgentConf /opt/web_agents/apache24_agent/bin/../instances/agent_1/config/agent.conf

    ProxyPreserveHost On
    ProxyPass /application1 https://server1.com:10443/application1
    ProxyPassReverse /application1 https://server1.com:10443/application1
</VirtualHost>

Я подключаюсь к https://reverseproxy.com/application1, перенаправить для аутентификации OpenAM и перенаправиться на мою целевую страницу на server1.com после входа в систему. У меня также есть вторичная конфигурация (agent_2), который выполняет правильную авторизацию на основе профиля политики, настроенного в OpenAM.

Моя проблема возникает, когда я хочу настроить две разные конфигурации OpenAM на двух разных ProxyPass/ProxyPassReverse экземпляры. В приведенном выше фрагменте используется AmAgentConf на всем в пределах виртуального хоста, прослушивающего порт 443. Но я хочу, чтобы два приложения, оба доступные по одному и тому же URL-адресу обратного прокси-сервера, использовали правильную конфигурацию агента. В идеале я бы хотел что-то вроде следующего:

<VirtualHost *:443>
    ProxyPreserveHost On

    ProxyPass /application1 https://server1.com:10443/application1
    ProxyPassReverse /application1 https://server1.com:10443/application1

    ProxyPass /application2 https://server2.com:443/application2
    ProxyPassReverse /application2 https://server2.com:443/application2

    <Proxy "https://server1.com:10443/*">
        AmAgent On
        AmAgentConf /opt/web_agents/apache24_agent/bin/../instances/agent_1/config/agent.conf
    </Proxy>

    <Proxy "https://server2.com:443/*">
        AmAgent On
        AmAgentConf /opt/web_agents/apache24_agent/bin/../instances/agent_2/config/agent.conf
    </Proxy>
</VirtualHost>

Но AmAgent и AmAgentConf не допускаются в <Proxy/> директива.

centos httpd[1238]: AH00526: Syntax error on line 28 of /etc/httpd/conf.d/default-site.conf:
centos httpd[1238]: AmAgent not allowed here

Я прочитал документацию OpenAM о настройка OpenAM на виртуальных хостах, но я не настраиваю два отдельных DocumentRootс. Приложения не находятся на самом Apache, они просто пересылаются.

Я, вероятно, могу прослушивать два отдельных порта (например, 443 и 444) и настраивать агент на основе порта. Но это просто смешно. Это похоже на обычную проблему, но моя конфигурация просто не работает.

Итак, по сути, как настроить два (или более) прокси-приложения для использования альтернативной конфигурации агента?