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