2014-10-03 37 views
0

我的问题归结为,当我在应用程序之间切换时,是否可以刷新用户的声明?从我可以说的答案很可能是“不”。我已经完成了添加“claimTypeRequired”的舞蹈,但这没有帮助。Windows身份基础来自AD FS的所需声明

假设我有多个应用程序,App1,App2,App3,App4,App5。

看来AD FS在您通过任何应用程序进行身份验证后不会再次受到攻击,并且在签出时没有办法,是吗?所以有了这个想法,我必须得到所有应用程序的所有声明,而不管我登录哪个应用程序。作为一个附注,我通过AD FS的SQL存储过程创建这些声明。 usp_GetAppClaims @AppID = 1, @UserGuid = 'GUID'

我为每个应用程序在各自的URI中存储了一组声明,其中包含多个值。类似于“角色”声明。例如:

我是不是做得比想要的要困难?如果我需要索取所有索赔,我对令牌尺寸略有担心。 20个应用程序,每个都有10-50个声明... 4kb Cookie最大权限?也许这与大多数情况无关。

回答

0

该问题最终成为两个使用相同cookie的应用程序。发现你必须在web.config中为Cookie指定一个唯一的名称,否则在切换应用程序时不会将其重定向回AD FS。

1

如果您在最后“发行转换规则”中执行索赔查询,则每个应用始终会获得自己的索赔集。

如果你有一个发行者链,并且声明来自链中的第一个,那么我不知道有任何方法可以区分每个RP(在链的末尾)。为了避免巨大的索赔集,一些人(如果可能的话)使用WIF ClaimsAuthenticationManager在RP中执行此操作。

+0

随着我不断研究这一点,ClaimsAuthenticationManager可能最终成为最佳选择。你得到的任何机会或许可以解释你的第一点? – MisterIsaak 2014-10-06 12:41:33

+0

如果ADFS服务器是IdP(该帐户在AD中),那么您可以在接受转换规则中查询您的SQL。然后,所有RP的索赔将在那里(大标记问题等)。如果您仅在(每RP)发行转换规则中执行此操作,则每个RP都有自己的一组索赔。 (在ADFS的小饼干,在RP的小饼干) – paullem 2014-10-06 18:34:57

+0

啊,好了,现在我明白你在说什么了。感谢您的解释。 – MisterIsaak 2014-10-06 21:36:37

1

Wrt,“刷新”即Value1的值在访问App1和App2之间改变,然后否 - 您必须注销,尽管“隐藏”。

就大型cookie而言,从前(WIF 3.5)有“会话模式”,即Switching to WIF SessionMode in ASP.NET

相关问题