विंडोज 2003 सर्वर पर नेट फ्रेमवर्क 3.5 के साथ वीएस 2008 का उपयोग कर एक्सएमएल हस्ताक्षर सत्यापन पर हस्ताक्षर किए।एसएसओ एसएएमएल (sha256 का उपयोग करके)
हमने सुरक्षा के लिए एसएएमएल के साथ एसएसओ लागू किया है। हम सेवा प्रदाता अंत में काम करते हैं जहां हम ग्राहक के सिस्टम से उत्पन्न हस्ताक्षरित XML SAML Assertuib टोकन को मान्य करते हैं। अब तक जो भी हस्ताक्षरित दस्तावेज हम आए थे वे हस्ताक्षर एल्गोरिदम "आरएसए-शा 1" का उपयोग कर रहे थे, लेकिन अब हमारे पास नया ग्राहक है जो हस्ताक्षर एल्गोरिदम के साथ "आरएसए-शा 256" के रूप में फाइल भेजता है और यहां समस्या शुरू हुई है।
public static string VerifySignature()
{
if (m_xmlDoc == null)
return "Could not load XMLDocument ";
try
{
XmlNamespaceManager nsm = new XmlNamespaceManager(new NameTable());
nsm.AddNamespace("dsig", SignedXml.XmlDsigNamespaceUrl);
XmlElement sigElt = (XmlElement)m_xmlDoc.SelectSingleNode(
"//dsig:Signature", nsm);
// Load the signature for verification
SignedXml sig = new SignedXml(m_xmlDoc);
sig.LoadXml(sigElt);
if (!sig.CheckSignature())
return "Invalid Signature";
}
catch (Exception ex)
{
return ex.Message;
}
return string.Empty;
}
अब, जब मैं एक ही कोड इस नए ग्राहक के लिए (हस्ताक्षर एल्गोरिथ्म आरएसए-sha256h के साथ) की कोशिश - इस काम नहीं कर रहा है और मैं त्रुटि "SignatureDescription आपूर्ति हस्ताक्षर एल्गोरिथ्म के लिए नहीं बनाया जा सका हो रही है। "
पिछले 2-3 दिनों में कई ब्लॉग और लेखों के माध्यम से जाना, मुझे पता चला कि SignedXml sha256 का समर्थन नहीं करता है। ठीक। लेकिन अगला क्या है। कहीं इसका उल्लेख है कि डब्ल्यूआईएफ का उपयोग करें, मैंने & भी this की कोशिश की है।
मैं भी RSAPKCS1SignatureDeformatter की VerifySignature विधि का उपयोग करने का प्रयास कर रहा हूं। लेकिन वास्तव में यह सुनिश्चित नहीं है कि पारित होने वाले दो पैरामीटर क्या हैं।
मैं इस धारणा के तहत था कि एन्क्रिप्शन एल्गोरिदम समर्थित था क्योंकि यह X509Certificate2 ऑब्जेक्ट का समर्थन करता है। Sig.checkSignature (...) विधि में एक अधिभार है जो 2 पैरामीटर, X509Certificate2 और बूल लेता है। क्या आपने इसका इस्तेमाल करने और प्रमाण और सत्य में गुजरने की कोशिश की है? –