NorskHelsenett / Tillitsrammeverk

Repo for spesifikasjoner og annet relevant arbeid med Tillitsrammeverket
16 stars 7 forks source link

Knytning mellom attest i token og patient_id #106

Closed eirikbroen closed 10 months ago

eirikbroen commented 10 months ago

Forstår det slik at det er truffet en beslutning om å ikke inkludere identifikasjon av pasient _patientid i attest som overføres via _authorizationdetails claim i token fra HelseID. Gitt at dette stemmer bør vi sikre at det alltid er entydig at attest som overføres via token har knytning til pasient identifikator som overføres via annen kanal (f.eks i POST body i et kall til et API). Altså at "utregningen" av attest er beregnet av klient for en bestemt kombinasjon av pasient og helsepersonell.

Antar at en verdi og kanskje også et token vil gjenbrukes flere ganger i løpet av en pasientsesjon og at klientsystem antakeligvis vil ha mulighet for å jobbe med flere pasienter samtidig. Selv om det kanskje bare er en teoretisk mulighet for at klient sender en forespørsel med attest tilhørende en annen pasient er det alvorlig for kilde sin mulighet til å tilgangsstyre og logge hvis det skulle skje.

Foreslår derfor at vi innfører en forretningsregel som reduserer risiko for at en slik feilaktig kombinasjon av attest og pasient inntreffer. Mulig løsning kan være å kreve at klient benytter en unik id fra attest, for eksempel _decisionref også i kanal hvor _patientid overføres.

richardhus commented 10 months ago

Det er minst et viktig moment til som bør inn i vurderingen av hvordan man oppnår knytningen til pasientidentifikatoren for et tilgangsbevis (access token):

Hvordan kan vi sikre oss en implementering av tilgangskontroll, som krever minst mulig forvaltning og skreddersøm, altså generiske tilgangsregler som kan gjelde på tvers av ulike API/tjenester, og der pasientidentifikator er en nøkkelverdi som må evalueres?

For eksempel ved bruk av hyllevare PDP-type komponenter og generiske PEP-komponenter, hvordan kan vi ivareta sperring for et gitt helsepersonell mot tilgang til en bestemt pasients helseopplysninger? Dersom håndhevingen av tilgangsregler skal kunne gjøres generisk og uavhengig av å traversere mange ulike typer API-spesifikke innholdsstrukturer for å finne ut hvilken pasient det ønskes tilgang til, vil det antakelig være mest hensiktsmessig at pasientidentifikatoren er tilgjengelig dirkete i tilgangsbeviset (access token)?

eirikbroen commented 10 months ago

Foreslår at vi avventer å spesifisere forretningsregler for eventuell knytning mellom pasient identifikator og token til det er endelig besluttet om pasient kan overføres som del av autorisasjonskontekst i access token.

steinarnoem commented 10 months ago

En attest representerer helsepersonellets grunnlag for tilgang til en spesifikk pasient (eller potensielt flere), og skal kunne gjenbrukes ved kall til forskjellige tjenester mens helsepersonellet har pasienten til behandling.

Attesten skal entydig knyttes til pasienten som er inne til behandling, slik at den ikke kan brukes for tilgang til andre pasienter.

steinarnoem commented 10 months ago

Fra @richardhus : En attest skal også kunne benyttes uten binding til en spesifikk pasient, men dette gjelder kun i tilfeller der pasienten ikke er kjent og for tilgang til et langt smalere sett av opplysninger om de spesifikke pasientene. For eksempel ved henting av en oversikt over pasienter som er innkommende til en legevakt i ambulanser, eller oversikt over pasienter som er innlagt ved en gitt enhet. Så snart man har en spesifikk pasient som man trenger tilgang til å se mer detaljert informasjon om vil kravet være at attesten er knyttet til denne pasienten.