OneLogin Java-SAML SP无法向Shibboleth IdP提供签名的元数据

时间:2018-02-19 09:36:05

标签: java metadata saml shibboleth onelogin

当OneLogin Java-SAML工具包的示例应用程序配置为向Shibboleth IdP提供已签名的SP元数据时,IdP会拒绝抱怨签名过程中使用的无效转换的元数据签名。但是,像oXygen编辑器之类的标准XML工具验证签名是成功的。

java-saml-tookit-jspsample-2.2.0应用程序已配置为向IdP(onelogin.saml2.security.sign_metadata = true)提供已签名的元数据,而IdP的metadata-providers.xml包含使用文件的配置块 - 支持HTTP的签名验证。

此配置有什么问题?

1 个答案:

答案 0 :(得分:0)

经过几个小时的谷歌搜索后,我在其他软件中发现了类似的问题。 OneLogin的Java-SAML工具包使用cannonicalization方法来签署合法的元数据,但SAML标准未明确允许。如果您查看SAML2规范的第5.5.4节,则明确说明:

  

SAML消息中的签名不应包含除以外的转换   包络签名变换(带有标识符)   http://www.w3.org/2000/09/xmldsig#enveloped-signature)或   独占规范化转换(带标识符)   http://www.w3.org/2001/10/xml-exc-c14n#或   http://www.w3.org/2001/10/xml-exc-c14n#WithComments)。验证者   签名可以拒绝包含其他转换的签名   算法无效。

Java-SAML工具包使用http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments进行了硬连线设置,而被Shibboleth IdP拒绝。如果你想要开展工作,请从OneLogin下载Java-SAML工具包的源代码,解压缩,然后更改java-saml-2.2.0 / core / src / main / java / com / onelogin / saml2的第1056行来自

的/util/Util.java
String c14nMethod = Constants.C14N_WC;

String c14nMethod = Constants.C14NEXC_WC;

使用maven(mvn包)重新编译并重新部署应用程序。

相关问题