在SAML请求中缺少xmlns:ds =“http://www.w3.org/2000/09/xmldsig#”

时间:2013-06-12 17:00:45

标签: xml saml saml-2.0

来自两个不同系统的SAML身份验证请求。一个是成功的,另一个是失败的。

我注意到失败者在14个标签中的13个中缺少 xmlns:ds =“http://www.w3.org/2000/09/xmldsig#”

<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:SignedInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" />
<ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" />
<ds:Reference URI="#_8dea83ff20a914b6aefd05b2ae61a4556e3e" xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:Transforms xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" />
<ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" />
<ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" />
<ds:DigestValue xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:SignatureValue xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:X509Data xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:X509Certificate xmlns:ds="http://www.w3.org/2000/09/xmldsig#">

失败请求仅在 ds:签名标记中包含此参数。

  1. 我想知道是否没有这个参数 请求无效。
  2. SAML 2.0中是否需要此参数 (XMLNS = “瓮:绿洲:名称:TC:SAML:2.0:协议”)?

1 个答案:

答案 0 :(得分:1)

  1. 名称空间声明在顶级元素上已足够,因为它由子元素继承。在每个元素上声明它仍然有效,但这是不必要的。
  2. 这不是SAML 2.0本身的要求,而是对有效XML的要求。由于SAML 2.0模式依赖于sml-dsig模式,因此必须在签名标记或顶级元素之一上声明名称空间。
  3. 验证断言时是否有特定的错误消息?