我的问题归结为,当我在应用程序之间切换时,是否可以刷新用户的声明?从我可以说的答案很可能是“不”。我已经完成了添加“claimTypeRequired”的舞蹈,但这没有帮助。Windows身份基础来自AD FS的所需声明
假设我有多个应用程序,App1,App2,App3,App4,App5。
看来AD FS在您通过任何应用程序进行身份验证后不会再次受到攻击,并且在签出时没有办法,是吗?所以有了这个想法,我必须得到所有应用程序的所有声明,而不管我登录哪个应用程序。作为一个附注,我通过AD FS的SQL存储过程创建这些声明。 usp_GetAppClaims @AppID = 1, @UserGuid = 'GUID'
我为每个应用程序在各自的URI中存储了一组声明,其中包含多个值。类似于“角色”声明。例如:
- http://schemas.MyCompany.com/identity/claims/App1
- 值1
- 值2 - http://schemas.MyCompany.com/identity/claims/App2
- 值1
- 值2
- 值3 - http://schemas.MyCompany.com/identity/claims/App3
- http://schemas.MyCompany.com/identity/claims/App4
- http://schemas.MyCompany.com/identity/claims/App5
我是不是做得比想要的要困难?如果我需要索取所有索赔,我对令牌尺寸略有担心。 20个应用程序,每个都有10-50个声明... 4kb Cookie最大权限?也许这与大多数情况无关。
随着我不断研究这一点,ClaimsAuthenticationManager可能最终成为最佳选择。你得到的任何机会或许可以解释你的第一点? – MisterIsaak 2014-10-06 12:41:33
如果ADFS服务器是IdP(该帐户在AD中),那么您可以在接受转换规则中查询您的SQL。然后,所有RP的索赔将在那里(大标记问题等)。如果您仅在(每RP)发行转换规则中执行此操作,则每个RP都有自己的一组索赔。 (在ADFS的小饼干,在RP的小饼干) – paullem 2014-10-06 18:34:57
啊,好了,现在我明白你在说什么了。感谢您的解释。 – MisterIsaak 2014-10-06 21:36:37