如何处理WIF中陈旧的声明?
以下是设置:
我有一个WIF STS,为许多不同的MVC Web应用程序提供身份验证。 STS还提供索赔,如特权,电子邮件等。
我有一个MVC应用程序我们会调用MyApp使用STS进行身份验证并使用所提供的声明。
我有一个MVC应用程序我们会调用MyManager,允许管理员更改任何用户的声明,例如与用户相关的权限。
问题在于:
用户" MisterUser"登录MyApp并获取包含其声明的FedAuth cookie - 包括自定义" MyAppUser" (特权)索赔。 MyApp会检查此声明以验证用户是否可以在MyApp上发出请求。
与MisterUser会议同时发布,"管理员"登录MyManager并从MisterUser中删除MyAppUser声明。
MisterUser仍然可以继续使用MyApp,直到他的会话到期,因为FedAuth cookie已经编写好并且适合该会话。
显然,我想在这里发生的是在Admin删除他的MyAppUser(特权)声明后立即关闭MisterUser的访问权限。我能完成这项任务的最佳方式是什么?
这完全有可能这是一个直接解决方案的常见问题,但我无法在数小时的搜索中发现任何真正的见解。
非常感谢任何帮助!
答案 0 :(得分:0)
正如您所说,声明对会话有效。它们不是动态的(如果你考虑一下)实现某种STS动态更新将是一场噩梦。
当您登录时声明会更新,因此处理此问题的唯一方法是注销然后登录"引擎盖下#34;所以用户不知道这一点。
我问了一个类似的问题 - 请参考:Updating claims with ADFS and WIF和那里的答案。