我們的IdP是Salesforce.com組織。 SP是第三方.Net應用程序。在開發過程中,第三方報告說他們無法驗證發送的SAML響應。SAML簽名驗證失敗
我們決定嘗試使用ComponentSpace驗證我們的結果,以驗證SAML響應。以下是我們嘗試過的:
// Load the certificate from the file: certInFile
// Load the SAML in an XMLElement: samlXml
// Retrieve the certificate from the SAML: certInSaml
Console.WriteLine("SAML is valid ? " + SAMLResponse.IsValid(samlXml));
Console.WriteLine("Is SAML signed? " + SAMLMessageSignature.IsSigned(samlXml));
Console.WriteLine("Certificate found in SAML is same as certificate file? " + certInFile.Equals(certInSaml));
Console.WriteLine("Validated SAML with certificate found in SAML" + SAMLMessageSignature.Verify(samlXml, certInSaml));
Console.WriteLine("Validated SAML with certificate file" + SAMLMessageSignature.Verify(samlXml, certInFile));
我對上述所有內容都有效,除了最後兩個。所以:
- 的SAML有效
- 的SAML有一個有效的簽名
- 在SAML的公鑰證書是一樣的,我們
- 的SAML與私人簽訂的證書文件無論是證書文件,也沒有在SAML
發送從3,4公鑰密鑰才能得出結論,Salesforce的是簽署,但用不同的證書,但在發送響應錯誤的公鑰?
編輯:樣品SAML是這裏http://pastebin.com/J8FTxnhJ
我缺少什麼?
您可以將完整的SAML消息粘貼到某處嗎? –
@Stefan http://pastebin.com/J8FTxnhJ –
這個問題解決了嗎?我正面臨類似的問題,即XML簽名驗證失敗。 IDP是Salesforce.com – mithrandir