Пересылать переменные среды Shibboleth в Tomcat через Apache
Я использую Shibbolethv2.3 с веб-сервером Apache и сервером приложений Tomcat. Я использую Apache в качестве обратного прокси-сервера, используя mod_proxy.so. Я не могу переслать переменные окружения Shibboleth из Apache в Tomcat. Я могу переслать атрибуты в заголовках, но, как уже упоминалось в вики, этот подход небезопасен. Я попытался переслать переменные среды с помощью следующей директивы:
SetEnv AJP_username $ {имя пользователя}
затем на стороне Java я могу получить доступ к атрибуту с помощью: request.getAttribute("username"); Странная вещь здесь в том, что я получаю другое значение вместо значения, установленного Шибблетом. В результате я получаю имя учетной записи Windows. Если я использую любое другое имя атрибута, я получаю нулевое значение.
Я много искал и исчерпал варианты. Пожалуйста, направьте меня к правильному решению.
Мои настройки:
- Версия Shibboleth: 2.3
- ОС: Windows XP SP3
- Веб-сервер: Apache 2.2
- Сервер приложений: Tomcat 6
- Прокси-модуль: mod_proxy.so
1 ответ
Убедитесь, что вы используете прокси через ajp в httpd.conf
ProxyPass /example ajp://example.org/example
И в shibboleth2.xml в разделе ApplicationDefaults нам нужно добавить
attributePrefix="AJP_"
Так это выглядит примерно так
<ApplicationDefaults id="default" policyId="default"
entityID="https://idp.example.org"
REMOTE_USER="eppn persistent-id targeted-id"
signing="false" encryption="false" attributePrefix="AJP_">
Проверьте этот вопрос в списке рассылки shib: http://groups.google.com/group/shibboleth-users/browse_thread/thread/2bdd3e272baf49a2?pli=1