Причина бесконечной петли перенаправлений между IDP и SP

Я устраняю проблему, связанную с бесконечными переадресациями с помощью Kentor Authservices на стороне SP и клона Shibboleth на стороне IDP. Мой вопрос: каковы возможные причины этого и как я могу перехватить и зарегистрировать решение Кентора о перенаправлении обратно на IDP?


person dmitreyg    schedule 09.07.2016    source источник


Ответы (1)


Обычно это происходит, когда у вас есть разделы авторизации в web.config и вы настроили ~/AuthServices/SignIn в качестве URL-адреса для входа с помощью <authentication mode="forms">.

Если это так, попробуйте временно настроить другой URL-адрес для входа, который не запускает перенаправление на Idp напрямую. Это может быть простая страница, содержащая только ссылку на ~/AuthServices/SignIn.

Затем используйте Fiddler или инструменты отладки вашего браузера, чтобы увидеть последовательность перенаправления. Это правильный способ начать устранение неполадок, даже если мое предположение о настройках web.config выше неверно.

person Anders Abel    schedule 10.07.2016
comment
Спасибо за ваш ответ. Этот трюк помог разорвать цикл, но проблема, по сути, осталась прежней — после успешного входа в Shibboleth IDP меня перенаправляют обратно на страницу временного входа. Из журналов мне кажется, что это происходит где-то внутри библиотеки AuthServices. Я сравнил токены SAML с теми, которые я получаю от Kentor stubidp. Самая большая разница в том, что элемент Signature в SAML Kentor является корневым элементом, а SAML в IDP Shibboleth не находится в элементе Assertions. Также NameID в Shibboleth является временным идентификатором. - person dmitreyg; 12.07.2016
comment
Проблема решилась добавлением косой черты после returnUrl. Извините :) - person dmitreyg; 13.07.2016
comment
@dmitreyg не могли бы вы поделиться подробностями? Я сталкиваюсь с этой же проблемой. - person silverArc; 15.09.2016
comment
Подробностей немного — как я уже сказал, добавление косой черты в конце параметра конфигурации returnUrl устранило эту проблему: ‹kentor.authServices entityId=localhost:30030 returnUrl=localhost:30030 - person dmitreyg; 20.09.2016