【问题标题】:Missing xmlns:ds="http://www.w3.org/2000/09/xmldsig#" in a SAML requestSAML 请求中缺少 xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
【发布时间】:2013-06-08 21:37:21
【问题描述】:

有来自两个不同系统的 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:Signature 标记中具有此参数。

  1. 我想知道没有这个参数会不会 请求无效。
  2. 在 SAML 2.0 中是否需要此参数 (xmlns="urn:oasis:names:tc:SAML:2.0:protocol")?

【问题讨论】:

标签: xml saml saml-2.0


【解决方案1】:
  1. 命名空间声明在顶级元素上就足够了,因为它是由子元素继承的。在每个元素上声明它仍然有效,但没有必要。
  2. 这不是 SAML 2.0 本身的要求,而是有效 XML 的要求。由于 SAML 2.0 架构依赖于 sml-dsig 架构,因此必须在签名标签或顶级元素之一上声明命名空间。

验证断言时是否有特定的错误消息?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-27
    • 1970-01-01
    • 2021-01-22
    • 2015-12-03
    • 1970-01-01
    • 2011-12-05
    相关资源
    最近更新 更多