Overordnet løsningsbeskrivelse - Private aktører og borger log-in via SEB / NemLog-in (samt mulighed for FMK tilgang via SOSI STS) 15.marts 2017 /chg Baggrund Private aktører på sundhedsområdet som apoteker, praktiserende læger og andre parter må, præcis som andre private virksomheder, ikke koble sig på NemLog-in føderationen, og de skal desuden betale klik-afgift til Nets/DanID, når NemID anvendes i deres løsninger. Der er uddelt bevillinger til to apoteker til at drive web-apotek og kunne ekspedere recepter online, men den fornødne infrastruktur til at kunne tilvejebringe adgangsbilletter for borgere til FMK mangler. Samtidigt er de praktiserende læger overenskomstligt forpligtet til at kunne yde e-konsultationer, hvilket forudsætter stærk autentifikation af borgerne via NemID. Både for at muliggøre private aktørers integration af borger-løsninger med FMK og for at kunne lade privatpraktiserendes læger foretage omkostningsneutrale e-konsultationer har Sundheds- og Ældreministeriet frikøbt brugen af NemID for borger-vendte løsninger, der udbydes af private aktører på sundhedsområdet. Aftalen er indgået for 2017, og der er derfor ved at blive etableret en løsning, der kan ibrugtages hurtigst muligt, således at de private aktører kan få mest gavn af aftalen. Sundheds- og Ældreministeriet vil sikre at aftalen forlænges udover 2017. Sundhedsvæsnets Elekroniske Brugerstyrings platform (SEB) har allerede etableret Nem- Log-in proxy funktionalitet i en standard Identity Provider (IdP). For at tilvejebringe log-in og FMK adgangsbillet etableres en løsning, hvor den private aktør kan kalde denne standard SEB IdP, som agerer proxy for NemLog-in. Fra SEB IdP en returneres, der desuden et såkaldt bootstrap billet, som den private aktør efterfølgende har mulighed for at veksle hos SOSI-STS til et FMK-adgangsgivende billet for borgeren, såfremt den private aktør ønsker at hente medicinoplysninger fra FMK på borgernes vegne. Tidsplan Den samlede løsning er ved at blive installeret og konfigureret, og er planlagt til at være tilgængelig i TEST miljøet medio marts og i PRODUKTION miljøet ultimo marts. Overordnet flow Løsningen understøtter såvel log-in usecasen, hvor private aktører kan få borgere logget ind på tilstrækkelig høj sikringsniveau, (og desuden kan få udstedt et adgangsbillet, der kan benyttes til at kalde FMK på borgerens vegne), som log-ud usecasen, hvor private aktører igen kan logge borgeren ud af føderationen. Det overordnede flow for log-in scenariet er i nedenstående figur skitseret fra et brugerperspektiv: Borgeren tilgår den private aktørs web applikation i sin browser, vælger Log- Side 1 af 6
in via SEB og bliver viderestillet til SEB. Efter en kort visning af en brugervendt side, sender SEB derefter borgeren videre til NemLog-in, hvor brugeren skal logge ind med NemID. Fra NemLog-in sendes brugeren retur til SEB, som uden at der vises en dialog sender brugeren tilbage til web applikationen, hvor brugeren logges ind i applikationen. Figur 1: Log-in flow fra brugerperspektivet Nedenstående figur viser flowet i log-ud scenariet: Borgeren vælger log-ud i den private aktørs web applikation og logges ud fra web applikationen (brugerens browser sendes forbi SEB og NemLog-in men dette er ikke synligt for brugeren). Brugeren er nu logget af både web applikationen og NemLog-in. Figur 2: Log-ud flow fra brugerperspektivet Teknisk log-in flow Ud fra nedenstående figur gennemgås de enkelte tekniske trin i løsningen. Figur 3: Teknisk log-in flow Side 2 af 6
Log-in flowet består af et standard SAML Web SSO flow i browseren og et efterfølgende servicekald til Digitaliseringsstyrelsens PID/CPR tjeneste (kun ved første login for hver bruger): 1. Borgeren tilgår den private aktørs web applikation. 2. Borgeren vælger Log-in via SEB og web applikationen laver et SAML Authentication Request via HTTP redirect til SEB IdP en. 3. SEB præsenterer kort en side for borgeren, og redirecter derefter automatisk til NemLog-in, hvor brugeren autentificerer sig selv, medmindre vedkommende allerede har en NemLog-in session (efter standard OIOSAML flow). Hvis dette fejler, redirectes tilbage til web applikationen (med en passende fejlbesked). 4. SEB validerer SAML assertionen fra NemLog-in (som også indeholder et bootstrap token), udskifter signatur på den NemLog-in udstedte assertion (men ikke på bootstrap tokenet), krypterer assertionen til den private aktør og returner assertionen i en SAML response via HTTP POST til den private aktør. 5. Den private aktør dekrypterer og validerer assertionen og uddrager det Nem- Log-in signerede bootstrap token og en PID (et personlig ID for borgeren) fra assertionen. Den private aktør prompter brugeren for sit CPR nummer og validerer CPR nummeret ved opslag i Digitaliseringsstyrelsens PID/CPR tjeneste (kun ved første login, borgeren kan i senere kald genkendes via PID). Teknisk FMK flow FMK flowet består af samme standard SAML Web SSO flow i browseren, som beskrevet i ovenstående, efterfulgt af en WS-Trust omveksling hos SOSI-STS og et efterfølgende IDWS kald til FMK s borgersnitflade: Side 3 af 6
Figur 4: Teknisk FMK flow (Trin 1 til 4 er identiske med standard log-in flowet) 5. Den private aktør dekrypterer og validerer assertionen og uddrager det Nem- Log-in signerede bootstrap token og en PID (et personlig ID for borgeren) fra assertionen. Den private aktør prompter brugeren for sit CPR nummer (kun ved første login, borgeren kan i senere kald genkendes via PID) og veksler bootstrap tokenet til et IDWS token (udstedet til FMK som aftager) hos SOSI-STS. Omvekslingskaldet er et OIO WS-Trust kald hvor CPR og den ønskede audience /aftager (her FMK) angives som parametre. Kaldet signeres med den private aktørs certifikat og foregår over Sundhedsdatanettet. (SOSI STS validerer CPR/PID relationen ved at kalde Digitaliseringsstyrelsens PID/CPR tjeneste, så den private aktør behøver ikke selv at stå for denne integration.) 6. Den private aktørs web applikation uddrager IDWS tokenet fra SOSI-STS svaret og opbygger en IDWS besked, signerer den og kalder FMK (ligeledes via Sundhedsdatanettet). FMK validerer IDWS beskeden og returnere FMK data for borgeren. Tekniske log-ud flows Det er to log-ud flows i løsningen, et hvor borgeren logger ud af den private aktørs web applikationen (kaldet SP-initiated logout i SAML) og et hvor brugeren logger ud af en anden web applikation, som er tilsluttet SEB/NemLog-in (IdP-initiated logout ift. den private aktørs web applikationen). Begge log-ud flows følger standard SAML Single-Logout protokollerne. SP-initiated log-out Ud fra nedenstående figur gennemgås de enkelte tekniske trin i det SP-initierede log-ud flow: 1. Borgeren vælger Log-ud i web applikationen. 2. Web applikationen danner et SAML Logout request, der sendes til SEB IdP en. 3. Uden at vise en side redirecter SEB IdP en videre med et logout request til Nem- Log-in, som logger brugeren ud af NemLog-in føderationen (og andre applikationer der er tilsluttet NemLog-in). 4. Efter gennemført log-ud redirecter SEB tilbage til web applikationen med et logout response. Web applikationen præsenterer en Du er nu logget ud side for borgeren. Side 4 af 6
Figur 5: Teknisk log-ud flow (SP initiated) IdP-initiated log-out Ud fra nedenstående figur gennemgås de enkelte tekniske trin i det SP-initierede log-ud flow: 1. Borgeren vælger Log-ud i en anden web applikation, som er tilsluttet NemLogin. NemLog-in modtager et logout request fra denne applikation og sender nu et logout request til SEB (via HTTP redirect). 2. SEB IdP en sender et logout request til den private aktørs web applikation (via HTTP redirect), som (uden at vise en side) nedlægger brugerens session og redirecter tilbage til SEB. 3. SEB nedlægger brugerens SEB session og redirecter tilbage til NemLog-in IdP en. Side 5 af 6
Figur 6: Teknisk log-ud flow (IdP initiated) Side 6 af 6