SAML断言值XML签名包装

时间:2017-05-24 13:32:37

标签: .net xml saml wrapping assertion

使用.NET 3.5

我的一位客户已经要求我改进检查他们发送给我的SAML响应的方式。

他们通过使用共享证书进行数字签名的响应发送。这一切都很好,但他们正在接受使用Burp这样的工具的事实,他们能够拦截他们发送给我的响应并改变正在发送的ID值。这称为XML签名包装。

我的问题是如何检查我收到的值是否未被更改?

非常感谢

马特

1 个答案:

答案 0 :(得分:0)

在.NET中针对预共享证书验证XML签名时,您应该做两件事:

  1. 根据签名,调用SignedXml.CheckSignature()检查签名所引用的内容是否有效。
  2. 检查签名的引用(在SAML2的情况下应该只有一个),然后使用引用的id调用SignedXml.GetIdElement()。然后在进一步处理中使用返回的节点。这将确保您正在处理的节点与SignedXml验证的节点相同。
  3. 如需进一步阅读,请参阅https://coding.abel.nu/2015/12/xml-signatures-and-references/

    上的博文