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:Signature标记中具有此参数。

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

1 回答 1

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

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

于 2013-06-22T10:17:19.097 回答