您好我正在尝试使用SSO直接向我的网站验证我的客户的用户身份。我客户的IDP是Microsoft ADFS,我使用Passport-SAML(https://github.com/bergie/passport-saml)来配置SSO过程。
在找到我给客户端的特殊URL(例如:www.myClient.myCompany.com)后,用户(未经身份验证的)按预期重定向到客户端登录页面。 在他输入他的凭证后,他仍然停留在登录页面但是 SSO工作,因为用户已经过身份验证意味着如果他打开一个新标签并转到www.myClient.myCompany.com,他将会是重定向到我的网站。
这是ADFS服务器日志中的错误:
The Federation Service encountered an error while processing the SAML authentication request.
Additional Data
Exception details:
Microsoft.IdentityModel.Protocols.XmlSignature.SignatureVerificationFailedException: MSIS0038: SAML Message has wrong signature. Issuer: 'www.myCompany.co'.
at Microsoft.IdentityServer.Protocols.Saml.Contract.SamlContractUtility.CreateSamlMessage(MSISSamlBindingMessage message)
at Microsoft.IdentityServer.Service.SamlProtocol.SamlProtocolService.Issue(IssueRequest issueRequest)
at Microsoft.IdentityServer.Service.SamlProtocol.SamlProtocolService.ProcessRequest(Message requestMessage)
感谢您的时间!
答案 0 :(得分:0)
我不熟悉Microsoft ADFS也不熟悉Passport-SAML,但是当我们遇到签名错误时,因为IDp证书的SHA1指纹与我们结束时的签名不匹配。
我们通过确保证书格式正确,然后计算指弹来修复它们。
格式: https://developers.onelogin.com/saml/online-tools/x509-certs/format-x509-certificate 指纹: https://developers.onelogin.com/saml/online-tools/x509-certs/calculate-fingerprint
希望这是你的情况
答案 1 :(得分:0)
不是Passport-SAML大师,但ADFS出现此错误的正常原因是:
签名不匹配 - ADFS希望AuthRequest签名,而不是签名,反之亦然。
此RP中安装的签名证书已过期或错误,因为它不是客户端使用的证书。
在RP级别,请查看:
GET-ADFSRelyingPartyTrust
[ - SignedSamlRequestsRequired] [-SamlResponseSignature]
或全球:
GET-ADFSProperties
SignedSamlRequestsRequired
SignSamlAuthnRequests
并检查:
Get-AdfsCertificate -CertificateType“Token-Signing”
答案 2 :(得分:0)
(跟随ADFS and PingFederate SSO : SAML Message has wrong signature)
我们正在使用不同的library,这对我们来说是一个不同的问题(我们的客户实际上有错误的签名),但在尝试调试的过程中,我遇到了this thread听起来和你所描述的非常相似。
修复方法是安装this hotfix。您是否可以检查您的客户是否在Windows Server 2008和2012上,安装了2843638或2843639,如果安装了,请安装此修补程序(如果尚未安装)?只是在黑暗中拍摄......