Revision
7852 -
Directory Listing
Modified
Wed Sep 30 13:42:42 2009 UTC
(11 months, 1 week ago)
by
rolfnj
Subklassing af signedxml:
Problem der opstod i forbindelse med en krypeteret metadatafil:
Problemet er at id attributten på EntityID elementet er prefixet med wsu (http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd) namespacet.
OIOSaml.NET kalder System.Security.Cryptography.Xml.SignedXML.CheckSignature(); på metadatafilens signaturblok fra dk.nita.saml20.Utils.XmlSignatureUtils linie 25, der kaster en exception der lyder noget i retning af "Malformed reference element".
Ved at singlesteppe igennem .NETs klasser, kan jeg se at reference id'et angivet i signaturblokken søges at blive resolvet enten som ukvalificeret navn, eller kvalificeret med http://www.w3.org/2000/09/xmldsig# namespacet (Checket sker i System.Security.Cryptography.Xml.Reference, System.Security.Cryptography.Xml.Utils og System.Security.Cryptography.SignedXml).
Idet at id'et angivet i signaturblokken ikke kan resolves til det signerede element, kan signaturen ikke valideres, og der bliver derfor kastet en exception.
Umiddelbart lader det ikke til at SignedXML klassen kan konfigureres til at kigge efter andre namespaces.
Først rettede jeg metadata filen til, således at id attributten i EntityDescriptor elementet var ukvalificeret. Det gjorde at signaturen nu blev checket (og ikke forventeligt ikke validerede).