Loading…
Tilbage

Profilbillede

SignatureDescription could not be created for the signature algorithm supplied.

Martin Nielsen

Hej

Jeg har opdateret SAML på preprod og får ovenstående exception ved login. Opdateringen virkede ellers fint med sample-site lokalt.

Preprod server kører .NET 4.5, lokalt kører jeg 4.7.1. Men 4.5 skulle være godt nok jævnfør opdateringsnyheden her.

Er der én som har en ide om hvad der kan være galt?

Er der i øvrigt nogen der ved præcis hvornår ændring træder i kraft på prod? Kan man allerede nu få aktiveret det nye på prod eller sker det samtidigt for alle på et fastdefineret tidspunkt?

På forhånd tak.

 

Exception trace:

System.Security.Cryptography.CryptographicException: SignatureDescription could not be created for the signature algorithm supplied. 
at System.Security.Cryptography.Xml.SignedXml.CheckSignedInfo(AsymmetricAlgorithm key) 
at System.Security.Cryptography.Xml.SignedXml.CheckSignature(AsymmetricAlgorithm key) 
at dk.nita.saml20.Utils.XmlSignatureUtils.CheckSignature(XmlElement el, AsymmetricAlgorithm alg) in C:\Projects\SAML 2.0.1\dk.nita.saml20\dk.nita.saml20\Utils\XmlSignatureUtils.cs:line 133 
at dk.nita.saml20.Saml20Assertion.CheckSignature(AsymmetricAlgorithm key) in C:\Projects\SAML 2.0.1\dk.nita.saml20\dk.nita.saml20\Saml20Assertion.cs:line 377 
at dk.nita.saml20.Saml20Assertion.CheckSignature(IEnumerable`1 keys) in C:\Projects\SAML 2.0.1\dk.nita.saml20\dk.nita.saml20\Saml20Assertion.cs:line 368 
at dk.nita.saml20.protocol.Saml20SignonHandler.HandleAssertion(HttpContext context, XmlElement elem) in C:\Projects\SAML 2.0.1\dk.nita.saml20\dk.nita.saml20\Protocol\Saml20SignonHandler.cs:line 470 
at dk.nita.saml20.protocol.Saml20SignonHandler.HandleResponse(HttpContext context) in C:\Projects\SAML 2.0.1\dk.nita.saml20\dk.nita.saml20\Protocol\Saml20SignonHandler.cs:line 335 

Jeg løste problemet ved at opgradere til .net 4.7.1. 

Det passer med andre ord ikke når der skrives at .net 4.5 er godt nok!

Håber at det hjælper nogle andre omend der ikke ser ud til at være nogen andre end mig der har haft problemer.

Hej Martin,

Vi har også testet i mod NemLog-in med SHA-256, men her oplevede vi ikke problemet - hvilket får mig til at tvivle på om vi/NemLog-in havde fået SHA-256 aktiveret korrekt på vores test-tilslutning... 
(EDIT 11/4 kl. 16:45: Vi har i vores test kørt med omitAssertionSignatureCheck="true" hvilket højst sandsynligt er årsagen til, at det har fungeret her).

Vi er desuden pt. ved at teste imod den kommende eIDAS gateway og er løbet ind i samme udfordring - vi benytter stock OIOSAML.NET 2.0.1, og præcis samme kode vi benytter imod NemLog-in som nævnt indledende.

Integtrationen til eIDAS PILOT-miljøet (etableret efteråret 2017) gik fint.
(EDIT 11/4 kl. 16:45: Vi har i vores test kørt med omitAssertionSignatureCheck="true" hvilket højst sandsynligt er årsagen til, at det har fungeret her).

Integrationen til det nyere eIDAS TEST-miljø (etableret primo april 2018) giver os dog den fejl du nævner.

En google søgning giver umiddelbart samme løsning som du er inde på, som altså omhandler at (i grove træk) RSA SHA-256 brugt i xmlsignatures først er understøttet i .NET version 4.6.2. Planket fra MSDN-bloggen herunder...

https://blogs.msdn.microsoft.com/dotnet/2016/03/30/announcing-the-net-framework-4-6-2-preview/

SignedXml Support for SHA-2 Hashing

The .NET Framework 4.6.2 has added support to SignedXml which permits RSA-SHA256RSA-SHA384, and RSA-SHA512 PKCS#1 signature methods, and SHA256SHA384, and SHA512 reference digest algorithms

Er der nogle fra NemLog-in teamet der kan kommentere på ovenstående? Jeg vil også henlede eIDAS-teamet hos Digst (og underleverandør NNIT) på denne post, I håb om at bringe lidt mere klarhed over sagen og kunne assistere andre.

Jeg vil forsøge at lægge en nyere .NET version på hos os (4.6.2 eller højere) for at se om det afhjælper problemet, og giver en opdatering herefter.
(EDIT 11/4 kl. 16:45: Med omitAssertionSignatureCheck="true" tilføjet IdP entityId'et i web.config'en fungerer det. Jeg er naturligvis klar over at dette kun er tilladt i test-øjemed).

ændret af Kim Waldorff Østergaard (11.04.2018)

Jeg kan nu også bekræfte, at problemet løses ved at opgradere til .NET 4.7.1.

Formentligt er minimumskravet .NET 4.6.2.

Ser først dit skriv nu. Tak for at kaste mere lys på sagen...

Hej Martin

Det er en fejl at der har været angivet .Net 4.5 som minimum.

Minimum .Net version for version 2.0.0 af OIOSAML.Net er .Net 4.6.2.

Hvis ens service provider benytter SOAP logout skal man yderligere gøre en af nedenstående to ting:

  • Opgradere til .net 4.7.1 hvor SHA256 bliver standard i forbindelse med signering af XML
  • Afvente et snarligt kommende release af OIOSAML.Net der understøtter XML signering med SHA256 fra .Net 4.6.2 og op.

Venlig hilsen

Kasper V. Møller