Page History
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.
...
- Indgåelse af formel tilslutningsaftale (På-vej). Tilslutningsaftale for adgang til SEB IdP sker ved henvendelse til SEB systemforvalteren Noshaba Hayat: NOHA@sundhedsdata.dk
- Udveksling af SAML metadata med SEB IdP, så der kan etableres en tilslutning mellem IdP’en og webapplikationen
- Etablering af login-funktionalitet på webapplikationen, således autentificeringen foregår gennem SEB IdP’en
- 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@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
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 | Denne fejl skyldes oftest, at token signing certifikat som SEB anvender ikke trustes på din server. Problemet kan løses på to måder:
Pkt 2 er oftest den lettest løsning, men anbefales kun til testmiljøet. I produktionsmiljøet bør der benyttes spærrelisteopslag. |
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.
...