SAML 请求中缺少 xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
Posted
技术标签:
【中文标题】SAML 请求中缺少 xmlns:ds="http://www.w3.org/2000/09/xmldsig#"【英文标题】:Missing xmlns:ds="http://www.w3.org/2000/09/xmldsig#" in a SAML request 【发布时间】: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 标记中具有此参数。
-
我想知道没有这个参数会不会
请求无效。
在 SAML 2.0 中是否需要此参数
(xmlns="urn:oasis:names:tc:SAML:2.0:protocol")?
【问题讨论】:
您最好在根元素中包含 xmlns:ds="w3.org/2000/09/xmldsig#"。 【参考方案1】:-
命名空间声明在***元素上就足够了,因为它是由子元素继承的。在每个元素上声明它仍然有效,但没有必要。
这不是 SAML 2.0 本身的要求,而是有效 XML 的要求。由于 SAML 2.0 架构依赖于 sml-dsig 架构,因此必须在签名标签或***元素之一上声明命名空间。
验证断言时是否有特定的错误消息?
【讨论】:
以上是关于SAML 请求中缺少 xmlns:ds="http://www.w3.org/2000/09/xmldsig#"的主要内容,如果未能解决你的问题,请参考以下文章