我们有一个网站,我们的用户通过从ADFS获取STS来访问该网站。 ADFS通过检查Active Directory中用户的组成员身份来发出声明。该网站使用WIF访问声明并处理身份验证。
有没有办法,当用户的AD数据发生变化时(例如,他们删除了所有的组成员资格),在他们对RP的声明中立即反映这些变化(同一会话,至少来自用户的PoV)?目前,如果我们撤销AD的成员资格,则该用户对RP(在其当前会话中)的声明不会受到影响。它们具有与撤销之前相同的声明和访问权限,直到用户的ADFS会话到期(可能需要数小时)。
e.g。用户U1通过ADFS登录我们的网站W1,稍微浏览一下,然后在AD中取消其会员资格。我们需要U1在短时间内(分钟)自动退出W1。如果没有注销,将WIF中的声明集重置以反映他们现在空的AD组成员身份也是可以接受的。
这可能吗?我能找到的所有文档似乎都假设网站本身(W1)知道用户何时终止会话 - 在我们的情况下W1不知道,会话到期的“触发器”(或至少是索赔修改)将来自AD。
答案 0 :(得分:1)
开箱即用 - 没有。
声明不是动态的 - 它们仅在登录时创建。
我能想到的唯一方法就是为你的应用程序。偶尔轮询AD,如果删除了成员资格,那么在“引擎盖下”进行应用程序注销。
下次用户尝试做某事时,WIF会看到他们没有会话,会去ADFS登录,ADFS会看到他们仍然登录并且会自动授予访问权限,即整个过程将是透明的。
由于再次登录使用,因此会更新声明,会员资格将不再是声明。