我使用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。从他们的日志我们可以看到签名的哈希值是不同的。这是日志:
答案 0 :(得分:1)
正如您所说,计算和预期的哈希值不同,这表示签名后XML已被修改。我们与OpenSAML没有已知的互操作性问题,因此我怀疑此处还有其他问题。 很难说有限的信息是什么问题。我建议SP与我们联系,包括完整的SAML日志,我们应该能够解决这个问题。