我正在使用 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。从他们的日志中我们可以看到签名的哈希值是不同的。以下是日志: