我在 SSO SP 发起的流程中使用 SAML 2.0。我已将注销网址配置为 "https://{DNS_name}/adfs/ls/"
,但收到以下错误。
Error:- System.Xml.XmlException: MSIS0006: A required attribute is not present: ID.
注意:- 如果我将注销 URL 配置为 "https://{DNS_name}/adfs/ls?wa=wsignoutcleanup1.0"
,则不会收到此错误。
问:- 如果没有配置清理部分(?wa=wsignoutcleanup1.0),为什么我会收到 ID 相关错误。我不明白注销 URL 中清理部分的意义。
我读到“wsignoutcleanup1.0 消息是指示依赖方删除指定用户的缓存 session 状态的指令。”
Complete Error:- Encountered error during federation passive request.
Additional Data
Protocol Name:
Relying Party:
Exception details: System.Xml.XmlException: MSIS0006: A required attribute is not present: ID. at Microsoft.IdentityServer.Protocols.Saml.SamlProtocolSerializer.ReadCommonAttributes(XmlReader reader, SamlMessage message) at Microsoft.IdentityServer.Protocols.Saml.SamlProtocolSerializer.ReadLogoutRequest(XmlReader reader) at Microsoft.IdentityServer.Protocols.Saml.SamlProtocolSerializer.ReadSamlMessage(XmlReader reader, NamespaceContext context) at Microsoft.IdentityServer.Protocols.Saml.HttpSamlBindingSerializer.ReadProtocolMessage(String encodedSamlMessage) at Microsoft.IdentityServer.Protocols.Saml.HttpSamlBindingSerializer.CreateFromNameValueCollection(Uri baseUrl, NameValueCollection collection) at Microsoft.IdentityServer.Protocols.Saml.HttpPostSamlBindingSerializer.ReadMessage(Uri requestUrl, NameValueCollection form) at Microsoft.IdentityServer.Web.Protocols.Saml.HttpSamlMessageFactory.CreateMessage(WrappedHttpListenerRequest httpRequest) at Microsoft.IdentityServer.Web.Protocols.Saml.SamlContextFactory.CreateProtocolContextFromRequest(WrappedHttpListenerRequest request, ProtocolContext& protocolContext) at Microsoft.IdentityServer.Web.Protocols.Saml.SamlProtocolHandler.CreateProtocolContext(WrappedHttpListenerRequest request) at Microsoft.IdentityServer.Web.PassiveProtocolListener.GetProtocolHandler(WrappedHttpListenerRequest request, ProtocolContext& protocolContext, PassiveProtocolHandler& protocolHandler) at Microsoft.IdentityServer.Web.PassiveProtocolListener.OnGetContext(WrappedHttpListenerContext context)
最佳答案
您收到错误是因为您超出了规范。 ?wa
参数定义您想要发生的操作,即“此 REQUIRED 参数指定要执行的操作”。 (Source)。
它不是特定于此注销操作...它是任何操作。
关于java - SSO sp 启动流程中 ?wa=wsignoutcleanup1.0 的意义是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56988457/