Как бороться с просроченными заявками в WIF?

Как бороться с просроченными заявками в WIF?

Вот настройка:

  1. У меня есть WIF STS, который обеспечивает аутентификацию для многих различных веб-приложений MVC. STS также предоставляет утверждения, такие как привилегии, электронная почта и т. д.

  2. У меня есть приложение MVC, которое мы назовем MyApp, которое использует STS для аутентификации и использует предоставленные утверждения.

  3. У меня есть приложение MVC, которое мы назовем MyManager, которое позволяет администратору изменять любые требования пользователя, например привилегии, связанные с пользователем.

Вот проблема:

  1. Пользователь «MisterUser» входит в MyApp и получает файлы cookie FedAuth, содержащие его утверждения, включая пользовательское утверждение «MyAppUser» (привилегия). MyApp проверяет это утверждение, чтобы убедиться, что пользователь может делать запросы в MyApp.

  2. Параллельно с сеансом MisterUser «Администратор» входит в MyManager и удаляет утверждение MyAppUser из MisterUser.

  3. MisterUser по-прежнему может продолжать использовать MyApp до истечения срока его сеанса, потому что файлы cookie FedAuth уже записаны и подходят для этого сеанса.

Очевидно, что я хочу, чтобы здесь произошло закрытие доступа MisterUser сразу после того, как Admin удалит его заявку MyAppUser (привилегия). Как лучше всего выполнить эту задачу?

Вполне возможно, что это распространенная проблема с простым решением, но я не смог обнаружить каких-либо реальных идей после нескольких часов поиска.

Любая помощь приветствуется!


person mark.metzner    schedule 13.05.2014    source источник
comment
При использовании ADFS существует запрос на выход, который вы можете попробовать использовать, см. сайты">SOlink   -  person ManyRootsofAllEvil    schedule 13.05.2014


Ответы (1)


Как вы утверждаете, претензии действительны для сеанса. Они не являются динамическими, и (если подумать) реализация какого-либо динамического обновления STS была бы кошмаром.

Заявки обновляются при входе в систему, поэтому единственный способ справиться с этим - выйти из системы, а затем войти «под капотом», чтобы пользователь не знал об этом.

Я задал аналогичный вопрос - см.: Обновление утверждений с помощью ADFS и WIF и ответ там.

person rbrayb    schedule 13.05.2014
comment
Спасибо за быстрый ответ! Ключевым моментом здесь было бы знание того, когда выходить из системы и входить в систему под капотом, и это действительно было бы кошмаром для реализации, как вы заявляете. Я предполагаю, что время сеанса этих требований должно быть приемлемым риском. - person mark.metzner; 13.05.2014