Loading…
Tilbage

Profilbillede

Manglende funktionalitet i OIOSAML3.JAVA

Jørgen Gantriis

Selv med udskydelsen fra den 14. juni til august, så nærmer vi os nu hastigt den tid, hvor NemLog-in3 og den tilhørende OIOSAML Web SSO Profile 3.0.2 overgår til produktion. Den utvetydige anbefaling er at konvertere serviceproviderkoden til OIOSAML3.JAVA, da den eksisterende OIOSAML2.JAVA ikke understøtter nye attributter relateret til MitID (Eks. håndtering af NSIS niveauer) og i øvrigt ikke vil blive understøttet fremadrettet.

Jeg synes det er bekymrende, at der ikke har været releaset nye versioner af OIOSAML3 koden i mere end 2 måneder og heller ikke er udmeldt en dato for en opdateret version. I forhold til OIOSAML2 er der sket en større reorganisering af koden, som også har betydet at vigtig eksisterende kode er blevet fjernet. Følgende funktionalitet mangler pt. i OIOSAML3:

  1. Kode, som beskytter mod replay-attack med samme Assertion
    Tidligere var test-casen IT-REPL-1 en obligatorisk test for nye SP’er.

  2. Session handler
    OIOSAML2 havde et session-handler interface, som gjorde det muligt at integrere egne sessions-tabeller i for eksempel databaser med NemLog-ins session-index modtaget i Assertion.

  3. Log handler
    Den tidligere implementering tilbød en række loghandlers, som gjorde det muligt at integrere med lokale log-systemer på en fleksibel måde. Den nye implementering har en hård binding til Log4j.

  4. Understøttelse af SOAP-binding i forbindelse med SLO.
    I den tidligere Web SSO Profile V2.1.0 afsnit 14.5 Binding for Single Logout Profile hedder det til sidst under afsnittet Decision: "SOAP is preferred when supported because it is more reliable than HTTP Redirect." Vores erfaringer helt tilbage til NemLog-in1 bekræfter dette. Formentlig anvender de fleste SP’er SLO via http, men det er utrolig skrøbeligt – og dermed usikkert og Digitaliseringsstyrelsen har tidligere været en stor fortaler for SOAP bindingen.

Vi har forsøgt at fejlmelde den manglende funktionalitet til såvel Digst som Nets uden det store held – og er blevet henvist til at tage emnerne op i denne gruppe. Vi har blandt andet modtaget følgende  svar: ”Regarding the Java OIO SAML 3 reference implementations you have already posted the issues GitHub and they have been created as improvements and bugs in Jira for internal tracking in Nets. The improvements you request were not included in the new version of the reference implementation for Java due to the focus on delivering a new version based on OpenSAML 3 since OpenSAML 2 is no longer supported.”  Umiddelbart bekræfter svaret ikke, at den manglende funktionalitet vil blive implementeret igen – tvært i mod.

Som det kan ses af svaret, så er der imidlertid ingen tvivl om at vejen frem er OIOSAML3, da OIOSAML2 ikke fremover vil være understøttet.  Er der andre som har de samme bekymringer?

 

ændret af Jørgen Gantriis (02.06.2021)

Hej,

Vi er i DIGST ved at prioritere backlog for OIOSAML referenceimplementeringer, og i den forbindelse vil pointerne blive taget op til overvejelse. Pga. ekstraordinær travlhed har videreudvikling af referenceimplementeringerne desværre ikke kunnet bevæge sig så hurtigt fremad som ønsket.

Mht. de specifikke punkter har vi flg. kommentarer:

1. Beskyttelse mod replay angreb
Igennem sessions attributten "oiosaml.assertion" er det muligt at hente informationer til beskyttelse mod replay angreb, da AssertionWrapper indeholder ID og SessionIndex fra Assertion XML. Herefter kan man igennem egen filterimplementation foretage kontrollen af, at Assertion ID og SessionIndex ikke allerede er anvendt.

2. Sessionshåndtering
Det er korrekt, at sessionshåndteringen ikke er "plugable", men det er muligt at etablere egen sessionshåndteringen ved at implementere sit eget filter fremfor for at benytte filterimplementeringen AuthenticatedFilter, der kommer med i pakken.

3. Logging
Den nye implementering har rigtig nok ikke et Logging-interface, men en mulig workaround er at benytte log4j adapter registreret igennem log4j.properties-konfigurationsfilen.

4. SOAP binding
Der opfordres ganske rigtig til at benytte SOAP til SLO, hvilket ikke er understøttet, og der er i øjeblikket ikke noget workaround på dette.

DIGST melder ud, så snart plan for videreudvikling af referenceimplementeringerne er på plads.

Mvh. Christian Schmidt-Madsen

Hello,

Is there something like devel mode supported in OIOSAML3 ?

Hi Ewelina,

The source code is publicly available at https://github.com/digst/OIOSAML.Java and it is possible debug the running library when using it in an application.

Apart from this, is there something in particular you are looking for in a devel mode?

Best regards,
Morten D. Bech