在到达STS后,似乎没有任何Fedauth cookie作为SAML令牌被发送回XML标记.仅在Firefox上发生



我为一个似乎适用于IE和Chrome的特殊问题而挠头。

我们有一个自定义的被动STS,它为RP提供服务。在我通过自定义身份验证服务进行身份验证之前,一切都很好,然后STS返回我可以在临时文件夹中看到的令牌。然后发送SAML 1.0令牌的POST操作挂起并静默地终止,而不是取回通常会重定向到RP 的FedAuth cookie

注意:RP和IP托管在反向代理服务器(Nginx)后面的web服务器上。反向代理托管在SSL上,所有往返于代理服务器和Web服务器的流量都是非SSL

以下登录到Web服务器

Event code: 3005 
Event message: An unhandled exception has occurred. 
Event time: 12/11/2013 5:16:33 PM 
Event time (UTC): 12/11/2013 5:16:33 PM 
Event ID: eef80ad2bffe425780dd46e5f28c0306 
Event sequence: 2 
Event occurrence: 1 
Event detail code: 0 

Exception information: 
Exception type: XmlException 
Exception message: **Unexpected end of file. Following elements are not closed:   RequestedUnattachedReference, RequestSecurityTokenResponse,** RequestSecurityTokenResponseCollection. Line 1, position 5852.
at System.Xml.XmlExceptionHelper.ThrowXmlException(XmlDictionaryReader reader, String res, String arg1, String arg2, String arg3)
at System.Xml.XmlExceptionHelper.ThrowUnexpectedEndOfFile(XmlDictionaryReader reader)
at System.Xml.XmlBufferReader.GetByteHard()
at System.Xml.XmlBufferReader.GetByte()
at System.Xml.XmlUTF8TextReader.ReadStartElement()
at System.Xml.XmlUTF8TextReader.Read()
at System.Xml.XmlBaseReader.ReadEndElement()
at   Microsoft.IdentityModel.Protocols.WSTrust.WSTrustSerializationHelper.ReadRSTRXml(XmlReader reader, RequestSecurityTokenResponse rstr, WSTrustSerializationContext context, WSTrustConstantsAdapter trustConstants)
at Microsoft.IdentityModel.Protocols.WSTrust.WSTrust13ResponseSerializer.ReadXmlElement(XmlReader reader, RequestSecurityTokenResponse rstr, WSTrustSerializationContext context)
at Microsoft.IdentityModel.Protocols.WSTrust.WSTrustSerializationHelper.CreateResponse(XmlReader reader, WSTrustSerializationContext context, WSTrustResponseSerializer responseSerializer, WSTrustConstantsAdapter trustConstants)
at Microsoft.IdentityModel.Protocols.WSTrust.WSTrust13ResponseSerializer.ReadXml(XmlReader reader, WSTrustSerializationContext context)
at Microsoft.IdentityModel.Protocols.WSFederation.WSFederationSerializer.CreateResponse(WSFederationMessage message, WSTrustSerializationContext context)
at Microsoft.IdentityModel.Web.WSFederationAuthenticationModule.GetXmlTokenFromMessage(SignInResponseMessage message, WSFederationSerializer federationSerializer)
at Microsoft.IdentityModel.Web.WSFederationAuthenticationModule.GetXmlTokenFromMessage(SignInResponseMessage message)
at Microsoft.IdentityModel.Web.WSFederationAuthenticationModule.GetXmlTokenFromMessage(SignInResponseMessage message, WSFederationSerializer federationSerializer)
at Microsoft.IdentityModel.Web.WSFederationAuthenticationModule.GetSecurityToken(SignInResponseMessage message)
at Microsoft.IdentityModel.Web.WSFederationAuthenticationModule.GetSecurityToken(HttpRequest request)
at Microsoft.IdentityModel.Web.WSFederationAuthenticationModule.SignInWithResponseMessage(HttpRequest request)
at Microsoft.IdentityModel.Web.WSFederationAuthenticationModule.OnAuthenticateRequest(Object sender, EventArgs args)
at System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

我不明白为什么只为FF我会遇到这个问题。在FF的标头中发送的内容的大小是否有限制?

另一个问题是:我在代理服务器(SSL)和Web服务器(STS)安装了两个不同的证书来对令牌进行签名。我可以使用相同的证书吗?我应该吗?

根据关于HTTP标头对浏览器来说是否太大的问题的最高投票答案,Firefox的单个标头大小是最低的(或者至少在FF3.6中是这样)。尽管您已经提到您支持代理,但接受的答案可能会对您有所帮助。

相关内容

  • 没有找到相关文章

最新更新