Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

I forbindelse med klargøring til MitID og Nemlog-in3 

 

Denne vejlednings formål er at give en teknisk oversigt og vejledning for hvordan web-baserede løsninger på sundhedsområdet kan koble sig på SEB login-løsningen for borgere og medarbejdere. 

Indholdsfortegnelse 

 

Table of Contents

Overblik over integrationsmuligheder 

SEB Sundheds-IdP er en national login-tjeneste, der kan benyttes af web-baserede applikationer på sundhedsområdet til at autentificere brugere på højt niveau via SAML protokollerne.  

...

SEB vil desuden kunne sættes op til at indgå i føderation med brugerorganisationers egne IdP’er og derved muliggøre fødereret brugerstyring. 

Tilslutningsguide til SEB IdP 

SEB er opdelt i en SEB IdP til borgerrettede løsninger og en SEB IdP til medarbejderrettede løsninger. 

...

  1. Indgåelse af formel tilslutningsaftale (På-vej). Tilslutningsaftale for adgang til SEB IdP sker ved henvendelse til SEB systemforvalteren Noshaba Hayat: NOHA@sundhedsdatadriftsforvaltningen: SEBDRIFT@sundhedsdata.dk 
  2. Udveksling af SAML metadata med SEB IdP, så der kan etableres en tilslutning mellem IdP’en og webapplikationen 
  3. Etablering af login-funktionalitet på webapplikationen, således autentificeringen foregår gennem SEB IdP’en 
  4. Etablering af logout funktionalitet på webapplikationen, således der logges ud af både webapplikationen og SEB IdP’en 

OIOSAML bibliotekerne 

Der findes Java og .Net referenceimplementationer af henholdsvis OIOSAML2 (oiosaml2.java[1] og oiosaml2.net[2]) og OIOSAML3 (oiosaml3.java[3] og oiosaml3.net[4]) standarden, som med fordel kan benyttes til at implementere SAML protokollerne. Alle versioner er open source samt veldokumenterede, så benyttes Java eller .NET anbefales det at benytte en af disse biblioteker. Ellers bør der benyttes en standard SAML implementation, som så konfigureres til at overholde den benyttede OIOSAML Web SSO profileringen (OIOSAML2[5] og OIOSAML3[6]). 

...

[6] OIOSAML Web SSO profile 3.0.3: https://www.digitaliser.dk/resource/6508977

Udveksling af SAML metadata 

For at integrere med SEB IdP’en skal der udveksles SAML metadata med den. SAML metadata er en kontrakt, som fortæller hvem webapplikationen (i rollen som SAML serviceprovider / SP) er, hvilke certifikater der benyttes, samt hvilket grænseflader der benyttes. 

...

Metadata skal genereres af SP (webapplikationen) og skal udveksles med SEB der udstilles gennem en URL.  

Eksempel på SP Metatdata

Eksempel på SP metadata (certifikater er forkortet af med ’...’): 

<?xml version="1.0" encoding="UTF-8"?>
<md:EntityDescriptor entityID="demo.serviceprovider"xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
    xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata"
    xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">
   
<md:SPSSODescriptor AuthnRequestsSigned="true"
        protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
       
<md:KeyDescriptor use="signing">
           
<ds:KeyInfo>
               
<ds:X509Data>
                   
<ds:X509Certificate> MIIFITCCBIqgAwIBAgIEQDa1...</ds:X509Certificate>
               
</ds:X509Data>
           
</ds:KeyInfo>
       
</md:KeyDescriptor>
       
<md:SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect"
            Location="https://saml.serviceprovider.com:8080/saml/saml/LogoutServiceHTTPRedirect"
            ResponseLocation="https://saml.serviceprovider.com:8080/saml/saml/LogoutServiceHTTPRedirectResponse"/>
       
<md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact"
            Location="https://saml.serviceprovider.com:8080/saml/saml/SAMLAssertionConsumer"
            index="0"/>
   
</md:SPSSODescriptor>
</md:EntityDescriptor> 

