Федеративная аутентификация и управление сеансами

Когда вы входите в Identityserver, файл cookie аутентификации idsrv сохраняется в браузере. Когда пользователь выходит из системы, файл cookie удаляется. Однако злоумышленник может украсть файл cookie и по существу использовать его, даже если пользователь вышел из системы.

Это кажется «нормальным» поведением и для многих поставщиков удостоверений.

Вопрос

Это принятое поведение?

Можно ли каким-либо образом обнаружить, что пользователь вышел из системы и что значение файла cookie (токен) idsrv больше недействительно? Должны ли мы, например, внедрить IAuthenticationSessionValidator для отслеживания пользователей, вышедших из системы? Или это то, что должно принадлежать приложению с помощью утверждения id_token session_state?


person jhougen    schedule 25.04.2017    source источник
comment
Этот билет имеет отношение к вашему вопросу? github.com/IdentityServer/IdentityServer3/issues/2921   -  person Arve    schedule 03.05.2017
comment
Нет. Есть два файла cookie, один в моем приложении, а другой в idsrv. Если я скопирую файл cookie в idsr и выйду из системы, вызывая конечную точку idsr endsession, я выйду из системы и увижу, что файл cookie удален, тогда я могу вставить свой файл cookie в idsr, используя, например, изменить файл cookie, я снова вошел в систему. Я считаю, что идентификатор сеанса (возможно, утверждение sid id_token) должен быть привязан к токену, хранящемуся в файле cookie, и его следует проверить. Это часто обрабатывается фреймворками, такими как управление сеансами .Net. Но мне кажется, что при переходе к федеративной аутентификации об этом забыли.   -  person jhougen    schedule 04.07.2017


Ответы (1)


В соответствии с требованием OWASP ASVS 3.2 сеансы должны аннулироваться при выходе пользователя из системы не должно быть возможности использовать тот же файл cookie после выхода из приложения. Это также имеет место при использовании других поставщиков удостоверений, таких как ADFS и AAD.

person jhougen    schedule 04.07.2017