Loading…
Tilbage

OIOSAML.Net 2.0.2


Release date: 2018-04-20

Version 2.0.0 and 2.0.1 only have support for SHA2 in the redirect logout scenario. Support for SHA2 in combination with POST and SOAP logout had been overlooked and is now included in 2.0.2.

If version 2.0.0 and 2.0.1 gives any trouble and upgrading to 2.0.2 is not an option, then upgrading .Net framework to 4.7.1 should be sufficent as SHA2 becomes default in 4.7.1.

Release notes: OIOSAML.Net (dk.nita.saml20)

- (Breaking) Support for SHA2 in combination with POST and SOAP logout has been added. This requires minimum .Net version 4.6.2.

- Metadata is now signed with SHA256 as default. It can be overriden in configuration through the setting "MetaDataShaHashingAlgorithm". See documentation for usage.

- DSA support has been removed as it has not been maintained and tested for many years. Should not affect anyone as OIOSAML.Net seems only to have worked with RSA for quite some time.

Release notes: dk.nita.saml20.ext.audit.log4net

- No changes

Release notes: dk.nita.saml20.ext.sessionstore.sqlserver

- No changes

 

Documentation and code can be found at softwarebørsen: https://svn.softwareborsen.dk/oiosaml.net/trunk/

The packages is only available at nuget.org

Profilbillede

Manglende support for https offloading

Knud Christensen

Er der nogen der har tænkt på at mange service providere kører med loadbalancer/firewall der foretager https offloading, således at der inden for murene køres http? Fra version 2.0.0 kræver komponenten SSL for at kunne sætte session-cookien. Jeg har på fornemmelsen at dette gælder alle bag borger.dk.

Det støder vi jævnligt på. Som løsning "slæber" vi rundt på en egen implementation af javax.servlet.Filter, der tvinger https på requestet - selvom serveren modtog det som http pga. firewall/loadbalancer.

Hej Knud

Cookien har faktisk været secure flere versioner tilbage end version 2.0.0.

Det er blot først i 2.0.0 der er kommet en pæn meddelelse om at https er et krav pga. den secure cookie.

Vh

Kasper Møller

Hej Kasper

Men hvordan skal vi så håndter det, når der er styr på sikkerheden, og vi bruger loadbalancer/firewall der foretager https offloading, således at der inden for murene køres http?

Hvordan kan vi 'disable' denne sikkerheds feature, så vi kan få vores site til at virke igen? Er der en setting i SAML der kan bruges til det?

Jacob Mogensen
mySupply ApS

Hvad jeg lige kan finde på nettet, foreslå de fleste at man gør noget ala dette, ændre i file https://svn.softwareborsen.dk/oiosaml.net/trunk/src/dk.nita.saml20/dk.nita.saml20/Session/SessionStore.cs

fra dette kode

if (!HttpContext.Current.Request.IsSecureConnection)
{
throw new Saml20Exception("The service provider must use https since session cookie is not allowed on a unsecure transport");
}

til dette

bool loadbalancerReceivedSSLRequest = string.Equals(Request.Headers["X-Forwarded-Proto"], "https");
bool serverReceivedSSLRequest = HttpContext.Current.Request.IsSecureConnection;

if (loadbalancerReceivedSSLRequest || serverReceivedSSLRequest)
{
// SSL in use.
}
else
{
// SSL not in use.
throw new Saml20Exception("The service provider must use https since session cookie is not allowed on a unsecure transport");
}

 

Så sikkere man sig at enten en balance server styre SSL, eller køre SSL direkte (balance serveren skal så indsætte headeren "X-Forwarded-Proto").

Er der nogen mulighed for at få dette implementeret (og ny release)?

 

mvh

Jacob Mogensen
mySupply ApS

 

(kode baseret på dette indlæg: https://stackoverflow.com/questions/12725859/in-https-request-request-issecureconnection-return-false/27526290)

Hej Jacob

Der er desværre ingen mulighed for at konfigurere om oiosaml session cookien skal være secure eller ej. Den skal naturligvis altid være secure.

Jeg lægger en opgave på backloggen der omhandler at gøre det konfigurerbart at bestemme om oiosaml session cookien skal være secure eller ej (og dermed åbne op for at SP kan køre i http mode). Den vil naturligvis være secure by default.

Hvis man så vælger at ens SP skal køre med en unsecure session cookie ... er det vigtigt at ens load balancer der understøtter https offloading kan ændre oiosaml session cookien til at være secure "on-the-fly".

Der er ikke planlagt nogen release på denne side af sommerferien. Mulighederne indtil en release er følgende:

1. Køre https på indersiden indtil næste release.

2. Lave ændringen selv og lave et pull request. Så skal jeg gøre mit bedste for at det kommer hurtigere med i en release.

Vh

Kasper Møller

ændret af Kasper Vestergaard Møller (31.05.2018)
Profilbillede

The signature of the incoming message is invalid

Mad OUA

Hi,

I am using OIOSAML 2.0.2 with Okta developer App for testing à SAML based Authentication.
When the saml response and the assertion are both signed with SHA256 Algorithm, an exception is thrown : "The signature of the incoming message is invalid"

Are-you reproducing this result ?

Thank you for helping us.


dk.nita.saml20.Saml20Exception: dk.nita.saml20.Saml20Exception: The signature of the incoming message is invalid.
à dk.nita.saml20.protocol.AbstractEndpointHandler.HandleError(HttpContext context, String errorMessage, Boolean overrideConfigSetting)
à dk.nita.saml20.protocol.Saml20SignonHandler.HandleAssertion(HttpContext context, XmlElement elem)
à dk.nita.saml20.protocol.Saml20SignonHandler.HandleResponse(HttpContext context)

à dk.nita.saml20.protocol.AbstractEndpointHandler.HandleError(HttpContext context, String errorMessage, Boolean overrideConfigSetting)
à dk.nita.saml20.protocol.AbstractEndpointHandler.HandleError(HttpContext context, Exception e)
à dk.nita.saml20.protocol.Saml20SignonHandler.HandleResponse(HttpContext context)
à dk.nita.saml20.protocol.Saml20AbstractEndpointHandler.ProcessRequest(HttpContext context)

 

Har nogen forsøgt sig med OIOSAML.NET pakken i et ASP .NET Core projekt eller kan give meldning på, om dette er understøttet?

Hej

OIOSAML.Net kan ikke benyttes i et ASP.Net Core projekt.

En understøttelse af ASP.Net Core ligger på backloggen.

Indtil OIOSAML.Net understøtter ASP.Net Core, kan OIOSAML.Net isoleres i et selvstændigt projekt der kører .Net framework.

Vh

Kasper V. Møller