4

您好我正在尝试使用 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)

MSIS0038 错误 - 事件 ID 303

感谢您的时间!

4

3 回答 3

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 -指纹

希望这是你的情况

于 2018-04-03T13:55:27.593 回答
0

不是 Passport-SAML 专家,但 ADFS 出现此错误的正常原因是:

  • 签名不匹配 - ADFS 期望 AuthRequest 被签名,但事实并非如此,反之亦然。

  • 此 RP 中安装的签名证书已过期或者是错误的,因为它不是客户端正在使用的证书。

在 RP 级别,请查看:

获取 ADFSRelyingPartyTrust

[-SignedSamlRequestsRequired ] [-SamlResponseSignature ]

或全球:

获取 ADFSProperties

SignedSamlRequestsRequired
SignSamlAuthnRequests

并检查:

Get-AdfsCertificate -CertificateType "令牌签名"

于 2018-04-05T19:19:16.673 回答
0

(从 ADFS 和 PingFederate SSO 跟进:SAML 消息签名错误

我们正在使用不同的,这对我们来说是一个不同的问题(我们的客户实际上有错误的签名),但在尝试调试的过程中,我碰巧遇到了这个听起来与您所描述的非常相似的线程。

解决方法是安装此修复程序。您能否检查您的客户是否在 Windows Server 2008 和 2012 上,是否安装了 2843638 或 2843639,如果是,如果他们还没有安装修补程序?只是在黑暗中拍摄...

于 2018-04-11T04:51:01.647 回答