Добавление аутентификации Shibboleth в Symfony

Я разрабатываю приложение Symfony (изучаю Symfony с целью заменить им существующий PHP-скрипт "старой школы"), и у меня возникла проблема с размещением его "за" нашей аутентификацией Shibboleth.

Зачем это делать? Для этого приложения мне нужен $_SERVER['REMOTE_USER']. У приложения нет локальных учетных записей, пользователь не входит в приложение, но, как и многие ресурсы, мы защищаем их с помощью некоторой формы аутентификации.

У меня есть два сайта - виртуальные хосты, работающие на одном физическом сервере. (СентОС 7). Первый сайт имеет в своем файле .htaccess следующее:

authtype shibboleth
ShibRequestSetting requireSession 1
require valid-user

У меня там тоже есть файл "phpinfo.php", и я могу запустить этот скрипт и, после шага аутентификации Shibboleth, получить вывод, который включает правильное значение REMOTE_USER.

Другой виртуальный хост настроен как приложение Symfony 3.1. Я добавил эти три строки в начало его файла «.htaccess», но после прохождения шага аутентификации Shibboleth браузер зацикливается и дальше не идет. (В Chrome значок «фавикон» заменен зацикленной стрелкой, и он никогда не перестает вращаться.)

Если я нажму, а затем просмотрю источник этой все еще пустой страницы, я увижу следующее сообщение об ошибке:

Error Message: Error decoding authentication request message

Я не уверен, как начать решать эту проблему, и надеялся, что кто-то видел это и знает, как помочь.

Спасибо.

Лучший, Стивен


person Stephen Spencer    schedule 10.10.2016    source источник
comment
Почти наверняка петля перенаправления. Я изменил DocumentRoot виртуального хоста — /var/www/vhost/candy — и поместил туда специфичный для Shibboleth файл .htaccess. Папка Symfony находится в /var/www/vhost/candy/bar, и если я укажу в своем браузере «candy/bar/web/», я пройду шаг Shibboleth, а затем перейду к приложению Symfony.   -  person Stephen Spencer    schedule 13.10.2016


Ответы (1)


Насколько я понимаю, вы пытаетесь сделать часть поставщика услуг в Symfony, и у вас уже есть IDP, работающий с Shibboleth.

В моем случае у меня была аналогичная проблема, потому что после утверждения apache SP возвращался к корневому URL-адресу. После прочтения большого количества документации я узнал, что если это не установлено правильно, вы можете добавить атрибут в конфигурацию shibbolet2.xml с именем homeURL:

 <ApplicationDefaults entityID="https://sso/saml2/idp/metadata.php"

    REMOTE_USER="mail"

    homeURL="https://symfonyApp/redirect/after/login">

Попробуйте и перезапустите демон shib: /etc/init.d/shibd restart

Может быть и другой. Но мне кажется, что на вашей стороне SP есть некоторая неправильная конфигурация.

person Martin Fasani    schedule 25.09.2017