在Sharepoint 2010会话到期后,用户不必在ADFS 2.0中重新进行身份验证

Ahi*_*his 5 authentication session-timeout sharepoint-2010 federation adfs2.0

此案例与Wiktor Zychla的问题非常相似,请参阅如何在与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
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

3.调整的Web SSO生存期:AD FS 2.0管理控制台管理单元中的5分钟(在Powershell中运行Get-ADFSProperties正确返回SsoLifetime:5)

因此预期的结果是:

  1. 用户启动一个全新的会话,请求网站
  2. 浏览器重定向到AD FS,用户输入凭据,浏览器重定向回Sharepoint站点,生成FedAuth cookie
  3. 用户闲置10分钟(以确保会话滑动期已过)
  4. 用户在Sharepoint中请求另一个页面,浏览器被重定向到AD FS
  5. 由于Web SSO生命周期为5分钟,并且正如在msdn文档中指示的那样,它少于SAMLtokenlifetime减去LogonTokenCacheExpirationWindow(SAMLtokenlifetime - LogontokenCacheExpirationWindow = 6分钟)的值,AD FS会提示用户输入凭据,用户输入凭据,浏览器是重定向到请求的Sharepoint页面并重新创建FedAuth cookie.

当前的实际行为(步骤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
Run Code Online (Sandbox Code Playgroud)

尚未对Global.asax进行更改.

据我所知,我们已根据文档配置了所有内容,但是我们无法强制用户重新进行身份验证.任何指出配置错误的帮助都表示赞赏.

小智 1

如果您已经执行此操作,我们深表歉意,但请确保您在进行 websso 更改后重新启动了 AD FS。直到重新启动服务后,我们才得到预期的结果。另外,如果您有代理,可能也需要重新启动它。

您是否有任何重写 cookie 的基础设施?