This is an old revision of the document!
Table of Contents
Sikkerhedsmodel
Sikkerhedsmodellen for det fælles medicinkort er baseret på MedComs “Den Gode Webservice” og SOSI projektet.
Se mere herom på:
- sosi.dk - SOSI sikkerhed TODO: Officielt levende link?
Data, der anvendes forretningsmæssigt, f.eks. sygehusafdelingsnummer, ydernummer og autorisationsnummer, bør medsendes i den forretningsmæssige del af dokumentet, og ikke hentes fra dokumentheaderen. Det kan ikke udelukkes at f.eks.:
- En sekretær på en sygehusafdeling logger ind med SKS-sygehusafdelingsnummer med 6 cifre og foretager en opdatering af data på et afsnit angivet med 7 cifre.
- En lægepraksis har to ydernumre, der logges ind med det ene men sendes data for begge.
Skal der senere opstilles regler for hvorvidt dette skal være muligt bør valideringen af disse regler holdes adskilt fra den forretningsmæssige implementering. Dette bør ske for at minimere risikoen for at ændringer i sikkerhedsmodellen påvirker denne.
Systemautorisation
Der foretages autorisation af klient systemer. Denne er whitelist-baseret, og skal sikre at kun software, der er godkendt til at benytte medicinkortet, kan kalde dets services. Konkret skal der tilføjes SOAP header blocks, der unikt identificerer det software, der ønsker at kalde medicinkortet. Bemærk at denne identifikation ikke er en del af ID kortet, men implementeres som selvstændige XML-elementer i SOAP headeren indkapslet i et WhitelistingHeader element. Det er derfor ikke bundet til en session, men kan variere fra en forespørgsel til næste.
SOAP Headers til system autorisation
Der tilføjes et WhitelistingHeader element med flg. XML elementer til SOAP headeren. Alle er af type xs:string:
- SystemOwnerName
- SystemName
- SystemVersion
- OrgResponsibleName
- OrgUsingName
- OrgUsingID
- RequestedRole
Systemautorisation er tænkt som en udvidelse af MedCom - Den gode Webservice, og er under standardisering i NSI regi. RequestedRole elementet er beskrevet i afsnittet Roller og rettigheder.
SystemOwnerName
SystemOwnerName elementet indeholder det entydige navn på leverandøren af afsendersystemet.
| Navn | sdsd:SystemOwnerName |
| Type | xs:string |
| Aritet | 1 |
| Værdisæt | Udfaldsrummet dikteres via det Centrale Virksomheds Register |
| Eksempel | <SystemOwnerName>Pharma</SystemOwnerName> |
SystemName
SystemName elementet indeholder navnet på afsendersystemet.
| Navn | sdsd:SystemName |
| Type | xs:string |
| Aritet | 1 |
| Værdisæt | Udfaldsrummet dikteres alene af leverandøren af afsendersystemet |
| Eksempel | <SystemName>Medicinmodulet</SystemName> |
SystemVersion
SystemVersion elementet indeholder versionen på afsendersystemet.
| Navn | sdsd:SystemVersion |
| Type | xs:string |
| Aritet | 1 |
| Værdisæt | Udfaldsrummet dikteres alene af leverandøren af afsendersystemet |
| Eksempel | <SystemVersion>1.0</SystemVersion> |
OrgResponsibleName
OrgResponsibleName indeholder det entydige navn på den organisation, der har ansvaret for it-systemet. Det bemærkes, at organisationen meget vel kan være en ikke-sundhedsfaglig organisation der måske endda ikke engang kan identificeres via en klassifikation som CVR som i tilfældet en driftsafdeling i en region. Derfor anvendes der ikke klassifikationer for denne attribut. OrgResponsibleName er entydig.
| Navn | sdsd:OrgUsingName |
| Type | xs:string |
| Aritet | 1 |
| Værdisæt | Udfaldsrummet dikteres af den i OrgUsingID anvendte klassifikation |
| Eksempel | <OrgUsingName>ROS Infektionsmedicinsk Amb.</OrgUsingName> |
OrgUsingID
OrgUsingID indeholder det entydige id på den organisation, hvor brugeren aktuelt befinder sig når webservice kaldet udføres. Klassifikationen hvortil id’et hører er angivet i attributten OrgUsingID@NameFormat og headeren OrgUsingName angiver navnet på organisationen hørende til id’et.
| Navn | sdsd:OrgUsingID |
| Type | xs:string |
| Aritet | 1 |
| Eksempel | <OrgUsingID NameFormat=“medcom:sor”>348211000016001</OrgUsingID> |
OrgUsingID@NameFormat
Klassifikationssættet i attributten OrgUsingID@NameFormat angiver den klassifikation, som attributterne OrgUsingID og OrgUsingName henter sine værdier fra. Bemærk at attributten skal anvendes i XML dokumenter uden namespace prefix, selvom det selvfølgelig er defineret i et namespace.
| Navn | sdsd:OrgUsingID@NameFormat |
| Type | xs:string |
| Aritet | 1 |
| Format | ”medcom:ynumber”: Yderregisteret [YDER] |
| ”medcom:pnumber”: CVR-P [CVR] | |
| ”medcom:skscode”: SHAK kode [SKS] | |
| ”medcom:cvrnumber”: CVR nummer [CVR] | |
| ”medcom:communalnumber”: Kommunekode [KOMMKODE] | |
| ”medcom:sor”: SOR kode [SOR] | |
| Eksempel | <OrgUsingID NameFormat=“medcom:skscode”>650402</OrgUsingID> |
Eksempel
Alle XML elementer i WhitelistingHeader elementet er fra namespace: http://www.sdsd.dk.dgws/2010/08.
WhitelistingHeader elementet er fra namespace: http://www.sdsd.dk/dgws/2012/06
<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://www.dkma.dk/medicinecard/xml.schema/2009/01/01" xmlns:ns1="http://www.dkma.dk/medicinecard/xml.schema/2008/06/01" xmlns:sdsd="http://www.sdsd.dk/dgws/2010/08" xmlns:sdsd20120601="http://www.sdsd.dk/dgws/2012/06" xmlns:medcom="http://www.medcom.dk/dgws/2006/04/dgws-1.0.xsd" xmlns:oas="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"> <soapenv:Header> <sdsd201206:WhitelistingHeader> <sdsd:SystemOwnerName>Leverandør A</sdsd:SystemOwnerName> <sdsd:SystemName>System A</sdsd:SystemName> <sdsd:SystemVersion>1.5</sdsd:SystemVersion> <sdsd:OrgResponsibleName>ROS IT-afdeling</sdsd:OrgResponsibleName> <sdsd:OrgUsingName>ROS Infektionsmedicinsk Amb.</sdsd:OrgUsingName> <sdsd:OrgUsingID NameFormat="medcom:skscode">3800A0J</sdsd:OrgUsingID> <sdsd:RequestedRole>Læge</sdsd:RequestedRole> </sdsd201206:WhitelistingHeader> <!-- ... --> </soapenv:Header> <soapenv:Body> <!-- ... --> </soapenv:Body> </soapenv:Envelope>
Fejlmeddelser for systemautorisation
Hvis en af de krævede elementer mangler, eller det kaldende system ikke er autoriseret til at kalde FMK, returneres en SOAP fault med fejlkode 4300 (Manglende system autorisation).
