Shibboleth SSO не выполняет выход пользователя из системы при закрытии и повторном открытии браузера, кажется, это вызвано конфигурацией?
Моя установка находится в Windows 10 с IIS7. Shibboleth SP Версия 3.4.1. SP устанавливается как служба Windows. Тестирование в браузере Chrome. Поскольку мое приложение работает в IIS, я вынужден использовать Shibboleth2.XML для настройки поставщика услуг Shibboleth.
Из-за требований приложения я недавно внес изменения в конфигурацию элемента. Ранее Shib SP защищал все, что находится под корневым путем. то есть:
<RequestMapper type="Native">
<RequestMap>
<Host name="domainName" port="443" scheme="https" requireSession="true" authType="shibboleth">
</Host>
</RequestMap>
</RequestMapper>
Теперь мне по-прежнему нужен Shib SP для защиты корневого пути доменного имени, но /api
дополнительный путь должен быть оставлен открытым для вызовов API без аутентификации. Кроме того, `/api/user'по-прежнему должен быть защищен, поскольку эта конечная точка используется для входа в систему.
<RequestMapper type="Native">
<RequestMap>
<Host name="domainName" port="443" scheme="https" requireSession="true" authType="shibboleth">
<Path name="api" requireSession="false" authType="shibboleth">
<Path name="user" requireSession="true" authType="shibboleth">
</Path>
</Path>
</Host>
</RequestMap>
</RequestMapper>
После перезапуска службы Shib SP конфигурация работает должным образом, root и / api / user защищены, другие конечные точки в / api - нет.
Однако приложение начинает проявлять новое поведение. Перед этим изменением закрытие и повторное открытие браузера приведет к выходу пользователя из системы, то есть SP обнаружит, что пользователь больше не вошел в систему, и перенаправит пользователя на страницу входа. Однако прямо сейчас, если я запрашиваю корневой путь из браузера, SP не перенаправляет пользователя на страницу входа, а передает пользователя прямо на страницу запроса. Проблема в том, что даже если пользователь видит страницу, он / она не вошел в систему, и это вызывает исключение со стороны приложения. Эта проблема будет возникать до тех пор, пока пользователь не обновит страницу, и в этом случае он будет перенаправлен на страницу входа в систему, как обычно. Причина, по которой я думаю, что конфигурация вызвала проблему, заключается в том, что 1) Защита всего сайта работает нормально. 2) Если я изменю атрибут "requiredSession" в / api<Path>
element значение true, тогда сайт также будет работать в обычном режиме. Я не вижу ничего необычного в shibd.log.
Прямо сейчас я не понимаю, что еще попробовать. Может ли кто-нибудь дать некоторое представление о том, почему возникает эта проблема, или с чего начать ее отладку?