此案例与Wiktor Zychla的问题非常相似,请参阅How to set the timeout properly when federating with the ADFS 2.0
我们遇到了相同的行为,ADFS很乐意将用户重定向回Sharepoint网站并重新创建FedAuth cookie,即使ADFS应提示输入凭据 - 我们希望用户在一段空闲时间后重新进行身份验证。基本上看起来会话总是滑动。
我们已经禁用了持久性cookie,因此在会话结束时通过关闭浏览器来删除FedAuth cookie,因此在关闭所有浏览器窗口并启动新会话后,用户必须重新进行身份验证,这样才能正常工作。
据我所知,ADFS管理单元中的Web SSO生存期设置控制用户需要在AD FS上重新进行身份验证的时间(再次输入其凭据)。 Tokenlifetime和LogonTokenCacheExpirationWindow一起控制,当Sharepoint重定向到AD FS以便更新FedAuth cookie时。
以下是http://msdn.microsoft.com/en-us/library/hh446526.aspx的引用:
要强制用户在重定向回ADFS时重新输入凭据,应将ADFS中的Web SSO生存期设置为小于或等于SAMLtokenlifetime减去LogonTokenCacheExpirationWindow的值。
所以,我们做了以下事情:
1。设置SAML令牌的生命周期
Add-PSSnapin Microsoft.ADFS.PowerShell
Set-AdfsRelyingPartyTrust –TargetName "[ourrelayingpartytrustreference]" –TokenLifeTime 7
2。设置LogonTokenCacheExpirationWindow(并禁用持久性cookie)
Add-PSSnapin Microsoft.SharePoint.Powershell -EA 0
$sts = Get-SPSecurityTokenServiceConfig
$sts.UseSessionCookies = $true
$sts.LogonTokenCacheExpirationWindow = (New-Timespan -Minutes 1)
$sts.Update()
iisreset
第3。调整后的Web SSO生存期:AD FS 2.0管理控制台管理单元中的5分钟(在Powershell中运行Get-ADFSProperties正确返回SsoLifetime:5)
因此预期的结果是:
当前的实际行为(步骤1-4类似):
(5。)AD FS不会提示输入凭据,浏览器会重定向到Sharepoint页面并重新创建FedAuth cookie。
所以 - 对我们来说,看起来AD FS会话永远不会过期,无论我们做什么。 如果我们创建将LogonTokenCacheExpirationWindow值设置为高于SAMLtokenlifetime的错误配置(例如,LogonTokecacheExpirationWindow = 8和SAMLtokenlifetime = 7),我们将获得Sharepoint和AD FS之间循环的预期行为。
如果用户在一段时间内处于闲置状态,我们正在拼命寻求一个正确使会话失效的解决方案。
我们还尝试了以下配置更改(根据http://social.msdn.microsoft.com/Forums/en-US/Geneva/thread/802b1bb6-cda3-4470-a0d1-ee709d5c4b7c/的指导):
Set-ADFSProperties -SsoLifetime 1
Set-ADFSProperties -ReplayCacheExpirationInterval 1
Set-ADFSProperties -SamlMessageDeliveryWindow 1
尚未对Global.asax进行更改。
据我了解,我们已根据文档配置了所有内容,但我们无法强制用户重新进行身份验证。任何指出配置错误的帮助都表示赞赏。
答案 0 :(得分:1)
如果您已经这样做了,请道歉,但确保在进行websso更改后重新启动了AD FS。在我们重新启动服务之前,我们没有得到预期的结果。此外,如果您有代理,也可能想要重新启动它。
您是否有任何重写Cookie的基础架构?