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

Перенаправить переменные среды Shibboleth в Tomcat через Apache

Я использую Shibbolethv2.3 с веб-сервером Apache и сервером приложений Tomcat. Я использую Apache в качестве обратного прокси с помощью mod_proxy.so. Я не могу пересылать переменные среды Shibboleth из Apache в Tomcat. Я могу пересылать атрибуты в заголовках, но, как уже упоминалось в вики, этот подход небезопасен. Я пробовал пересылать переменные окружения с помощью следующей директивы:

SetEnv AJP_username $ {username}

затем на стороне Java я могу получить доступ к атрибуту: request.getAttribute ("username"); Странно то, что я получаю другое значение вместо значения, установленного Shibboleth. В результате я получаю имя учетной записи Windows. Если я использую любое другое имя атрибута, я получаю нулевое значение.

Я много искал и у меня закончились варианты. Пожалуйста, подскажите мне правильное решение.

Детали моей настройки:

  1. Версия Shibboleth: 2.3
  2. ОС: Windows XP SP3
  3. Веб-сервер: Apache 2.2
  4. Сервер приложений: Tomcat 6
  5. Прокси-модуль: mod_proxy.so

Убедитесь, что вы проксируете, используя 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