WIF STS с несколькими приложениями, не синхронизированными

Предположим, у меня есть два веб-приложения и одна служба STS: 1. Портал администрирования, где я могу предоставлять привилегии пользователям. 2. Портал продаж, где пользователи могут делать вещи, основываясь на этих привилегиях.

Теперь предположим, что у меня есть STS, который предоставляет токены безопасности с истечением 8 часов для портала продаж. Токен содержит утверждения, которые, помимо прочего, содержат информацию о привилегиях для пользователя.

Теперь представьте себе сценарий, когда на портале администрирования пользователю удаляется привилегия, а изменения сохраняются в базе данных. Поскольку пользователь уже вошел в портал продаж с токеном безопасности, срок действия которого еще не истек, портал продаж не будет знать, что привилегия была удалена.

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

Есть ли лучший подход к этой проблеме несинхронизации?

1 ответ

Решение

Удаление STS немного радикально:-). У вас есть для этого причина (SSO, федерация и т. Д.). У вас есть несколько вариантов: уменьшить время истечения токена до разумного значения для изменчивости ваших изменений (8 часов может быть чрезмерным) или перенести конфиденциальную информацию об авторизации (например, привилегии) ​​в приложение, чтобы она проверялась каждый раз,

Вы можете сделать "обогащение требований" на уровне приложения (через AuhtenticationManager в WIF) и по-прежнему использовать модель утверждений из кода вашего приложения.

Технически нет синхронизации между приложением и STS. Токен представляет собой снимок пользовательских атрибутов на момент выдачи и действует до истечения срока его действия.

Другие вопросы по тегам