2

我需要从运行 Ruby 2.3.x 的 Rails 5 应用程序中使用第 3 方 SOAP Web 服务。SOAP Web 服务要求对所有请求/响应使用 XML 签名和 XML 加密。

似乎有足够的 ruby​​ gem 将 XML 签名添加到 SOAP 请求(例如 Savon 与 Akami gem)。但是,我找不到任何可以透明地处理 SOAP 请求的 XML 加密和 SOAP 响应的解密的东西。有一些 gem 可以在不同程度上使用 XML 加密。

xmlsec gem 是一个 nokogiri 扩展,声称支持 XML-Enc 和 XML-Sig,但 4 年没有更新。xmlenc gem 目前只支持解密。我发现使用加密 XML 实现规范的少数 gem,例如 ruby​​-saml gem,只需要处理解密并手动推出他们的解决方案。此外,需要注入 XML 文档的 XML-enc 元数据在 SOAP 和 SAML 之间有着本质的不同。

与 XML-Sig 一样,XML-Enc 规范比仅使用私钥加密 XML 元素的内容更为深远。有许多额外的元数据必须注入到 XML 文档中,这使实现复杂化并促进了文档交换。

在我花几天时间走在死胡同之前……我想知道是否有人能指出我正确的方向。

4

0 回答 0