SAML 2 - openSAML - 签名和加密断言

SAML 2 - openSAML - Sign and Encrypt Assertion

我们是 IDP,我们使用 openSAML 3.2 库实现了 SAML 2。我们正在与我们的一个 SP 集成,如果我们签署断言并且在我们这边禁用加密,它就可以正常工作。如果我们启用加密,则它会失败并出现以下错误之一:

  1. 签名并加密断言 - 失败,数字签名无效 (23)

  2. 加密断言并签署整个响应 - 失败并显示无效数字签名 (23)

  3. 签署并加密断言并签署整个响应 - 失败并显示无效数字签名 (23)

  4. 签名消息(未加密)- SAML 断言未签名(20)

  5. 签名断言(未加密)- 成功

有没有人遇到过这个问题?任何指针将不胜感激。

我们终于解决了这个问题。发布答案,因为它可能会帮助其他可能遇到此问题的人。

在签署断言时,我们必须将 CanonicalizationMethod 设置为 'CanonicalizationMethod.EXCLUSIVE'