Только один Shibboleth SP на реверсе прокси для разных сайтов

Мне интересно, возможно ли иметь только одного поставщика услуг Shibboleth (SP), если вы будете передавать запросы всем своим сайтам через один обратный прокси (с разгрузкой SSL и т. Д.).

Итак, допустим, у меня есть следующие сайты в разных доменах:

example.org
blog.example.org
wiki.example.org

Сами сайты и их соответствующие веб-серверы находятся на своей собственной виртуальной машине и не могут напрямую связываться с внешним миром. У меня есть другая виртуальная машина, которая запускает только обратный прокси для всех этих доменов и передает запросы на веб-сервер на соответствующей виртуальной машине. Назовем этот обратный прокси proxy.example.org (обратите внимание, что это не будет доступным доменным именем).

Теперь вместо настройки SP для каждого сайта я бы хотел установить его только на proxy.example.org , настроив его так, чтобы каждый запрос на

example.org/secure
blog.example.org
wiki.example.org

запускал аутентификацию Shibboleth. После успешной аутентификации запрос передается. Возможно ли это?

Я спрашиваю, поскольку нашел только этот ресурс https://wiki.shibboleth.net/confluence/display/SHIB2/SPReverseProxy , который я нахожу очень неоднозначным, поскольку там только сказано

  • Местоположение / безопасность на ресурсе защищено Shibboleth SP
  • Shibboleth SP перехватывает запрос и генерирует SAML2 AuthnRequest с AssertionConsumerServiceURL https: // proxy.example.org /Shibboleth.sso/SAML2/POST

Так что я действительно не знаю, где должны быть установлены SP ...

1
задан 16 December 2015 в 15:06
1 ответ

Да, это возможно. Я настроил один прокси Shib несколько лет назад. Вот вся документация, которую я тогда написал (это настройка на Solaris, некоторые вещи на Linux могут отличаться). Вам понадобится сервер, который содержит приложение, которое вы хотите защитить, а также прокси-сервер с настройками Shibboleth и некоторыми правилами прокси на нем.

  • Установите Zone (или Linux Server) (будет использоваться в качестве прокси Shibboleth)
  • Скомпилируйте Shib Daemon (или просто установите его на linux)
  • Зарегистрируйте хост в реестре IDP Shib AAI Registry
  • Проверьте конфигурацию демона: shibd -t -c /opt/AAI/etc/shibboleth/shibboleth2.xml
  • После установки демона, мы должны настроить его на использование "прокси". Но сначала мы хотим протестировать нашу первоначальную установку. Откройте файл shibboleth2.xml и ищите плохой URL в файле. Все должно указывать на ваш сайт. Ищите Тип обработчика="Статус" и удалите ACL в конце. Ваш обработчик должен выглядеть так:
  • Теперь вы можете указать вашему браузеру на страницу Статуса, http://DOMAIN/Shibboleth.sso/Status. Если вы видите вывод XML, то все в порядке. Если нет, проверьте конфигурацию вашего shibboleth.
  • Теперь перейдите на Apache Webserver: Тестируйте один php или html файл, чтобы убедиться, что apache работает, как и ожидалось. Настройте приложение, которое вы хотите обезопасить с помощью прокси (это будет на другом сервере). Не забудьте отредактировать брандмауэр и разрешить доступ с (AAI) прокси к веб-серверу.
  • Теперь мы добавляем новую службу (это делается на AAI прокси):
    • Создаем новый CNAME, который указывает на shibboleth (aai) прокси-сервер
    • Вход на прокси-сервер aai через ssh
    • Редактирование shibboleth2.xml: Добавить новое переопределение приложения. Скопируйте этот корешок
    • Замените APP NAME и DOMAIN
    • Редактируйте /opt/csw/apache2/etc/extra/httpd-vhosts. conf (На linux будет по-другому)
    • Добавьте новый vhost.
  • Скопируйте этот корешок

    NameVirtualHost IPADDR:80.
    
     Имя сервера DOMAIN
     ServerAdmin foor@bar.com
     Перенаправление / https://DOMAIN/
     ErrorLog var/log/aai.error.log
     CustomLog var/log/aai.access.log обычный
    
    
     Имя сервера DOMAIN
     ServerAdmin foor@bar.com
     # Обработчик Shibboleth должен обрабатывать все запросы HTTPS...
     
     Отменить заказ, разрешить
     Разрешить от всех
     AuthType shibboleth
     Применение прибора ShibRequestSet
     ShibUseHeaders On
     Требуется шибболет
     
     # ...но проводить сеанс только в том месте, которое находится внизу.
     <Наличие/безопасность>
     AuthType shibboleth
     ShibRequireSession On
     Применение прибора ShibRequestSet
     ShibUseHeaders On
     Требовать действительного пользователя
     
     двигатель SSLEngine On
     SSLCertificateFile etc/server.crt
     SSLCertificateKeyFile etc/server.key
     SSLC-сертификатChainFile etc/server-ca.crt
     SSLProxyEngine на
     ProxyRequests off
     ProxyPass /secure https://WEBSERVERURL
     ProxyPassReverse /secure https://WEBSERVERURL
     ProxyPreserveHost On
     ErrorLog var/log/APPNAME.error.log
     CustomLog var/log/APPNAME.access.log обычный
    
    
    • Замените имя приложения, URL WEBSERVER, IP ADDR и DOMAIN, вам также придется изменить пути для вашей установки.

    • Перезапустите apache и shibd

Наслаждайтесь

.
2
ответ дан 3 December 2019 в 20:44

Теги

Похожие вопросы