将SAML LogoutRequest发送到ADFS IdP时,我遇到了ADFS端错误:
Microsoft.IdentityServer.Web.RequestFailedException:MSIS7054:SAML注销未正确完成。 在Microsoft.IdentityServer.Web.FederationPassiveAuthentication.BuildSamlLogoutResponse(HttpSamlMessage samlMessage) 在Microsoft.IdentityServer.Web.FederationPassiveAuthentication.SamlLogout()
消息符合SAML标准并已签名。
我需要寻找什么?
答案 0 :(得分:0)
我终于从我们的合作伙伴处获得了更多详细信息。问题是在pratners ADFS服务器上我们的RelayParty的签名选项卡中缺少证书。此问题可能是缺少ADFS IIS运行过程所提到的证书私钥的权限(很可能是NETWORK SERVICE)。 SLO现在正常运作。
联合身份验证服务在处理SAML身份验证请求时遇到错误。
其他数据
异常详情:
Microsoft.IdentityModel.Protocols.XmlSignature.SignatureVerificationFailedException:ID4037:无法从以下安全密钥标识符“SecurityKeyIdentifier
解析验证签名所需的密钥(
IsReadOnly = False,
计数= 1,
Clause [0] = Microsoft.IdentityServer.Tokens.MSISSecurityKeyIdentifierClause
)
”。确保使用所需的密钥填充SecurityTokenResolver。
at Microsoft.IdentityModel.Protocols.XmlSignature.EnvelopedSignatureReader.ResolveSigningCredentials()
at Microsoft.IdentityModel.Protocols.XmlSignature.EnvelopedSignatureReader.OnEndOfRootElement()
at Microsoft.IdentityModel.Protocols.XmlSignature.EnvelopedSignatureReader.Read()
在System.Xml.XmlReader.ReadEndElement()
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.Contract.SamlContractUtility.CreateSamlMessage(MSISSamlBindingMessage message)
at Microsoft.IdentityServer.Service.SamlProtocol.SamlProtocolService.Logout(LogoutRequest logoutRequest)
at Microsoft.IdentityServer.Service.SamlProtocol.SamlProtocolService.ProcessRequest(Message requestMessage)