SharePoint 中的会话生命周期将不等于 SAML 令牌生命周期,而是等于 SAML 令牌 ValidTo 属性(即绝对日期时间),因此重播将一直工作到该绝对时间。
但不仅如此,SharePoint 还依赖于一个名为LogonTokenCacheExpirationWindow
. 在我看来,它带来的困惑多于什么价值,但它就在那里,你必须明白会话的有效性将取决于它
在伪代码中,这就是 SharePoint 内部发生的情况
SessionToken Lifetime = SAML Token Lifetime (by default)
if (SessionToken Lifetime - LogonTokenCacheExpirationWindow < DateTime.UtcNow)
Logout()
在这里,您可以使用 LogonTokenExpirationWindow = 40 分钟和 SAML 令牌生命周期 1 小时来说明这一点。
LogonTokenCacheExpirationWindow
可以这样更改:
$sts = Get-SPSecurityTokenServiceConfig
$sts.LogonTokenCacheExpirationWindow = (New-TimeSpan -minutes 1)
$sts.Update()
SAML 令牌生命周期(如果您使用 ADFS)可以这样更改:
Set-ADFSRelyingPartyTrust -TargetName "My SP2010" -TokenLifetime 5
最后,值得注意的是,SharePoint 默认会发出持久性 cookie。因此,当您关闭浏览器并再次打开它时,它将使用该持久 cookie。您可以通过设置更改它
$sts = Get-SPSecurityTokenServiceConfig
$sts.UseSessionCookies = $true
$sts.Update()
iisreset