Использование конфигурации 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
s. Приложения не на самом Apache, они просто пересылаются.
Я, вероятно, могу прослушивать два отдельных порта (например, 443 и 444) и настроить агент на основе порта. Но это просто смешно. Это кажется общей проблемой, но моя конфигурация просто не будет работать.
Итак, по сути, как настроить два (или более) прокси-приложения для использования альтернативной конфигурации агента?