For medarbejdervendte tilslutninger 

Udover udveksling af SAML metadata skal der for medarbejdervendte løsninger tages stilling til hvorvidt følgende oplysninger skal inkluderes i SEB tokenet: 

  • Sundhedsfaglige autorisationer 
  • Oplysninger om erhvervsmæssige tilknytninger til yderorganisationer 
  • SEB-administrerede roller/rettigheder for webapplikationen 
  • SEB-administrerede nationale roller 
  • Bootstraptoken, der via SOSI STS kan omvekles til SOSI IdKort. 

Koordinering af SEB-tilslutninger 

Kontakt SEB metadata koordinator funktionen i SEB systemforvaltningen påNOHA@sundhedsdatasebdrift@sundhedsdata.dk, der koordinerer indlæsning af SP-metadata samt etablering af konfiguration, der er relevant for medarbejdervendte løsninger med SEB’s leverandør. 

Etablering af login funktionalitet i webapplikationen 

Bruges OIOSAML reference-implementationerne skal der laves en loginknap, link eller lignende der rammer URL’en /saml/login/saml/* som er reference-implementationernes SAML dispatcher, som ser i IdP metadata, hvilken IdP loginside der skal rammes, og redirecter efterfølgende til denne URL. 

...

Bemærk, at login-flowet ikke må implementeres i en separat iFrame, da NemLog-in ikke må frames. 

Etablering af logout funktionalitet i webapplikationen 

Bruges reference-implementationerne skal der ligeledes laves en logout knap, link eller lignende, der rammer URL’en /saml/logout. Igen ser reference-implementationernes dispatcher i IdP metadata, hvilket logout url der skal rammes, efterfølgende redirecter IdP’en til SP’en logout-url, hvorpå sessionen nedlægges, og brugeren dermed er logget ud. 

Bemærk, at logout derimod godt må foregå i en (usynlig) iFrame, men vær opmærksom på ikke at kalde logout direkte fra Javascript, idet SEB/NemLog-ins cookies da vil optræde som tredjeparts cookies, som i nogle browsere per default er slået fra og logout derfor vil fejle. 

FAQ til SEB-tilslutning 

Denne fejl skyldes oftest, at token signing certifikat som SEB anvender ikke trustes på din server. Problemet kan løses på to måder: 

 

  1. Sikre at der kan foretages spærrelisteopslag for token signing certifikat som SEB benytter. Specifikt skal der kunne foretages spærreliste opslag til OCES spærrelister hos i NETs’ testmiljø 
  1. De-aktivere spærrelisteopslag, ved at sætte certificatevalidation elementet i web.config til SelfIssuedCertificateSpecification (hvis OIOSAML.NET benyttes) 

 

...

Følgende er en liste af problemer der ofte forekommer ved tilslutning og hvad årsagen er: 

...

Jeg får “Signature validation” fejl, når jeg modtager token fra SEB 

 

Jeg får “connection not found” fejl fra SEB når jeg forsøger at logge ind. 

Denne fejl forekommer, hvis der ikke er oprettet en forbindelse til jeres applikation på SEB. 

 

Tag fat i SEB Support og få dem til at hjælpe jer med at oprette en forbindelse til jeres applikation. 

Skal min applikation benytte HTTPS eller er HTTP ok? 

Jeres applikation skal benytte HTTPS. Føderationsprotokollerne kræver, at jeres applikation benytter HTTPS.  

Skal jeg købe et certifikat til føderationen eller kan jeg lave mit eget? 

Du behøver ikke købe et certifikat til føderationen. Det anbefales, at du selv generer certifikatet. 


Håndtering af SAML assertion 

Når brugeren er korrekt autentificeret via SEB/NemLog-in, vil en SAML assertion blive returneret til SP’en. SP’en skal dekryptere den indkommende SAML assertion og validere signatur, trust til signaturen og gyldighed i tid for assertionen – dette håndteres af standard SAML biblioteker og bør ikke kræve udvikling af applikationsspecifik kode.  

...