我将PingFederate用于SP发起的SSO,并将ADFS 3.0用于用户身份验证。它显示一个登录页面,用户可以在其中输入凭据。仅当登录页面闲置10分钟或更长时间,然后用户单击登录时,才会显示以下错误消息,否则此操作将失败。如果登录时间是10分钟之前,则没有问题。我注意到登录页面URL具有RelayState guid。在成功进行身份验证期间,它将创建MSISContext cookie以及附加到它的RelayState指南。从网上阅读的内容出错时,响应返回到ADFS,ADFS会使用不存在的新RelayState名称检查cookie。登录页面闲置10分钟或更长时间时,我该怎么办才能解决此问题。我可以在某个地方更改超时值吗?
联合被动请求期间遇到错误。
其他数据
协议名称: 萨姆
依赖方:
异常详细信息: Microsoft.IdentityServer.Web.CookieManagers.InvalidContextException:MSIS7001:被动协议上下文未找到或无效。如果上下文存储在cookie中,则客户端提供的cookie无效。确保将客户端浏览器配置为接受来自此网站的cookie,然后重试此请求。 在Microsoft.IdentityServer.Web.Protocols.Saml.SamlProtocolHandler.GetOriginalRequestFromResponse(ProtocolContext上下文,布尔型deleteCookie) 在Microsoft.IdentityServer.Web.PassiveProtocolListener.ProcessProtocolRequest(ProtocolContext protocolContext,PassiveProtocolHandler protocolHandler) 在Microsoft.IdentityServer.Web.PassiveProtocolListener.OnGetContext(WrappedHttpListenerContext上下文)处
答案 0 :(得分:1)
RelayState被添加到cookie的名称中。如果中继状态更改,则响应将检查具有不存在的新RelayState名称的cookie。确保has not changed,并确保在ADFS上启用了RelayState。
根据Windows Server版本,您可能还需要包括其他服务属性。请参阅下面的线程:
例如,Windows Server 2012 R2中的 AD FS包含一个%systemroot%\ADFS\Microsoft.IdentityServer.Servicehost.exe.config
文件。如果您要使用的是,请使用与web.config文件元素相同的语法创建一个元素:<useRelayStateForIdpInitiatedSignOn enabled="true" />
。在Microsoft.IdentityServer.Servicehost.exe.config文件的<microsoft.identityserver.web>
部分中包含此元素。
https://nzpcmad.blogspot.com/2016/01/this-post-follows-on-from-idp-initiated.html