簡體   English   中英

OneLogin Java-SAML SP無法向Shibboleth IdP提供簽名的元數據

[英]OneLogin Java-SAML SP fails to provide signed metadata to Shibboleth IdP

當OneLogin Java-SAML工具箱的示例應用程序配置為向Shibboleth IdP提供簽名的SP元數據時,IdP拒絕抱怨在簽名過程中使用無效轉換的元數據簽名。 但是,通過標准XML工具(如oXygen編輯器等)進行的簽名驗證成功。

已將java-saml-tookit-jspsample-2.2.0應用程序配置為向IdP提供簽名的元數據( onelogin.saml2.security.sign_metadata = true ),並且IdP的onelogin.saml2.security.sign_metadata = true -providers.xml包含使用文件支持的HTTP要求的配置塊簽名驗證。

此配置有什么問題?

經過數小時的谷歌搜索,我在其他軟件中發現了類似的問題。 OneLogin的Java-SAML工具箱使用規范化方法對合法的元數據進行簽名,但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軟件包)重新編譯並重新部署應用程序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM