0

我正在使用 opensaml 对我的 SAML 进行签名,并且我还能够使用 OpenSAML 的 SignatureValidator 成功对其进行验证。

 SignatureValidator signValidator = new SignatureValidator( publicCredential );
  signValidator.validate( signature );

IdP 使用组件空间在他们这边进行验证,但是他们无法使用相同的 SAML 和 publicCertificate 对其进行验证。

bool retVal = SAMLMessageSignature.Verify(samlResponseXml, x509Certificate);// returning false

SAML 中的签名算法是 RSASHA1。从他们的日志中我们可以看到签名的哈希值是不同的。以下是日志:

http://pastebin.com/X27vUtbY

4

1 回答 1

1

正如您所说,计算的哈希值和预期的哈希值不同,这表明 XML 在签名后已被修改。我们没有已知的 OpenSAML 互操作性问题,所以我怀疑这里还有其他问题。从有限的信息很难说问题是什么。我建议 SP 联系我们,包括完整的 SAML 日志,我们应该能够解决问题。

于 2016-11-17T05:29:42.670 回答