提问人:Janicko 提问时间:8/30/2023 最后编辑:LMCJanicko 更新时间:8/30/2023 访问量:24
自 2022 年 11 月起,SignXML 验证开始失败 - “签名验证失败:签名错误”
SignXML verification started to fail as of November 2022 - 'Signature verification failed: bad signature'
问:
我们使用使用 SignXML 和 LXML 的 python 解决方案(最新版本)来运行生产 SSO 解决方案。我们是服务提供商。当用户尝试访问我们的系统时,我们确实会收到一个标志 XML 断言。
直到 2022 年 11 月 17 日,一切都很好。从那时起,每个请求都会收到“签名验证失败:签名错误”。
但我认为只是 SignXML 导致了这个问题。 作为 CI/CD 的一部分,我们在每个部署上生成集成测试,我们的测试工作顺利。 我们没有客户的私钥,因此我们无法复制该问题。但是他们的每个请求都是无效的。 有什么想法吗?我查看了 SignXML https://pypi.org/project/signxml 的变化,但什么都没有。谢谢!
我尝试了不同的 python 版本,3.9、3.10、3.11,但我得到了相同的行为。我尝试了不同的方法,但没有修复。 我们的验证方法:
def validate_saml_assertion(saml_value, trusted_cert, tenant_prefix):
root = etree.fromstring(saml_value)
signature_node = root.findall("Signature", namespaces={None: "http://www.w3.org/2000/09/xmldsig#"})
cert_on_file = validate_fingerprint(cert_from_xml, trusted_cert, tenant_prefix)
return XMLVerifier().verify(saml_value, x509_cert=cert_on_file).signed_xml
不同的python版本,不同的库版本。 当我们固定较旧的依赖项版本时,它仍然有效。
我们固定了以下版本: lxml==4.9.0 signxml==2.9.0 pyjwt==2.4.0 密码学==37.0.2
答: 暂无答案
评论
findall