Я использую SimpleSAMLphp (SSP) для обработки аутентификации для моего сайта Yii (через удаленный IdP), и версия 1.16.3 работает нормально. Однако, когда я обновляю свой файл composer.json и извлекаю версию 1.17.2, локальный сеанс PHP на моем веб-сайте больше не разрушается, и пользователь остается в системе. Однако пользователь успешно вышел из IdP.)
Я немного прогуглил и рассмотрел обсуждения, которые выглядели актуальными:
Я также рассмотрел некоторые обсуждения в списке рассылки SimplSAMLphp:
Кроме того, я отслеживал процесс выхода из системы, используя SSP 1.16.3 и 1.17.2, записывая каждый заголовок Cookie в запросах, заголовок Set-Cookie в ответах и существующие файлы сеансов в несколько этапов, что показало некоторые различия ... но я не знаю, что сделать вывод из этой информации.
Когда я начинаю процесс выхода из системы на моем веб-сайте (который построен с использованием Yii 1.x) ...
- Я начинаю с того, что открываю чистый докер-контейнер моего сайта, открываю новое личное окно Firefox и открываю SAML Tracer. Я проверяю, что в данный момент на сервере нет файлов сеансов (т. Е. В новом контейнере Docker).
- Я иду через процесс входа в систему.
- 1.16.3 и 1.17.2 ведут себя почти одинаково. В конце процесса входа в систему ...
- Для обоих файлов мой сеансовый файл cookie сеанса PHP существует и составляет 7722 байта.
- 1.16.3: Файл сеанса моего файла cookie сеанса SSP существует и составляет 2294 байта.
- 1.17.2: Файл сеанса моего файла cookie сеанса SSP существует и составляет 2302 байта.
- Я захожу на
/auth/logout/
на моем сайте, и браузер покорно отправляет мои текущие сессионные файлы cookie PHP (PHPSESSID
) и SSP (SimpleSAML
).
- 1.16.3: заголовки Set-Cookie не возвращаются.
- 1.17.2: заголовок Set-Cookie возвращается для cookie сеанса SSP, но значение такое же, как и раньше.
- Я перенаправлен вне офиса (на удаленный IdP) как часть процесса выхода из системы.
- Я вернулся на
/simplesaml/module.php/saml/sp/saml2-logout.php/default-sp?SAMLRequest=…
(и вместе с текущими файлами cookie сеансов PHP и SSP).
- 1.16.3: заголовок Set-Cookie возвращается для cookie-файла сеанса SSP, но значение такое же, как и раньше.
- 1.17.2: два разных заголовка Set-Cookie возвращаются для cookie сеанса SSP, ни один из которых не соответствует предыдущему значению.
- Я снова перенаправлен вне офиса, как еще один шаг в процессе выхода из SAML.
- Я вернулся в
/
(корень моего сайта) с моим (неизменным) cookie-файлом сеанса PHP и (самым последним) cookie-файлом сеанса SSP.
- 1.16.3:
- заголовок Set-Cookie возвращается для cookie-файла сеанса PHP, давая ему новое значение.
- файл сеанса для предыдущего cookie-файла сеанса PHP был удален с сервера.
- файл сеанса для нового файла cookie сеанса PHP пуст.
- файл сеанса для самого последнего файла cookie сеанса SSP составляет 474 байта.
- Я больше не захожу на свой сайт.
- 1.17.2:
- заголовки Set-Cookie не возвращаются для файлов cookie сеанса PHP или SSP.
- файл сеанса для файла cookie сеанса PHP составляет 7722 байта.
- файл сеанса для файла cookie сеанса SSP составляет 338 байт.
- Я все еще вошел в систему на моем веб-сайте (но не на IdP).
Я могу (вроде) облегчить проблему, сказав Yii во время процесса выхода из системы, чтобы он возвратил пустое значение для файла cookie сеанса PHP (PHPSESSID
) и установил его срок действия час назад, но так как он оставляет файл сеансаСам по себе этот подход кажется неудовлетворительным.
Учитывая эту информацию, есть ли у кого-нибудь какие-либо идеи или указания относительно того, куда я мог бы обратиться, чтобы попытаться определить, что может быть причиной этого?
В настоящее время я не знаю, является ли это результатом того, что я неправильно использовал Yii, неправильно использовал SSP или ошибка в SSP 1.17.2.
У меня естьпока не удалось отогнать это до минимального воспроизводимого примера, и я прошу прощения за это.Код с открытым исходным кодом, хотя я сомневаюсь, что кто-то захочет покопаться в нем: