Я использую Shibbolethv2.3 с веб-сервером Apache и сервером приложений Tomcat. Я использую Apache в качестве обратного прокси с помощью mod_proxy.so. Я не могу пересылать переменные среды Shibboleth из Apache в Tomcat. Я могу пересылать атрибуты в заголовках, но, как уже упоминалось в вики, этот подход небезопасен. Я пробовал пересылать переменные окружения с помощью следующей директивы:
SetEnv AJP_username $ {username}
затем на стороне Java я могу получить доступ к атрибуту: request.getAttribute ("username"); Странно то, что я получаю другое значение вместо значения, установленного Shibboleth. В результате я получаю имя учетной записи Windows. Если я использую любое другое имя атрибута, я получаю нулевое значение.
Я много искал и у меня закончились варианты. Пожалуйста, подскажите мне правильное решение.
Детали моей настройки:
Убедитесь, что вы проксируете, используя 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