我正在使用由WIF保护的ASP.NET MVC+WCF开发web应用程序。我正在使用主动STS。我遇到了一个问题,BootstrapToken过期了,但由于滑动过期,SessionSecurityToken仍然有效。我得到了例外:
ID3242: The security token could not be authenticated or authorized.
- 我可以延长引导令牌的到期时间吗
- SAM不检查cookie内的引导令牌是否过期,这是有效的行为吗。在我滑动会话到期的同一事件中,检查这一点的最佳位置是什么
SAM在会话cookie中不包括引导令牌。一旦SAM验证并建立会话,引导令牌在默认情况下实际上会被丢弃。因此,为了回答您的问题:
-
只有对引导令牌进行签名的身份提供程序才能控制令牌的生存期。SAM无法改变这一点。
-
SAM仅在身份验证期间验证引导过期时间。完成此操作并建立会话后,SAM不再需要引导令牌。
下面是我在这篇文章中的回答。
如果您使用的是Microsoft的Active Directory联合身份验证服务(AD FS),则可以将AD FS依赖方令牌的超时时间调整/增加为更长,这将延长引导令牌的使用寿命。
例如,我们遇到了一个问题,即我们正在获取新的会话令牌,但在AD FS Web SSO超时之前仍然有超时。其中一位开发人员发现,有一个设置可以延长依赖方令牌的生存期,该设置与Windows Identity Foundation(WIF)中的引导令牌相关。
设置如下:
Set-ADFSRelyingPartyTrust -TargetName YourTargetName -TokenLifetime 480
在我们将依赖方令牌的超时设置为与Web SSO令牌超时相同之后,它就工作了。
注意:您可以使用以下命令检查当前依赖方令牌的超时:
Get-ADFSRelyingPartyTrust -Name YourTargetName
注意II:您可以通过打开AD FS管理工具,单击左侧导航窗格中的"AD FS",然后单击右侧窗格中的操作窗格中的编辑联合身份验证服务属性…来检查Web SSO令牌的超时。