将SAML LogoutRequest发送到ADFS IdP时,我遇到ADFS端错误:
Microsoft.IdentityServer.Web.RequestFailedException: MSIS7054:SAML 注销未正确完成。 at Microsoft.IdentityServer.Web.FederationPassiveAuthentication.BuildSamlLogoutResponse(HttpSamlMessage samlMessage) at Microsoft.IdentityServer.Web.FederationPassiveAuthentication.SamlLogout()
消息符合 SAML 标准并已签名。
我必须寻找什么?
我终于从我们的合作伙伴那里得到了更详细的日志。问题是在 pratners ADFS 服务器上我们的中继方的签名选项卡中缺少证书。此外,问题可能是缺少ADFS IIS运行进程(很可能是网络服务)的上述证书的私钥权限。SLO 现在工作正常。
联合身份验证服务在处理 SAML 身份验证请求时遇到错误。
其他数据
异常详情:
Microsoft.IdentityModel.Protocols.XmlSignature.SignatureVerificationFailedException: ID4037:无法从以下安全密钥标识符"SecurityKeyIdentifier"解析验证签名所需的密钥
(
IsReadOnly = False,
计数 = 1,
Clause[0] = Microsoft.IdentityServer.Tokens.MSISSecurityKeyIdentifierClause
)
'。确保使用所需的密钥填充安全令牌解析程序。
at Microsoft.IdentityModel.Protocols.XmlSignature.EnvelopedSignatureReader.ResolveSigningCredentials()
at Microsoft.IdentityModel.Protocols.XmlSignature.EnvelopedSignatureReader.OnEndOfRootElement()
at Microsoft.IdentityModel.Protocols.XmlSignature.EnvelopedSignatureReader.Read()
at 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)